Adds comprehensive service detail view with multiple tabs and dynamic interactions Implements client-side navigation between service list and detail views Introduces mock service data catalog for flexible component rendering Extends localization support for new service detail screens Improves user experience by adding edit capabilities and smooth view transitions
47 lines
1.7 KiB
C#
47 lines
1.7 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using PlanTempus.Application.Features.Localization.Services;
|
|
|
|
namespace PlanTempus.Application.Features.Services.Components;
|
|
|
|
public class ServiceDetailViewViewComponent : ViewComponent
|
|
{
|
|
private readonly ILocalizationService _localization;
|
|
|
|
public ServiceDetailViewViewComponent(ILocalizationService localization)
|
|
{
|
|
_localization = localization;
|
|
}
|
|
|
|
public IViewComponentResult Invoke(string key)
|
|
{
|
|
var service = ServiceDetailCatalog.Get(key);
|
|
|
|
var model = new ServiceDetailViewViewModel
|
|
{
|
|
ServiceKey = service.Key,
|
|
BackText = _localization.Get("services.detail.back"),
|
|
SaveButtonText = _localization.Get("services.detail.save"),
|
|
TabGeneral = _localization.Get("services.detail.tabs.general"),
|
|
TabPrices = _localization.Get("services.detail.tabs.prices"),
|
|
TabDuration = _localization.Get("services.detail.tabs.duration"),
|
|
TabEmployees = _localization.Get("services.detail.tabs.employees"),
|
|
TabAddons = _localization.Get("services.detail.tabs.addons"),
|
|
TabRules = _localization.Get("services.detail.tabs.rules")
|
|
};
|
|
|
|
return View(model);
|
|
}
|
|
}
|
|
|
|
public class ServiceDetailViewViewModel
|
|
{
|
|
public required string ServiceKey { get; init; }
|
|
public required string BackText { get; init; }
|
|
public required string SaveButtonText { get; init; }
|
|
public required string TabGeneral { get; init; }
|
|
public required string TabPrices { get; init; }
|
|
public required string TabDuration { get; init; }
|
|
public required string TabEmployees { get; init; }
|
|
public required string TabAddons { get; init; }
|
|
public required string TabRules { get; init; }
|
|
}
|