Ejemplo n.º 1
0
        public override async Task <PaginedProductItemsResponse?> GetPaginedProductsByDeclination(PaginedProductItemsRequest request, ServerCallContext context)
        {
            if (string.IsNullOrWhiteSpace(request.Declination))
            {
                context.Status = new Status(StatusCode.InvalidArgument, $"Arguments are invalid, declination can't be null or empty");
                return(null);
            }

            try
            {
                (IEnumerable <Models.Product> products, int count) = await iProductFetcher.GetPaginatedProductsByDeclination(request.Declination, request.PageIndex, request.PageSize);

                return(BuildPaginedResponse(products, count, request));
            }
            catch (Exception exception)
            {
                context.Status = new Status(StatusCode.Internal, exception.Message);
                return(null);
            }
        }
Ejemplo n.º 2
0
        private PaginedProductItemsResponse BuildPaginedResponse(IEnumerable <Models.Product> products, int count, PaginedProductItemsRequest request)
        {
            PaginedProductItemsResponse response = new PaginedProductItemsResponse
            {
                Total     = count,
                PageIndex = request.PageIndex,
                PageSize  = request.PageSize
            };

            response.Data.Add(mapper.Map <IEnumerable <ProductItemResponse> >(products));

            return(response);
        }