Beispiel #1
0
        public async Task <IActionResult> GetUserOrders([FromQuery] GetUserOrdersRequest request)
        {
            var response = await mediator.Send(request);

            Log.Information($"User #{HttpContext.GetCurrentUserId()} fetched their orders history");

            return(this.CreateResponse(response));
        }
        public async Task <PageModel <OrderModel> > Handle(GetUserOrdersRequest request, CancellationToken cancellationToken)
        {
            if (request == null)
            {
                throw new ArgumentNullException($"{nameof(request)} of type {nameof(GetUserOrdersRequest)} argument cannot be null.");
            }

            var itemsToSkip = request.GetItemsToSkip();
            var itemsToTake = request.GetItemsToTake();

            var result = await orderRepository.GetUserOrders(itemsToSkip, itemsToTake, request.UserId)
                         .ConfigureAwait(false);

            return(new PageModel <OrderModel>
            {
                Items = mapper.Map <OrderModel[]>(result.Items),
                TotalNumberOfItems = result.TotalNumberOfItems
            });
        }