public async Task <IncomingInvoicesSource> GetIncomingAsync( string merchantId, IReadOnlyList <InvoiceStatus> statuses, Period period, string searchValue, int skip, int take) { IReadOnlyList <string> groupMerchants = await _merchantService.GetGroupMerchantsAsync(merchantId); var invoices = await _payInvoiceClient.GetByFilter(groupMerchants, new string[] { merchantId }, statuses.Select(x => x.ToString()), null, null, null, null); IReadOnlyList <IncomingInvoiceListItem> result = await FilterInboxAsync(invoices, merchantId, period, searchValue); var source = new IncomingInvoicesSource { Total = result.Count, CountPerStatus = new Dictionary <InvoiceStatus, int>(), Items = result.Skip(skip).Take(take).ToList(), BaseAsset = await GetBaseAssetId(merchantId) }; foreach (InvoiceStatus value in Enum.GetValues(typeof(InvoiceStatus))) { source.CountPerStatus[value] = result.Count(o => o.Status == value); } return(source); }
public async Task <IActionResult> GetIncomingInvoices( string searchValue, Period period, List <InvoiceStatus> statuses, int skip, int take) { IncomingInvoicesSource source = await _invoiceService.GetIncomingAsync( User.GetMerchantId(), statuses, period, searchValue, skip, take); return(Json(new { List = new { source.Total, source.CountPerStatus, source.Items }, source.BaseAsset })); }