コード例 #1
0
        public async Task <ActionResult <Store[]> > GetAllStores(int pageNumber = 1, int pageSize = Data.Constants.Paging.DefaultPageSize, string sortBy = "StoreId Desc")
        {
            EntityCollection <Store> dbStores = null;

            try
            {
                dbStores = await _repository.GetAllStoresAsync(pageNumber, pageSize, sortBy);
            }
            catch (ParseException ex)
            {
                return(BadRequest("Request format is invalid: " + ex.Message));
            }
            catch (Exception ex)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError, ex));
            }

            if (dbStores == null)
            {
                return(NotFound());
            }

            Data.ModelObjectCollection <Data.Models.Store> Stores = new ModelObjectCollection <Data.Models.Store>
            {
                TotalCount     = dbStores.TotalCount,
                PageNumber     = dbStores.PageNumber,
                PageSize       = dbStores.PageSize,
                TotalPages     = dbStores.TotalPages,
                SortBy         = dbStores.SortBy,
                NextPageNumber = dbStores.NextPageNumber,
                PrevPageNumber = dbStores.PrevPageNumber,
                NextPageUrl    = "",
                PrevPageUrl    = "",
                Data           = _mapper.Map <Data.Models.Store []>(dbStores.Data)
            };

            Stores.NextPageUrl = (Stores.PageNumber == Stores.TotalPages) ? "" : ("api/Stores?pageNumber" + Stores.NextPageNumber.ToString())
                                 + "&pageSize=" + Stores.PageSize.ToString()
                                 + "&sortBy=" + Stores.SortBy;
            Stores.PrevPageUrl = (Stores.PageNumber == 1) ? "" : ("api/Stores?pageNumber" + Stores.PrevPageNumber.ToString())
                                 + "&pageSize=" + Stores.PageSize.ToString()
                                 + "&sortBy=" + Stores.SortBy;

            return(Ok(Stores));
        }