public bool CreateETLFiles(ETLExportDefinition exportDefinition, string exportFileLocation, string userName) { ETLData data = new ETLData(exportDefinition.ApplicationDatabase); DateTime startDateTime = DateTime.Now; try { foreach (ETLExportTablesDefinition table in exportDefinition.TableDefinitions) { //Retrieve DataSet for particular ETL Table DataSet ds = new DataSet(); ds = data.GetETLData(table.ProcedureName, table.TableName); if (ds != null) { //Save all files into temp area (in case one or more files fail) string exportETLFileLocation = exportFileLocation + @"\" + exportDefinition.ExportSubDirectory + @"\Temp\" + table.ETLFileName.Replace(".csv", DateTimeSuffix()); CreateCSVFile(ds, exportETLFileLocation, table.ETLHeaderName); } } //Move all files from temp area into pick-up area foreach (string etlFile in Directory.GetFiles(exportFileLocation + @"\" + exportDefinition.ExportSubDirectory + @"\Temp\")) { System.IO.File.Move(etlFile, etlFile.Replace(@"Temp\", "")); } ////Now mark ETL as processed! - update _Status column of record //data.UpdateETLDataStatus(exportDefinition.StatusProcedureName, (int)Common.Enums.ETLStatus.Success); //Status update is done in Email method below! //Email notification that file has been created.... Email.EmailETL email = new Email.EmailETL(); email.Email(exportDefinition, ""); //Record Import History ETLData hubData = new ETLData("HUB"); hubData.RecordHistory(exportDefinition.ETLExportGUID, userName, startDateTime, true); } catch (Exception ex) { MGRELog.Write(ex); //Now mark ETL as failed! - update _Status column of record data.UpdateETLDataStatus(exportDefinition.StatusProcedureName, (int)Common.Enums.ETLStatus.Failed); //Record Import History ETLData hubData = new ETLData("HUB"); hubData.RecordHistory(exportDefinition.ETLExportGUID, userName, startDateTime, false); throw ex; } return(true); }
/// <summary> /// Runs ETL Export Immediately for particular export /// </summary> public void RunExportNow(ETLExportDefinition exportDefinition, string userName) { if (exportDefinition.ExportType == (int)MGRE.ETL.Common.Enums.ExportType.ETL) { Export.ETLCreate export = new Export.ETLCreate(); export.CreateETLFiles(exportDefinition, config.ETLExportDirectoryLocation, userName); } else if (exportDefinition.ExportType == (int)MGRE.ETL.Common.Enums.ExportType.Email) { Email.EmailETL email = new Email.EmailETL(); email.Email(exportDefinition, userName); } else if (exportDefinition.ExportType == (int)MGRE.ETL.Common.Enums.ExportType.EmailETL) { Export.ETLCreate export = new Export.ETLCreate(); export.CreateETLFilesForEmail(exportDefinition, config.ETLExportDirectoryLocation, userName); } }