public async Task <IActionResult> SearchData(SettlementSearchFormViewModel model) { if (!ModelState.IsValid) { return(View("SettlementPaymentRequests", new SettlementPaymentRequestsViewModel { ErrorMessage = GetModelErrorMessage() })); } if (string.IsNullOrEmpty(model.Query)) { return(await GetPaymentRequestsAsync(() => _paySettlementClient.Api.GetPaymentRequestsByMerchantAsync( model.MerchantId, model.PageSize, model.ContinuationToken))); } string query = model.Query.Trim(); return(await GetPaymentRequestsAsync(async() => { var tasks = new List <Task <IEnumerable <PaymentRequestModel> > >(); if (!string.IsNullOrEmpty(model.MerchantId)) { tasks.Add(GetPaymentRequestsWithoutNotFoundAsync(async() => new[] { await _paySettlementClient.Api.GetPaymentRequestAsync(model.MerchantId, query) })); } tasks.Add(GetPaymentRequestsWithoutNotFoundAsync(async() => new[] { await _paySettlementClient.Api.GetPaymentRequestByWalletAddressAsync(query) })); tasks.Add(GetPaymentRequestsWithoutNotFoundAsync(() => _paySettlementClient.Api.GetPaymentRequestsByTransactionHashAsync(query) )); await Task.WhenAll(tasks); var results = new List <PaymentRequestModel>(); foreach (var task in tasks) { if (task.Result?.Any() == true) { results.AddRange(task.Result); } } return new ContinuationResult <PaymentRequestModel> { Entities = results }; })); }
public async Task <IActionResult> SearchForm() { var model = new SettlementSearchFormViewModel { Merchants = await _payMerchantClient.Api.GetAllAsync(), DataUrl = Url.Action("SearchData") }; model.MerchantId = model.Merchants.FirstOrDefault()?.Id; return(View(model)); }