/// <summary> /// Metorda zwracająca klasę zawierającą elementy wyświetlane na stronie wszytskich ofert regionalnych /// </summary> /// <param name="currentUmbracoPageId">id strony umbraco na której się znajdujemy</param> /// <returns>Model zawierający elementy strony ze wszytskimi artykułami</returns> public RegionalOfferBoxViewModel GetRegionalArticleBoxesModel(int currentUmbracoPageId) { var _model = new RegionalOfferBoxViewModel(); _model.CurrentUmbracoPageId = currentUmbracoPageId; _model.CurrentPageCulture = Thread.CurrentThread.CurrentCulture; var _filterStateCookie = CookiesExtensions.GetCookieValue(CookieVariables.OffersFilterCookie); if (string.IsNullOrEmpty(_filterStateCookie)) { return(GetRegionalArticleBoxesModel(_model)); } var _filterModel = JsonConvert.DeserializeObject <NewsFilterStateViewModel>(StringExtensions.Base64Decode(_filterStateCookie)); if (_filterModel == null) { return(GetRegionalArticleBoxesModel(_model)); } if (_filterModel.NewsRegionFiltr.HasValue) { _model.SelectedRegionId = _filterModel.NewsRegionFiltr.Value; } return(GetRegionalArticleBoxesModel(_model)); }
public ActionResult RenderRegionalArticleListBoxes(RegionalOfferBoxViewModel model) { SetCulture(model.CurrentPageCulture); //TempData[TempDataVariables.RegionOffersFiltr] = model.SelectedRegionId; var _model = _boxService.GetRegionalArticleBoxesModel(model); return(PartialView("RegionalBoxPartial", _model)); }
/// <summary> /// Metorda zwracająca klasę zawierającą elementy wyświetlane na stronie wszytskich ofert regionalnych /// </summary> /// <param name="model">Obiekt klasy RegionalOfferBoxViewModel</param> /// <returns>Gotowy model do wyświetlenia na stronie wszystkich artykułów</returns> public RegionalOfferBoxViewModel GetRegionalArticleBoxesModel(RegionalOfferBoxViewModel model) { var _offersNode = _umbracoHelper.TypedContent(model.CurrentUmbracoPageId); var _articleList = _offersNode.Children.Where("Visible").Select(q => new ArticleWithFilter(q)); model.DisplayCount = new RegionalOffers(_offersNode).DisplayCount; #region Pobranie filtrów z bazy danych //Pobranie aktywnych filtrów z bazy danych var _regionFilterItemsFromDB = _dbService.GetAll <RegionDB>("PolRegioRegion", q => q.IsEnabled); model.RegionFilter = _regionFilterItemsFromDB.Where(q => q.Id != int.Parse(RegionVariables.all_poland_region_id)).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") }); var _filterModel = new NewsFilterStateViewModel() { NewsRegionFiltr = model.SelectedRegionId }; CookiesExtensions.CreateCookie(CookieVariables.OffersFilterCookie, StringExtensions.Base64Encode(JsonConvert.SerializeObject(_filterModel))); #endregion if (model.SelectedRegionId != 0) { _articleList = _articleList.Where(q => q.RegionFiltr.SavedValue != null && JsonConvert.DeserializeObject <IEnumerable <NuPickersSqlDropDownPicker> >(q.RegionFiltr.SavedValue.ToString()).Any(c => c.Key == model.SelectedRegionId.ToString())); } model.AllNewsCount = _articleList.Count(); model.ArticleList = _articleList.Take(model.DisplayCount).Select(q => new OfferBoxModel(q)); return(model); }