public async Task <IActionResult> ExportTransactionReportAsync([FromQuery] ExportReportRequestModel model) { var fileName = $"transactions_from_{model.From:dd-MM-yyyy}_to_{model.To:dd-MM-yyyy}.csv"; var filter = await FilterByPartnerAsync(model.PartnerId); if (filter.IsEmptyResult) { return(new FileContentResult(new byte[0], "text/csv") { FileDownloadName = fileName }); } var requestModel = new FetchReportCsvRequest() { From = model.From.Date, To = model.To.Date.AddDays(1).AddMilliseconds(-1), TransactionType = model.TransactionType, Status = model.Status, CampaignId = model.CampaignId, PartnerIds = filter.PartnerIds }; var clientResult = await _reportClient.Api.FetchReportCsvAsync(requestModel); return(clientResult.ToCsvFile(fileName)); }
public async Task <CsvFileReportResult> FetchReportCsvAsync([FromQuery] FetchReportCsvRequest model) { var reports = await _reportReader.GetLimitedAsync( model.From, model.To, Constants.LimitOfReports, model.PartnerIds, model.CampaignId, model.TransactionType, model.Status); var result = CsvConverter.Run(reports); return(new CsvFileReportResult { Content = result.ToUtf8Bytes() }); }