コード例 #1
0
        public async Task <ActionResult <Sale[]> > GetSalesByStoreIdAsync(string storeId, int pageNumber = 1, int pageSize = Data.Constants.Paging.DefaultPageSize, string sortBy = "SaleId Desc")
        {
            EntityCollection <Sale> dbSales = null;

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

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

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

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

            return(Ok(Sales));
        }