Example #1
0
        public async Task <ActionResult> ImportToExcel([FromBody] TransactionFilterDownloadModel filters)
        {
            var listOfData = await _trans.GetTransactionsWithFiltersDonwloadAsync(filters);

            ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

            var dateNow = DateTime.Now.ToString("MM/dd/yyyy HH:mm");

            ExcelPackage   pck = new ExcelPackage();
            ExcelWorksheet ws  = pck.Workbook.Worksheets.Add("Reprt");

            ws.Cells["A1"].Value = "Report";
            ws.Cells["B1"].Value = "Transaction Report";

            ws.Cells["A2"].Value = "Date";
            ws.Cells["B2"].Value = dateNow;

            ws.Cells["A3"].Value = "Amount of Data";
            ws.Cells["B3"].Value = listOfData.Count;


            ws.Cells["A6"].Value = "TransactionId";
            ws.Cells["B6"].Value = "Status";
            ws.Cells["C6"].Value = "Type";
            ws.Cells["D6"].Value = "ClientName";
            ws.Cells["E6"].Value = "Amount";

            int rowStart = 7;

            foreach (TransactionMDDto item in listOfData)
            {
                ws.Cells[string.Format("A{0}", rowStart)].Value = item.TransactionId;
                ws.Cells[string.Format("B{0}", rowStart)].Value = item.Status;
                ws.Cells[string.Format("C{0}", rowStart)].Value = item.Type;
                ws.Cells[string.Format("D{0}", rowStart)].Value = item.ClientName;
                ws.Cells[string.Format("E{0}", rowStart)].Value = item.Amount;

                rowStart++;
            }

            ws.Cells["A:AZ"].AutoFitColumns();

            return(File(
                       pck.GetAsByteArray(),
                       "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
                       $"Transaction_{dateNow}.xlsx"
                       ));
        }
Example #2
0
        public async Task <ActionResult> ImportToCsv([FromBody] TransactionFilterDownloadModel filters)
        {
            var listOfData = await _trans.GetTransactionsWithFiltersDonwloadAsync(filters);

            string headerColumnNames = GetHeaderColumnNames();

            StringBuilder builder = new StringBuilder();

            builder.AppendLine(headerColumnNames);

            foreach (TransactionMDDto item in listOfData)
            {
                builder.AppendLine($"{item.TransactionId},{item.Status},{item.Type},{item.ClientName},{item.Amount}");
            }

            return(File(Encoding.UTF8.GetBytes(builder.ToString()), "text/csv", $"Transaction_{DateTime.Now.ToString("MM/dd/yyyy_HH:mm")}.csv"));
        }
Example #3
0
        public async Task <IReadOnlyList <TransactionMDDto> > GetTransactionsWithFiltersDonwloadAsync(TransactionFilterDownloadModel filters)
        {
            var result = _context.TransactionMDs.AsQueryable();

            if (!string.IsNullOrWhiteSpace(filters.Status))
            {
                TransactionStatus status = GetEnumStatusName(filters.Status);

                if (status != TransactionStatus.Default)
                {
                    result = result.Where(x => x.Status == status);
                }
            }

            if (!string.IsNullOrWhiteSpace(filters.Type))
            {
                TransactionType types = GetEnumTypeName(filters.Type);

                if (types != TransactionType.Default)
                {
                    result = result.Where(x => x.Type == types);
                }
            }

            var listOfData = await result.ToListAsync();

            return(_mapper.Map <IReadOnlyList <TransactionMD>, IReadOnlyList <TransactionMDDto> >(listOfData));
        }