/// <summary> /// Generate the Excel output version of the report. /// </summary> /// <param name="request"></param> /// <param name="response"></param> protected override void GenerateExcelOutput(BaseServiceGenerateReportRequest request, BaseServiceGenerateReportResponse response) { using (var excelWriter = new ExcelWriter()) { var excelRecords = new List <SecurityUserLoginHistoryReportExcelRecord>(); var dataSet = this.GetDataSource("DataSet1") as IEnumerable <USPReportSecurityUserLoginHistory>; foreach (var dataRow in dataSet) { var excelRecord = new SecurityUserLoginHistoryReportExcelRecord(); //Map the stored proc row into the csv record var config = new MapperConfiguration(cfg => { cfg.CreateMap <USPReportSecurityUserLoginHistory, SecurityUserLoginHistoryReportExcelRecord>(); }); IMapper mapper = config.CreateMapper(); mapper.Map(dataRow, excelRecord); excelRecords.Add(excelRecord); } var dataTableHelper = new DataTableHelper <SecurityUserLoginHistoryReportExcelRecord>(); var dataTable = dataTableHelper.GetTable(excelRecords); // //Specify the excel formatting // var headers = new string[] { "SecurityUserLoginHistoryId", "SecurityUserId", "UserName", "MachineName", "ApplicationCode", "SuccessfulLogin", "AccountWasLocked", "IPAddress", "Browser", "ScreenResolution", "Message", "SessionId", "SessionEndDate", "LastRequestDate", "SessionTimeoutDate", "LastRequestUrl", "CreateDate", "CreateUser", "ModifyDate", "ModifyUser" }; var format = new string[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }; var columns = dataTable.Columns.Cast <DataColumn>().Where(c => c.ColumnName.ToLower() != "key"). Select(column => column.ColumnName). ToArray(); excelWriter.AddSection(headers, columns, format, dataTable, 0); // //Return the Excel data // response.IsSuccessful = true; response.ReportBytes = excelWriter.SaveFile(); } }
/// <summary> /// Generate the CSV output version of the report. /// </summary> /// <param name="request"></param> /// <param name="response"></param> protected override void GenerateCSVOutput(BaseServiceGenerateReportRequest request, BaseServiceGenerateReportResponse response) { // //Render the report // using (var memoryStream = new MemoryStream()) { //Open the write the CSV to a memory stream using (var writer = new StreamWriter(memoryStream)) { var csv = new CsvWriter(writer); var csvRecords = new List <SecurityUserLoginHistoryReportCSVRecord>(); var dataSet = this.GetDataSource("DataSet1") as IEnumerable <USPReportSecurityUserLoginHistory>; foreach (var dataRow in dataSet) { var csvRecord = new SecurityUserLoginHistoryReportCSVRecord(); //Map the stored proc row into the csv record var config = new MapperConfiguration(cfg => { cfg.CreateMap <USPReportSecurityUserLoginHistory, SecurityUserLoginHistoryReportCSVRecord>(); }); IMapper mapper = config.CreateMapper(); mapper.Map(dataRow, csvRecord); csvRecords.Add(csvRecord); } csv.WriteRecords(csvRecords); } // //Return the CSV data // response.IsSuccessful = true; response.ReportBytes = memoryStream.ToArray(); } }