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 })); }