private void ExportData(InProgressRequest request) { try { if (request.ExportStatus == ExportDataStatus.Complete && request.ExportTxtStatus == ExportDataStatus.Complete) { request.ExportStatus = ExportDataStatus.Archived; return; } if (request.ExportStatus == ExportDataStatus.Get) { ExportToExcel(request); } if (request.ExportTxtStatus == ExportDataStatus.Get) { ExportToText(request); } } catch (Exception ex) { LogController <ServiceLogs> .LogInFile(ServiceLogs.ExportData, string.Format("\r\n-------------------------------------------------------------------------")); LogController <ServiceLogs> .LogInFile(ServiceLogs.ExportData, string.Format("\r\n ExportData Method : {0}", ex.ToString())); LogController <ServiceLogs> .LogInFile(ServiceLogs.ExportData, string.Format("\r\n ExportData Method : {0}", ex.StackTrace)); LogController <ServiceLogs> .LogInFile(ServiceLogs.ExportData, string.Format("\r\n-------------------------------------------------------------------------")); } }
private void ExportToText(InProgressRequest request) { bool firstTime = request.PageNo == 1 ? true : false; bool completed = false; string rootDirectory = string.Format(@"{0}{1}{2}", saveFileAddress, Path.DirectorySeparatorChar, request.Id); if (!Directory.Exists(rootDirectory)) { Directory.CreateDirectory(rootDirectory); } string filePath = string.Format("{0}{1}{2}.txt", rootDirectory, Path.DirectorySeparatorChar, request.Id); if (firstTime && File.Exists(filePath)) { File.Delete(filePath); } #region GerRecords DataTable dtResult = Facade.Outbox.GetPagedExportText(request.Guid, request.TxtPageNo, rowsPerSheet); completed = dtResult.Rows.Count == 0 ? true : false; #endregion FileStream fileStream = new FileStream(filePath, FileMode.OpenOrCreate, FileAccess.Write); StreamWriter streamWriter = new StreamWriter(fileStream); streamWriter.BaseStream.Seek(0, SeekOrigin.End); foreach (DataRow row in dtResult.Rows) { streamWriter.WriteLine(string.Format("{0}{1}", row["Receiver"], Environment.NewLine)); } streamWriter.Flush(); streamWriter.Close(); streamWriter.Dispose(); fileStream.Dispose(); request.TxtPageNo++; }
private void SynchronizationExportData() { try { dtRequests.Clear(); dtSaveRequest.Clear(); lstInProgressRequest.Clear(); dtRequests = Facade.Outbox.GetExportDataRequest(threadCount); foreach (DataRow row in dtRequests.Rows) { inprogressRequest = new InProgressRequest(); inprogressRequest.Guid = Helper.GetGuid(row["Guid"]); inprogressRequest.Id = Helper.GetLong(row["ID"]); inprogressRequest.PageNo = Helper.GetInt(row["PageNo"]) == 0 ? 1 : Helper.GetInt(row["PageNo"]); inprogressRequest.ExportStatus = (ExportDataStatus)Helper.GetInt(row["Status"]); inprogressRequest.TxtPageNo = Helper.GetInt(row["TxtPageNo"]) == 0 ? 1 : Helper.GetInt(row["TxtPageNo"]); inprogressRequest.ExportTxtStatus = (ExportDataStatus)Helper.GetInt(row["TxtStatus"]); inprogressRequest.SendStatus = (SendStatus)Helper.GetInt(row["SendStatus"]); lstInProgressRequest.Add(inprogressRequest); } if (lstInProgressRequest.Count > 0) { Export(); } } catch (Exception ex) { LogController <ServiceLogs> .LogInFile(ServiceLogs.ExportData, string.Format("\r\n-------------------------------------------------------------------------")); LogController <ServiceLogs> .LogInFile(ServiceLogs.ExportData, string.Format("\r\n SynchronizationExportData : {0}", ex.ToString())); LogController <ServiceLogs> .LogInFile(ServiceLogs.ExportData, string.Format("\r\n SynchronizationExportData : {0}", ex.StackTrace)); LogController <ServiceLogs> .LogInFile(ServiceLogs.ExportData, string.Format("\r\n-------------------------------------------------------------------------")); } }
private void ExportToExcel(InProgressRequest request) { string rootDirectory = string.Format(@"{0}{1}{2}", saveFileAddress, Path.DirectorySeparatorChar, request.Id); if (!Directory.Exists(rootDirectory)) { Directory.CreateDirectory(rootDirectory); } string fileName = string.Format(@"{0}\{1}\{1}.xlsx", saveFileAddress, request.Id); //LogController<ServiceLogs>.LogInFile(ServiceLogs.ExportData, string.Format("fileName: {0}", fileName)); bool firstTime = request.PageNo == 1 ? true : false; bool completed = false; //Delete the file if it exists. if (firstTime && File.Exists(fileName)) { File.Delete(fileName); LogController <ServiceLogs> .LogInFile(ServiceLogs.ExportData, string.Format("file deleted: {0}", fileName)); } uint sheetId = 1; //Start at the first sheet in the Excel workbook. #region GerRecords DataTable resultsData = Facade.Outbox.GetPagedExportData(request.Guid, request.PageNo, rowsPerSheet); completed = resultsData.Rows.Count == 0 ? true : false; #endregion if (firstTime) { //This is the first time of creating the excel file and the first sheet. // Create a spreadsheet document by supplying the filepath. // By default, AutoSave = true, Editable = true, and Type = xlsx. SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Create(fileName, SpreadsheetDocumentType.Workbook); LogController <ServiceLogs> .LogInFile(ServiceLogs.ExportData, string.Format("file create: {0}", fileName)); // Add a WorkbookPart to the document. WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart(); workbookpart.Workbook = new Workbook(); // Add a WorksheetPart to the WorkbookPart. var worksheetPart = workbookpart.AddNewPart <WorksheetPart>(); var sheetData = new SheetData(); worksheetPart.Worksheet = new Worksheet(sheetData); var bold1 = new Bold(); CellFormat cf = new CellFormat(); // Add Sheets to the Workbook. Sheets sheets; sheets = spreadsheetDocument.WorkbookPart.Workbook. AppendChild <Sheets>(new Sheets()); // Append a new worksheet and associate it with the workbook. var sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart. GetIdOfPart(worksheetPart), SheetId = sheetId, Name = "Sheet" + sheetId }; sheets.Append(sheet); //Add Header Row. var headerRow = new Row(); foreach (DataColumn column in resultsData.Columns) { var cell = new Cell { DataType = CellValues.String, CellValue = new CellValue(column.ColumnName) }; headerRow.AppendChild(cell); } sheetData.AppendChild(headerRow); foreach (DataRow row in resultsData.Rows) { var newRow = new Row(); foreach (DataColumn col in resultsData.Columns) { var cell = new Cell { DataType = CellValues.String, CellValue = new CellValue(row[col].ToString()) }; newRow.AppendChild(cell); } sheetData.AppendChild(newRow); } workbookpart.Workbook.Save(); spreadsheetDocument.Close(); } else if (!completed) { // Open the Excel file that we created before, and start to add sheets to it. var spreadsheetDocument = SpreadsheetDocument.Open(fileName, true); var workbookpart = spreadsheetDocument.WorkbookPart; if (workbookpart.Workbook == null) { workbookpart.Workbook = new Workbook(); } var worksheetPart = workbookpart.AddNewPart <WorksheetPart>(); var sheetData = new SheetData(); worksheetPart.Worksheet = new Worksheet(sheetData); var sheets = spreadsheetDocument.WorkbookPart.Workbook.Sheets; if (sheets.Elements <Sheet>().Any()) { //Set the new sheet id sheetId = sheets.Elements <Sheet>().Max(s => s.SheetId.Value) + 1; } else { sheetId = 1; } // Append a new worksheet and associate it with the workbook. var sheet = new Sheet() { Id = spreadsheetDocument.WorkbookPart. GetIdOfPart(worksheetPart), SheetId = sheetId, Name = "Sheet" + sheetId }; sheets.Append(sheet); //Add the header row here. var headerRow = new Row(); foreach (DataColumn column in resultsData.Columns) { var cell = new Cell { DataType = CellValues.String, CellValue = new CellValue(column.ColumnName) }; headerRow.AppendChild(cell); } sheetData.AppendChild(headerRow); foreach (DataRow row in resultsData.Rows) { var newRow = new Row(); foreach (DataColumn col in resultsData.Columns) { var cell = new Cell { DataType = CellValues.String, CellValue = new CellValue(row[col].ToString()) }; newRow.AppendChild(cell); } sheetData.AppendChild(newRow); } workbookpart.Workbook.Save(); // Close the document. spreadsheetDocument.Close(); } request.PageNo++; if (completed) { request.ExportStatus = ExportDataStatus.Archived; } }