// GET: Subscription offer filter search public async Task <ActionResult> Search(SubscriptionOfferSearch search) { int cityID = 1; if (HttpContext.Request.Cookies["Current_City"] != null) { cityID = Convert.ToInt32(HttpContext.Request.Cookies["Current_City"].Values["CityID"]); } search.CityID = cityID; search.SearchResult = await new SubscriptionOfferRepository().FrontSearch(search); return(PartialView("_FrontSearch", search)); }
public async Task<List<SubscriptionOffer>> FrontSearch(SubscriptionOfferSearch filter) { try { int periodsCount = filter.Periods.Count > 0 ? filter.Periods.Where(c => c.IsCheck == true).ToList().Count : 0; int categoriesCount = filter.Categories.Count > 0 ? filter.Categories.Where(c => c.IsCheck == true).ToList().Count : 0; var result = CookBazaarContext.SubscriptionOffers.Include(s => s.subscriptionCategory).Include(c => c.subscriptionPeriods).Where(offer => (offer.OfferEndDate > DateTime.Now) && offer.CityID == filter.CityID) && (filter.FromPrice == 0 || offer.Price >= filter.FromPrice) && (filter.ToPrice == 0 || offer.Price <= filter.ToPrice) && (categoriesCount == 0 || filter.CategoryKeys.Contains(offer.CategoryID)) && (periodsCount == 0 || offer.subscriptionPeriods.Any(period => filter.PeriodKeys.Contains(period.PeriodID)))); return await result.ToListAsync(); } catch (Exception ex) { Repository.ExceptionLog.AddException(ex, "SubscriptionOfferRep/FrontSearch", ""); return new List<SubscriptionOffer>(); } }
// GET: Subscription offer search public async Task <ActionResult> Index() { int cityID = 1; if (HttpContext.Request.Cookies["Current_City"] != null) { cityID = Convert.ToInt32(HttpContext.Request.Cookies["Current_City"].Values["CityID"]); } SubscriptionOfferSearch searchcontrols = await new SubscriptionOfferRepository().GetFrontSearchItems(new SubscriptionOfferSearch() { CityID = cityID }); return(View(searchcontrols)); }
public async Task<SubscriptionOfferSearch> GetFrontSearchItems() { SubscriptionOfferSearch Items = new SubscriptionOfferSearch(); Items.SearchResult =await FrontSearch(Items); if (Items.SearchResult.Count > 0) { Items.FromPrice = Items.SearchResult.Min(p => p.Price); Items.ToPrice = Items.SearchResult.Max(p => p.Price); } try { List<SubscriptionPeriod> Periods =await CookBazaarContext.SubscriptionPeriods.Where(cat => cat.IsActive == true).ToListAsync(); foreach (SubscriptionPeriod period in Periods) { Items.Periods.Add(new SubscriptionPeriodControl() { PeriodID = period.PeriodID, PeriodName = Domain.Resources.LKP.Subscriptions.SubscriptionPeriods.SubscriptionPeriod.PeriodNameTextField == "EnglishPeriodName" ? period.EnglishPeriodName : period.ArabicPeriodName, IsCheck = false }); } List<SubscriptionCategory> Categories = CookBazaarContext.SubscriptionCategories.Where(cat => cat.IsActive == true).ToList(); foreach (SubscriptionCategory type in Categories) { Items.Categories.Add(new SubscriptionCategoryControl() { CategoryID = type.CategoryID, CategoryName = Domain.Resources.LKP.Subscriptions.SubscriptionCategories.SubscriptionCategory.CategoryNameTextField == "EnglishCategoryName" ? type.EnglishCategoryName : type.ArabicCategoryName, IsCheck = false }); } return Items; } catch (Exception) { return Items; } }