using Core.Abstractions.Models; using Core.DomainObjects; using Core.DomainObjects.Documents; using WeatherForecast.Models.Pages; namespace WeatherForecast.Models.Responses { public class GetContentResponseModel : ResponseModel { public string SiteName { get; set; } public string SiteUrl { get; set; } public HeaderModel Header { get; set; } public LocalizationModel Localization { get; set; } public List Routes { get; set; } public List AdminRoutes { get; set; } public List ServiceRoutes { get; set; } public List TopMenu { get; set; } public List SideMenu { get; set; } public HomePageModel HomePage { get; set; } public ShopCatalogPageModel ShopCatalog { get; set; } public ShopItemPageModel ShopItem { get; set; } public BlogCatalogPageModel BlogCatalog { get; set; } public BlogItemPageModel Blogitem { get; set; } public GetContentResponseModel (Content domainObject) { SiteName = domainObject.SiteName; SiteUrl = domainObject.SiteUrl; Header = new HeaderModel { Title = domainObject.Header.Title, Link = domainObject.Header.Link, Meta = domainObject.Header.Meta }; Localization = new LocalizationModel { TimeZone = domainObject.Localization.TimeZone, Locale = domainObject.Localization.Locale, DateFormat = domainObject.Localization.DateFormat, TimeFormat = domainObject.Localization.TimeFormat, Currency = domainObject.Localization.Currency, CurrencySymbol = domainObject.Localization.CurrencySymbol }; RouteModel ToRouteModel (Core.DomainObjects.Route route) { return new RouteModel { Target = route.Target, Component = route.Component, ChildRoutes = route.ChildRoutes?.Select(x => ToRouteModel(x)).ToList() }; } Routes = domainObject.Routes.Select(x => ToRouteModel(x)).ToList(); AdminRoutes = domainObject.AdminRoutes.Select(x => ToRouteModel(x)).ToList(); ServiceRoutes = domainObject.ServiceRoutes.Select(x => ToRouteModel(x)).ToList(); MenuItemModel ToMenuItemModel (MenuItem item) { return new MenuItemModel { Title = item.Title, Target = item.Target, ChildItems = item.ChildItems?.Select(x => ToMenuItemModel(x)).ToList() }; } TopMenu = domainObject.TopMenu.Select(x => ToMenuItemModel(x)).ToList(); SideMenu = domainObject.SideMenu.Select(x => ToMenuItemModel(x)).ToList(); } } }