示例#1
0
        /// <summary>
        /// To export deposit log data
        /// </summary>
        /// <param name="months"></param>
        /// <returns></returns>
        public MemoryStream GetDepositLogsForSelectedMonths(string clientCode, List <DateTime> months)
        {
            try
            {
                string   sWebRootFolder = "";
                string   sFileName      = @"demo.xlsx";
                FileInfo file           = new FileInfo(Path.Combine(sWebRootFolder, sFileName));
                var      memory         = new MemoryStream();
                using (var fs = new FileStream(Path.Combine(sWebRootFolder, sFileName), FileMode.Create, FileAccess.Write))
                {
                    IWorkbook workbook;
                    workbook = new XSSFWorkbook();

                    foreach (DateTime month in months)
                    {
                        string monthName  = DateHelper.ToMonthName(month);
                        ISheet excelSheet = workbook.CreateSheet(monthName);
                        IRow   row        = excelSheet.CreateRow(0);
                        BusinessModel.BusinessModels.DepositLogClientDataAmount clientDepositLogDTO = _depositLogResposiotory.GetDepositLogs(clientCode, month.Month, month.Year);

                        int i = 0;
                        foreach (var payer in clientDepositLogDTO.depositLogPayers)
                        {
                            row.CreateCell(i).SetCellValue(payer);
                            i++;
                        }

                        int j = 1;
                        foreach (var deposit in clientDepositLogDTO.depositLogData)
                        {
                            row = excelSheet.CreateRow(j);
                            var list = deposit as Dictionary <string, Object>;
                            i = 0;
                            foreach (var payer in clientDepositLogDTO.depositLogPayers)
                            {
                                var value = list.FirstOrDefault(c => c.Key == payer).Value;
                                row.CreateCell(i).SetCellValue(value.ToString());
                                i++;
                            }
                            j++;
                        }
                    }
                    workbook.Write(fs);
                }
                using (var stream = new FileStream(Path.Combine(sWebRootFolder, sFileName), FileMode.Open))
                {
                    stream.CopyToAsync(memory).Wait();
                }
                memory.Position = 0;
                return(memory);
            }
            catch (Exception ex)
            {
                _logger.Log(ex, LogLevel.Error, ex.Message);
                return(null);
            }
        }
示例#2
0
 /// <summary>
 /// To get ClientDeposit logs depending upon ClientCode
 /// </summary>
 /// <param name="ClientCode"></param>
 /// <returns></returns>
 public DepositLogClientDataAmountViewModel GetClientDepositLogData(string ClientCode, int month, int year)
 {
     try
     {
         DepositLogClientDataAmountViewModel depositLogClientDataAmountViewModel     = null;
         BusinessModel.BusinessModels.DepositLogClientDataAmount clientDepositLogDTO = _depositLogResposiotory.GetDepositLogs(ClientCode, month, year);
         if (clientDepositLogDTO != null)
         {
             depositLogClientDataAmountViewModel = new DepositLogClientDataAmountViewModel();
             depositLogClientDataAmountViewModel.DepositLogData   = clientDepositLogDTO.depositLogData;
             depositLogClientDataAmountViewModel.DepositLogPayers = clientDepositLogDTO.depositLogPayers;
             return(depositLogClientDataAmountViewModel);
         }
         else
         {
             return(depositLogClientDataAmountViewModel);
         }
     }
     catch (Exception ex)
     {
         _logger.Log(ex, LogLevel.Error, ex.Message);
         return(null);
     }
 }