/// <summary> /// Metoda zwracająca listę elementów z akordiona na stronie oddziałów /// </summary> /// <param name="currentUmbracoPageId">id strony umbraco na której się znajdujemy</param> /// <returns>Model zawierający listę elementów z akordiona na stronie oddziałów</returns> public IEnumerable <RegionContactBox> GetAccordionElementsForOfficeModel(int currentUmbracoPageId) { var _currentAccordionPage = _umbracoHelper.TypedContent(currentUmbracoPageId); var _departmentNode = new OfficeAccordion(_currentAccordionPage); if (_departmentNode != null && _departmentNode.AddOffice != null) { return(_departmentNode.AddOffice.Fieldsets.Where(x => x != null && x.Properties.Any() && !x.Disabled).Select(q => new RegionContactBox(q))); } return(null); }
public NewsPageViewModel GetNewsBoxesModel(NewsPageViewModel model) { var _newsNode = _umbracoHelper.TypedContent(model.CurrentUmbracoPageId); var _newsList = _newsNode.Children.Where("Visible").Select(q => new ArticleWithDoubleFiltr(q)); var _isParamFromUrl = !string.IsNullOrEmpty(model.SelectedTypeFromUrl); model.DisplayCount = new Information(_newsNode).DisplayItemsCount; #region Pobranie filtrów z bazy danych //Pobranie aktywnych filtrów z bazy danych var _regionFilterItemsFromDB = _dbService.GetAll <RegionDB>("PolRegioRegion", q => q.IsEnabled); var _newsTypeItemsFromDB = _dbService.GetAll <ArticleTypeDB>("PolRegioArticleType", q => q.IsEnabled); model.RegionFilter = _regionFilterItemsFromDB.Select(q => new FilterItem() { Id = q.Id, DisplayText = _umbracoHelper.GetDictionaryValue(q.DictionaryKey) }).ToList(); model.RegionFilter.Insert(0, new FilterItem() { Id = 0, DisplayText = _umbracoHelper.GetDictionaryValue("News.Placeholder.AllRegions") }); if (model.NewsTypeFilter == null) { model.NewsTypeFilter = _newsTypeItemsFromDB.Select(q => new CheckBoxFilterItem() { Id = q.Id, DisplayText = _umbracoHelper.GetDictionaryValue(q.DictionaryKey), IsChecked = (_isParamFromUrl && q.Name.ToLower() == model.SelectedTypeFromUrl.ToLower()) || (!_isParamFromUrl && model.SelectedTypeIds != null && model.SelectedTypeIds.Contains(q.Id)) }).ToList(); } var _selectedTypesId = model.NewsTypeFilter.Where(q => q.IsChecked).Select(q => q.Id); #region SetFilterStateCookie var _typesId = _selectedTypesId as IList <int> ?? _selectedTypesId.ToList(); var _filterModel = new NewsFilterStateViewModel() { NewsRegionFiltr = model.SelectedRegionId, NewsTypeFilter = _typesId.ToList() }; CookiesExtensions.CreateCookie(CookieVariables.NewsFilterCookie, StringExtensions.Base64Encode(JsonConvert.SerializeObject(_filterModel))); #endregion #endregion if (model.SelectedRegionId != 0) { var _departmentNode = new OfficeAccordion(_newsNode.AncestorOrSelf(DocumentTypeEnum.location.ToString()).DescendantOrSelf(DocumentTypeEnum.officeAccordion.ToString())); if (_departmentNode != null && _departmentNode.AddOffice != null) { var _contactRegionList = _departmentNode.AddOffice.Fieldsets.Where(x => x != null && x.Properties.Any() && !x.Disabled).Select(q => new RegionContactBox(q)); model.RegionContact = _contactRegionList.Where(q => q.Region != null).FirstOrDefault(q => q.Region.Key == model.SelectedRegionId.ToString()); } _newsList = _newsList.Where(q => q.ArticleRegions.SavedValue != null && JsonConvert.DeserializeObject <IEnumerable <NuPickersSqlDropDownPicker> >(q.ArticleRegions.SavedValue.ToString()).Any(c => c.Key == model.SelectedRegionId.ToString())); } if (_typesId.Count() > 0) { _newsList = _newsList.Where(q => q.ArticleCategory.SavedValue != null && _typesId.Contains(int.Parse(JsonConvert.DeserializeObject <IEnumerable <NuPickersSqlDropDownPicker> >(q.ArticleCategory.SavedValue.ToString()).Select(c => c.Key).FirstOrDefault()))); } model.AllNewsCount = _newsList.Count(); model.NewsBoxesList = _newsList .OrderByDescending(q => q.ListArticleDate) .Take(model.DisplayCount) .Select(q => new NewsBoxModel(q)); return(model); }