protected void gvRules_Sorting(object sender, GridViewSortEventArgs e) { OfferRuleSortingType orderBy = OfferRuleSortingType.IdAsc; switch (e.SortExpression) { default: case "Id": orderBy = OfferRuleSortingType.IdDesc; if (e.SortDirection == SortDirection.Ascending) { orderBy = OfferRuleSortingType.IdAsc; } break; case "Name": orderBy = OfferRuleSortingType.NameDesc; if (e.SortDirection == SortDirection.Ascending) { orderBy = OfferRuleSortingType.NameAsc; } break; case "Priority": orderBy = OfferRuleSortingType.PriorityDesc; if (e.SortDirection == SortDirection.Ascending) { orderBy = OfferRuleSortingType.PriorityAsc; } break; } SetState("OrderBy", (int)orderBy); LoadRules(); }
public PagedList <OfferRule> GetOfferRuleLoadPaged( int pageIndex = 0, int pageSize = 2147483647, IList <int> offerRuleIds = null, string name = null, string promocode = null, string fromDate = null, string toDate = null, bool?isActive = null, bool?isCart = null, bool?showInOfferPage = null, int?offerTypeId = null, OfferRuleSortingType orderBy = OfferRuleSortingType.IdAsc) { var query = _offerRuleRepository.Table; if (offerRuleIds != null && offerRuleIds.Count > 0) { query = query.Where(x => offerRuleIds.Contains(x.Id)); } if (!string.IsNullOrEmpty(name)) { query = query.Where(x => x.Name.Contains(name)); } if (!string.IsNullOrEmpty(promocode)) { query = query.Where(x => x.PromoCode.Contains(promocode)); } DateTime startDate; if (!string.IsNullOrEmpty(fromDate) && DateTime.TryParseExact(fromDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out startDate)) { query = query.Where(x => startDate <= x.StartDate); } DateTime endDate; if (!string.IsNullOrEmpty(toDate) && DateTime.TryParseExact(toDate, "dd/MM/yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None, out endDate)) { query = query.Where(x => endDate >= x.EndDate); } if (isActive.HasValue) { query = query.Where(x => x.IsActive == isActive.Value); } if (isCart.HasValue) { query = query.Where(x => x.IsCart == isCart.Value); } if (showInOfferPage.HasValue) { query = query.Where(o => o.ShowInOfferPage == showInOfferPage.Value); } if (offerTypeId.HasValue) { query = query.Where(o => o.OfferTypeId == offerTypeId.Value); } int totalRecords = query.Count(); switch (orderBy) { default: case OfferRuleSortingType.IdAsc: query = query.OrderBy(x => x.Id); break; case OfferRuleSortingType.IdDesc: query = query.OrderByDescending(x => x.Id); break; case OfferRuleSortingType.NameAsc: query = query.OrderBy(x => x.Name); break; case OfferRuleSortingType.NameDesc: query = query.OrderByDescending(x => x.Name); break; case OfferRuleSortingType.PriorityAsc: query = query.OrderBy(x => x.Priority); break; case OfferRuleSortingType.PriorityDesc: query = query.OrderByDescending(x => x.Priority); break; } query = query.Skip(pageIndex * pageSize).Take(pageSize); var list = query.ToList(); return(new PagedList <OfferRule>(list, pageIndex, pageSize, totalRecords)); }
private void LoadRules() { int[] offerRuleIds = null; string name = null; string promocode = null; string fromDate = null; string toDate = null; bool? isActive = null; OfferRuleSortingType orderBy = OfferRuleSortingType.IdAsc; if (HasState(OFFER_RULE_ID_FILTER)) { string value = GetStringState(OFFER_RULE_ID_FILTER); int temp; offerRuleIds = value.Split(',') .Where(x => int.TryParse(x.ToString(), out temp)) .Select(x => int.Parse(x)) .ToArray(); } if (HasState(NAME_FILTER)) { name = GetStringState(NAME_FILTER); } if (HasState(PROMO_CODE_FILTER)) { promocode = GetStringState(PROMO_CODE_FILTER); } if (HasState(FROM_DATE_FILTER)) { fromDate = GetStringState(FROM_DATE_FILTER); } if (HasState(TO_DATE_FILTER)) { toDate = GetStringState(TO_DATE_FILTER); } if (HasState(IS_ACTIVE_FILTER)) { isActive = Convert.ToBoolean(GetStringState(IS_ACTIVE_FILTER)); } if (HasState("OrderBy")) { orderBy = (OfferRuleSortingType)GetIntState("OrderBy"); } var result = OfferService.GetOfferRuleLoadPaged( pageIndex: gvRules.CustomPageIndex, pageSize: gvRules.PageSize, offerRuleIds: offerRuleIds, name: name, promocode: promocode, fromDate: fromDate, toDate: toDate, isActive: isActive, isCart: false, orderBy: orderBy); if (result != null) { gvRules.DataSource = result.Items; gvRules.RecordCount = result.TotalCount; gvRules.CustomPageCount = result.TotalPages; } gvRules.DataBind(); if (gvRules.Rows.Count <= 0) { enbNotice.Message = "No records found."; } }