Exemplo n.º 1
0
        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));
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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()
            });
        }
Exemplo n.º 5
0
        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));
        }