Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 /// <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);
     }
 }