/// <summary> /// Metoda zwracająca obiekt typu HeaderViewModel /// </summary> /// <param name="currentUmbracoPageId">id strony umbraco na której się znajdujemy</param> /// <returns>obiekt klasy HeaderViewModel</returns> public HeaderViewModel GetHeaderViewModel(int currentUmbracoPageId) { var _model = new HeaderViewModel(); //Aktualna strona, na której się znajdujemy var _currentPage = _umbracoHelper.TypedContent(currentUmbracoPageId); //Aktualna lokalizacja, na której się znajdujemy var _localizationNode = _currentPage.AncestorOrSelf(DocumentTypeEnum.location.ToString()); _model.Languages = _localizationNode.Parent.Children .Where(x => x.DocumentTypeAlias == DocumentTypeEnum.location.ToString()) .Where(NodeAtributeEnum.Visible.ToString()) .Select(q => new LangLink() { IsActive = q.Id == _localizationNode.Id, Url = q.Url, Text = q.Name, LanguageCode = _umbHelperService.GetCulture(q).TwoLetterISOLanguageName }); var _localization = new Location(_localizationNode); _model.HomePageUrl = _localizationNode.Url; _model.MenuItems = new List <MenuItem>(); _model.HelplineNumber = _localization.HelplineNumber; _model.HelplineTooltip = _localization.HelplineTooltipText; _model.CookieInformation = new Cookies(_localizationNode); foreach (var _localizationChild in _localizationNode.Children.Where("Visible")) { var _item = new SelectMenuOrFooter(_localizationChild); if (_item.ChoiceMenuOrFooter != null && _item.ChoiceMenuOrFooter.ToString() == MenuPositionTypeEnum.Menu.ToString()) { //Level 1 var itemName = _localizationChild.Name; if (_localizationChild.DocumentTypeAlias == DocumentTypeEnum.account.ToString()) { itemName = _accountService.IsAuthenticated() ? _localizationChild.GetPropertyValue <string>("loggedInMenuText") : _localizationChild.GetPropertyValue <string>("guestMenuText"); } var _menuItem = new MenuItem(); _menuItem.Url = new Link() { Text = itemName, IsActive = true }; var _currentNodeChildren = _localizationChild.Children.Where("Visible"); if (_currentNodeChildren != null && _currentNodeChildren.Count() > 0) { //level 2 _menuItem.SubMenuItems = new List <MenuItem>(); foreach (var item in _currentNodeChildren) { if (ItemShouldNotBeDisplayed(item)) { continue; } var _subMenuItem = new MenuItem(); var _subMenuChildren = item.Children.Where("Visible"); var _hasSubMenu = _localizationChild.DocumentTypeAlias == DocumentTypeEnum.ForTravelers.ToString() && _subMenuChildren.Count() > 0; _subMenuItem.Url = new Link() { IsActive = true, Text = item.Name, Url = _hasSubMenu ? string.Empty : item.Url, DataCookie = item.IsDocumentType(RegionalOffers.ModelTypeAlias) ? CookieVariables.OffersFilterCookie : "" }; if (_hasSubMenu) { if (item.DocumentTypeAlias == DocumentTypeEnum.Information.ToString()) { var _newsTypeItemsFromDB = _dbService.GetAll <ArticleTypeDB>("PolRegioArticleType", q => q.IsEnabled); _subMenuItem.SubMenuItems = _newsTypeItemsFromDB.Select(q => new MenuItem() { Url = new Link() { IsActive = true, Url = string.Format("{0}?type={1}", item.Url, q.Name.ToLower()), Text = _umbracoHelper.GetDictionaryValue(q.DictionaryKey), DataCookie = CookieVariables.NewsFilterCookie } }).ToList(); _subMenuItem.SubMenuItems.Insert(0, new MenuItem() { Url = new Link() { IsActive = true, Text = _umbracoHelper.GetDictionaryValue("Menu.Link.SeeAllInformation"), Url = item.Url, DataCookie = CookieVariables.NewsFilterCookie } }); } else { _subMenuItem.SubMenuItems = new List <MenuItem>(); foreach (var itemLinks in _subMenuChildren) { if (itemLinks.DocumentTypeAlias == DocumentTypeEnum.searchConnection.ToString()) { foreach (var itemLink in itemLinks.GetPropertyValue <JArray>("link")) { MenuItem _footerItem = new MenuItem() { Url = new Link() { IsActive = true, Url = itemLink.Value <string>("link"), OpenInNewWindow = itemLink.Value <bool>("newWindow") } }; _footerItem.Url.Text = itemLinks.Name; _subMenuItem.SubMenuItems.Add(_footerItem); } } else { var _menuSubItem = new MenuItem() { Url = new Link() { IsActive = true, Url = itemLinks.Url, Text = itemLinks.Name } }; _subMenuItem.SubMenuItems.Add(_menuSubItem); } } } } _menuItem.SubMenuItems.Add(_subMenuItem); } } else { _menuItem.Url.Url = _localizationChild.Url; } _model.MenuItems.Add(_menuItem); } } //pobieranie alerta if (_localization.GetPropertyValue <bool>("LangAlertActive")) { _model.Alert = new HeaderAlertViewModel() { Title = _localization.GetPropertyValue <string>("LangAlertTitle"), ButtonTitle = _localization.GetPropertyValue <string>("LangAlertButtonTitle"), ButtonUrl = _localization.GetPropertyValue <string>("LangAlertButtonURL"), IsButtonNewTab = _localization.GetPropertyValue <bool>("LangAlertButtonNewTab"), }; } #region PobieranieOverlaya var overlayEnabledType = _localization.GetPropertyValue <int>("OverlayShowOn"); var overlayIsEnabled = false; switch (library.GetPreValueAsString(overlayEnabledType)) { case "Strona główna": // only main page if (_currentPage.Id == _localizationNode.Id) { overlayIsEnabled = true; } break; case "Cała strona": // whole page overlayIsEnabled = true; break; case "Wybrana kategoria": // selected categories overlayIsEnabled = _localization.GetPropertyValue <string>("OverlayShowOnNodes") .Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries) .Any(id => _umbracoHelper.TypedContent(id).IsAncestorOrSelf(_currentPage)); break; case "Wyłączony": //off default: break; } if (overlayIsEnabled) { _model.Overlay = new OverlayViewModel() { DesktopImageUrl = _localization.GetPropertyValue <string>("OverlayPictureDesktop"), MobileImageUrl = _localization.GetPropertyValue <string>("OverlayPictureMobile"), ImageAlt = _localization.GetPropertyValue <string>("OverlayPictureAlt"), ButtonUrl = _localization.GetPropertyValue <string>("OverlayButtonUrl"), ButtonIsNewTab = _localization.GetPropertyValue <bool>("OverlayButtonNewTab"), Capping = _localization.GetPropertyValue <int>("OverlayCapping"), }; } #endregion return(_model); }
public FooterViewModel GetFooterViewModel(int currentUmbracoPageId) { var _model = new FooterViewModel(); //Aktualna strona, na której się znajdujemy var _currentPage = _umbracoHelper.TypedContent(currentUmbracoPageId); //Aktualna lokalizacja, na której się znajdujemy var _localizationNode = _currentPage.AncestorOrSelf(DocumentTypeEnum.location.ToString()); _model.Languages = _localizationNode.Parent.Children.Where("Visible").Select(q => new Link() { IsActive = true, Url = q.Url, Text = q.Name }); _model.HomePageUrl = _localizationNode.Url; _model.MenuItems = new List <MenuItem>(); foreach (var _localizationChild in _localizationNode.Children.Where("Visible")) { var _item = new SelectMenuOrFooter(_localizationChild); if (_item.ChoiceMenuOrFooter != null && _item.ChoiceMenuOrFooter.ToString() == MenuPositionTypeEnum.Footer.ToString()) { var _menuItem = new MenuItem(); _menuItem.Url = new Link() { Text = _localizationChild.Name, IsActive = true }; var _currentNodeChildren = _localizationChild.Children.Where("Visible"); _menuItem.SubMenuItems = new List <MenuItem>(); foreach (var item in _currentNodeChildren) { if (ItemShouldNotBeDisplayed(item)) { continue; } MenuItem _footerItem; if (item.DocumentTypeAlias == DocumentTypeEnum.searchConnection.ToString()) { var _searchConnectionItem = _umbracoHelper.TypedContent(item.Id); _footerItem = new MenuItem(); if (_searchConnectionItem != null) { foreach (var itemLink in _searchConnectionItem.GetPropertyValue <JArray>("link")) { _footerItem = new MenuItem() { Url = new Link() { IsActive = true, Url = itemLink.Value <string>("link"), OpenInNewWindow = itemLink.Value <bool>("newWindow") } }; _footerItem.Url.Text = _searchConnectionItem.Name; } } } else { _footerItem = new MenuItem() { Url = new Link() { IsActive = true, Url = item.Url, Text = item.Name, DataCookie = item.IsDocumentType(AdvertisingOfSales.ModelTypeAlias) ? CookieVariables.AdvertisingFilterCookie : (item.IsDocumentType(ContractNotices.ModelTypeAlias) ? CookieVariables.ContractsFilterCookie : "") } }; } _menuItem.SubMenuItems.Add(_footerItem); } _model.MenuItems.Add(_menuItem); } } if (_localizationNode.HasProperty("socialMediaElementList") && !string.IsNullOrEmpty(_localizationNode.GetPropertyValue <string>("socialMediaElementList"))) { var _socialItems = _localizationNode.GetPropertyValue <ArchetypeModel>("socialMediaElementList"); _model.SocialMediaItems = _socialItems.Fieldsets.Where(x => x != null && x.Properties.Any() && !x.Disabled).Select(q => new SocilaItem() { SocialUrl = q.GetValue <string>("url"), SocialName = q.GetValue <string>("type") }); } var _localization = new Location(_localizationNode); if (_localization.AddBipurl != null) { foreach (var item in _localization.GetPropertyValue <JArray>("AddBipurl")) { _model.BipUrl = item.Value <string>("link"); _model.BipUrlTarget = item.Value <bool>("newWindow"); } } //Ustawianie id z sales manago if (_accountService.IsAuthenticated()) { var profile = new ProfileViewModel(); profile = _accountService.GetProfileView(currentUmbracoPageId, profile); _model.SalesManagoContactId = profile.SalesmanagoContactId; } return(_model); }