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" )); }
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")); }
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)); }