private void LoadItems() { string description = null; string name = null; string countryName = null; ShippingOptionSortingType orderBy = ShippingOptionSortingType.IdAsc; if (HasState(DESCRIPTION_FILTER)) { description = GetStringState(DESCRIPTION_FILTER); } if (HasState(SHIPPING_COUNTRY_FILTER)) { countryName = GetStringState(SHIPPING_COUNTRY_FILTER); } if (HasState(SHIPPING_NAME_FILTER)) { name = GetStringState(SHIPPING_NAME_FILTER); } if (HasState("OrderBy")) { orderBy = (ShippingOptionSortingType)GetIntState("OrderBy"); } var result = ShippingService.GetPagedShippingOptionOverviewModel( pageIndex: gvItems.CustomPageIndex, pageSize: gvItems.PageSize, description: description, name: name, countryName: countryName, orderBy: orderBy); if (result != null) { gvItems.DataSource = result.Items; gvItems.RecordCount = result.TotalCount; gvItems.CustomPageCount = result.TotalPages; } gvItems.DataBind(); if (gvItems.Rows.Count <= 0) { enbNotice.Message = "No records found."; } }
protected void gvItems_Sorting(object sender, GridViewSortEventArgs e) { ShippingOptionSortingType orderBy = ShippingOptionSortingType.IdAsc; switch (e.SortExpression) { case "Description": orderBy = ShippingOptionSortingType.DescriptionDesc; if (e.SortDirection == SortDirection.Ascending) { orderBy = ShippingOptionSortingType.DescriptionAsc; } break; case "Priority": orderBy = ShippingOptionSortingType.PriorityDesc; if (e.SortDirection == SortDirection.Ascending) { orderBy = ShippingOptionSortingType.PriorityAsc; } break; case "Name": orderBy = ShippingOptionSortingType.NameDesc; if (e.SortDirection == SortDirection.Ascending) { orderBy = ShippingOptionSortingType.NameAsc; } break; default: orderBy = ShippingOptionSortingType.IdDesc; if (e.SortDirection == SortDirection.Ascending) { orderBy = ShippingOptionSortingType.IdAsc; } break; } SetState("OrderBy", (int)orderBy); LoadItems(); }
public PagedList <ShippingOptionOverviewModel> GetPagedShippingOptionOverviewModel( int pageIndex = 0, int pageSize = 2147483647, string description = null, string name = null, string countryName = null, ShippingOptionSortingType orderBy = ShippingOptionSortingType.IdAsc) { var query = _shippingOptionRepository.Table .Join(_countryRepository.Table, s => s.CountryId, c => c.Id, (s, c) => new { s, c }); if (!string.IsNullOrEmpty(description)) { query = query.Where(s_c => s_c.s.Description.Contains(description)); } if (!string.IsNullOrEmpty(name)) { query = query.Where(s_c => s_c.s.Name.Contains(name)); } if (!string.IsNullOrEmpty(countryName)) { query = query.Where(s_c => s_c.c.Name.Contains(countryName)); } int totalRecords = query.Count(); switch (orderBy) { default: case ShippingOptionSortingType.IdAsc: query = query.OrderBy(s_c => s_c.s.Id); break; case ShippingOptionSortingType.IdDesc: query = query.OrderByDescending(s_c => s_c.s.Id); break; case ShippingOptionSortingType.NameAsc: query = query.OrderBy(s_c => s_c.s.Name); break; case ShippingOptionSortingType.NameDesc: query = query.OrderByDescending(s_c => s_c.s.Name); break; case ShippingOptionSortingType.DescriptionAsc: query = query.OrderBy(s_c => s_c.s.Description); break; case ShippingOptionSortingType.DescriptionDesc: query = query.OrderByDescending(s_c => s_c.s.Description); break; case ShippingOptionSortingType.PriorityAsc: query = query.OrderBy(s_c => s_c.s.Priority); break; case ShippingOptionSortingType.PriorityDesc: query = query.OrderByDescending(s_c => s_c.s.Priority); break; } query = query.Skip(pageIndex * pageSize).Take(pageSize); var items = query.ToList() .Select(x => new ShippingOptionOverviewModel { Id = x.s.Id, Description = x.s.Description, Name = x.s.Name, Enabled = x.s.Enabled, Priority = x.s.Priority, CountryId = x.s.CountryId, FreeThreshold = x.s.FreeThreshold, Timeline = x.s.Timeline } ); return(new PagedList <ShippingOptionOverviewModel>(items, pageIndex, pageSize, totalRecords)); }