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();
        }
Esempio n. 3
0
        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));
        }