Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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);
            }
        }
Beispiel #4
0
        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);
        }