Example #1
0
        public async Task <IActionResult> DownloadOrderDocument(long orderItemId)
        {
            var seller = await HttpContext.GetSellerAsync();

            var customer = await HttpContext.GetMemberAsync();

            var orderIds = await _orderService.GetQuery(new OrderFilter
            {
                SellerId   = seller.Id,
                CustomerId = customer.Id,
                Status     = OrderStatus.Complete,
                Paid       = true,
            }).Select(x => x.Id).ToArrayAsync();

            var orderItem = await _orderItemService.GetAsync(new OrderItemFilter { OrderIds = orderIds, OrderItemId = orderItemId, DocumentRequired = true });

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

            var token = await _mediaService.GenerateExpiryTokenAsync(orderItem.Document);

            return(RedirectToAction("Download", "Media", new { token }));
        }