public async Task <ReportListModel> GetTransactionReportAsync([FromBody] ReportRequestModel request) { var filter = await FilterByPartnerAsync(request.PartnerId); if (filter.IsEmptyResult) { return(new ReportListModel { Items = new List <ReportItemModel>(), PagedResponse = new PagedResponseModel(request.CurrentPage, 0) }); } var requestModel = new TransactionReportByTimeRequest() { CurrentPage = request.CurrentPage, PageSize = request.PageSize, From = request.From.Date, To = request.To.Date.AddDays(1).AddMilliseconds(-1), TransactionType = request.TransactionType, Status = request.Status, }; var clientResult = await _reportClient.Api.FetchReportAsync(requestModel, filter.PartnerIds); return(new ReportListModel { Items = _mapper.Map <List <ReportItemModel> >(clientResult.TransactionReports), PagedResponse = new PagedResponseModel(request.CurrentPage, clientResult.TotalCount) }); }
public async Task <PaginatedReportResult> FetchReportAsync( [FromQuery] TransactionReportByTimeRequest pagingInfo) { var result = await _reportReader.GetPaginatedAsync( pagingInfo.CurrentPage, pagingInfo.PageSize, pagingInfo.From, pagingInfo.To); return(_mapper.Map <PaginatedReportResult>(result)); }
public async Task <PaginatedReportResult> FetchReportAsync([FromQuery] TransactionReportByTimeRequest pagingInfo, [FromQuery] string[] partnerIds) { var result = await _reportReader.GetPaginatedAsync( pagingInfo.CurrentPage, pagingInfo.PageSize, pagingInfo.From, pagingInfo.To, partnerIds, pagingInfo.CampaignId, pagingInfo.TransactionType, pagingInfo.Status); return(_mapper.Map <PaginatedReportResult>(result)); }
public async Task <CsvFileReportResult> FetchReportCsvAsync([FromQuery] TransactionReportByTimeRequest pagingInfo, [FromQuery] string[] partnerIds) { var reports = await _reportReader.GetLimitedAsync( pagingInfo.From, pagingInfo.To, Constants.LimitOfReports, partnerIds, pagingInfo.CampaignId, pagingInfo.TransactionType, pagingInfo.Status); var result = CsvConverter.Run(reports); return(new CsvFileReportResult { Content = result.ToUtf8Bytes() }); }
public async Task <IActionResult> ExportTransactionReportAsync([FromQuery][Required] DateTime from, [FromQuery][Required] DateTime to, [FromQuery] Guid partnerId, [FromQuery] string transactionType, [FromQuery] string status) { var fileName = $"transactions_from_{from:dd-MM-yyyy}_to_{to:dd-MM-yyyy}.csv"; var filter = await FilterByPartnerAsync(partnerId); if (filter.IsEmptyResult) { return(new FileContentResult(new byte[0], "text/csv") { FileDownloadName = fileName }); } var requestModel = new TransactionReportByTimeRequest() { From = from.Date, To = to.Date.AddDays(1).AddMilliseconds(-1), TransactionType = transactionType, Status = status, }; var clientResult = await _reportClient.Api.FetchReportCsvAsync(requestModel, filter.PartnerIds); return(clientResult.ToCsvFile(fileName)); }