Beispiel #1
0
        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));
        }
Beispiel #2
0
        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()
            });
        }