public IDataLoadExecution Create(IDataLoadEventListener postLoadEventListener) { var loadArgsDictionary = new LoadArgsDictionary(LoadMetadata, _databaseConfiguration.DeployInfo); //warn user about disabled tasks var processTasks = LoadMetadata.ProcessTasks.ToList(); foreach (IProcessTask task in processTasks .Where(p => p.IsDisabled)) { postLoadEventListener.OnNotify(this, new NotifyEventArgs(ProgressEventType.Warning, "Found disabled ProcessTask" + task)); } //Get all the runtime tasks which are not disabled var factory = new RuntimeTaskPackager(processTasks.Where(p => !p.IsDisabled), loadArgsDictionary.LoadArgs, _cataloguesToLoad, _repository); var getFiles = new LoadFiles(factory.GetRuntimeTasksForStage(LoadStage.GetFiles)); var mounting = new PopulateRAW(factory.GetRuntimeTasksForStage(LoadStage.Mounting), _databaseConfiguration); var adjustRaw = factory.CreateCompositeDataLoadComponentFor(LoadStage.AdjustRaw, "Adjust RAW"); var migrateToStaging = new MigrateRAWToStaging(_databaseConfiguration, _loadConfigurationFlags); var adjustStaging = factory.CreateCompositeDataLoadComponentFor(LoadStage.AdjustStaging, "Adjust Staging"); var migrateStagingToLive = new MigrateStagingToLive(_databaseConfiguration, _loadConfigurationFlags); var postLoad = factory.CreateCompositeDataLoadComponentFor(LoadStage.PostLoad, "Post Load"); var archiveFiles = new ArchiveFiles(_loadConfigurationFlags); var loadStagingDatabase = new CompositeDataLoadComponent(new List <IDataLoadComponent> { mounting, adjustRaw, migrateToStaging }); var adjustStagingAndMigrateToLive = new CompositeDataLoadComponent(new List <IDataLoadComponent> { loadStagingDatabase, adjustStaging, migrateStagingToLive, postLoad }); var components = new List <IDataLoadComponent> { getFiles, adjustStagingAndMigrateToLive, archiveFiles }; return(new SingleJobExecution(components)); }
private ExecutableRuntimeTask GetRuntimeTask() { var factory = new RuntimeTaskFactory(Activator.RepositoryLocator.CatalogueRepository); var lmd = _processTask.LoadMetadata; var argsDictionary = new LoadArgsDictionary(lmd, new HICDatabaseConfiguration(lmd).DeployInfo); //populate the UI with the args _runtimeTask = (ExecutableRuntimeTask)factory.Create(_processTask, argsDictionary.LoadArgs[_processTask.LoadStage]); tbExeCommand.Text = _runtimeTask.ExeFilepath + " " + _runtimeTask.CreateArgString(); return(_runtimeTask); }
private void CheckComponent() { try { var factory = new RuntimeTaskFactory(Activator.RepositoryLocator.CatalogueRepository); var lmd = _processTask.LoadMetadata; var argsDictionary = new LoadArgsDictionary(lmd, new HICDatabaseConfiguration(lmd).DeployInfo); var mefTask = (IMEFRuntimeTask)factory.Create(_processTask, argsDictionary.LoadArgs[_processTask.LoadStage]); _ragSmiley.StartChecking(mefTask.MEFPluginClassInstance); } catch (Exception e) { _ragSmiley.Fatal(e); } }
public void Check(ProcessTask processTask, ICheckNotifier notifier) { if (dictionary == null) { try { dictionary = new LoadArgsDictionary(_loadMetadata, new HICDatabaseConfiguration(_loadMetadata).DeployInfo); } catch (Exception e) { notifier.OnCheckPerformed( new CheckEventArgs("Could not assemble LoadArgsDictionary, see inner exception for specifics", CheckResult.Fail, e)); return; } } var factory = new RuntimeTaskFactory(_loadMetadata.CatalogueRepository); var created = factory.Create(processTask, dictionary.LoadArgs[processTask.LoadStage]); created.Check(notifier); }