Example #1
0
        /// <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));
        }
Example #2
0
        public ActionResult RenderRegionalArticleListBoxes(RegionalOfferBoxViewModel model)
        {
            SetCulture(model.CurrentPageCulture);
            //TempData[TempDataVariables.RegionOffersFiltr] = model.SelectedRegionId;
            var _model = _boxService.GetRegionalArticleBoxesModel(model);

            return(PartialView("RegionalBoxPartial", _model));
        }
Example #3
0
        /// <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);
        }