Пример #1
0
        private void BindFilterCookie(BaseSearchFilterModel filter)
        {
            if (filter.Region == Regions.All)
            {
                HttpCookie cookie = Request.Cookies.Get("Rk_Region");
                if (cookie != null)
                {
                    filter.Region = (Regions)Enum.Parse(typeof(Regions), cookie.Value);
                }
            }
            if (filter.SectionId == 0)
            {
                HttpCookie cookie = Request.Cookies.Get("Rk_SectionId");
                if (cookie != null)
                {
                    filter.SectionId = int.Parse(cookie.Value);
                }
            }

            if (string.IsNullOrEmpty(filter.SearchStr))
            {
                HttpCookie cookie = Request.Cookies.Get("Rk_SearchStr");
                if (cookie != null)
                {
                    filter.SearchStr = HttpUtility.UrlDecode(cookie.Value);
                }
            }
        }
Пример #2
0
        private IList <AnnouncementView> GetFilteredItems(BaseSearchFilterModel filter)
        {
            IQueryable <Announcement> query = announcementRepository.ReadActivesQuery();

            if (filter.Region != Regions.All)
            {
                query = query.Where(a => a.City != null && a.City.Id == (int)filter.Region);
            }

            if (filter.SectionId != 0)
            {
                query = query.Where(a => a.Section != null && a.Section.Id == filter.SectionId);
            }

            if (!string.IsNullOrWhiteSpace(filter.SearchStr))
            {
                query = query.AsExpandable().Where(GetLikeExpression(filter.SearchStr));
            }

            query = query.OrderByDescending(a => a.UpTime);
            if (filter is PostSearchFilterModel)
            {
                var postFilter = filter as PostSearchFilterModel;

                if (!postFilter.IsNewSearch && postFilter.SkipCount.HasValue)
                {
                    query = query.Skip(postFilter.SkipCount.Value);
                }
            }
            query = query.Take(ItemsPerPage);
            List <AnnouncementView> list = query.Select(a => new AnnouncementView
            {
                Id          = a.Id,
                Currency    = a.Currency,
                Description = a.Description,
                Images      = a.Images.Select(img => new ImageViewModel
                {
                    Link      = img.Link,
                    IsTitular = img.IsTitular,
                    CreatedAt = img.CreatedAt
                }).ToList(),
                PhoneNumber = a.Phone,
                Price       = a.Price,
                PublishDate = a.CreatedAt.ToString(),
                ViewsCount  = a.ViewsCount
            })
                                           .ToList();

            list.ForEach(a => a.PublishDate = DateTime.Parse(a.PublishDate).ToString("s"));
            return(list);
        }
Пример #3
0
 private void SetFiltersCookie(BaseSearchFilterModel filter)
 {
     Response.Cookies.Set(new HttpCookie("Rk_Region", filter.Region.ToString())
     {
         Expires = DateTime.Now.AddYears(1)
     });
     Response.Cookies.Set(new HttpCookie("Rk_SectionId", filter.SectionId.ToString())
     {
         Expires = DateTime.Now.AddYears(1)
     });
     Response.Cookies.Set(new HttpCookie("Rk_SearchStr", HttpUtility.UrlEncode(filter.SearchStr))
     {
         Expires = DateTime.Now.AddYears(1)
     });
 }