Esempio n. 1
0
        protected override void OnExecute(CommandProcessor theProcessor, IUpdateContext updateContext)
        {
            // Update StudyStatusEnum in the StudyStorageTable
            IStudyStorageEntityBroker studyStorageUpdate        = updateContext.GetBroker <IStudyStorageEntityBroker>();
            StudyStorageUpdateColumns studyStorageUpdateColumns = new StudyStorageUpdateColumns();

            studyStorageUpdateColumns.StudyStatusEnum = _newStatus;
            studyStorageUpdate.Update(_location.Key, studyStorageUpdateColumns);

            // Update ServerTransferSyntaxGUID in FilesystemStudyStorage
            IFilesystemStudyStorageEntityBroker filesystemUpdate        = updateContext.GetBroker <IFilesystemStudyStorageEntityBroker>();
            FilesystemStudyStorageUpdateColumns filesystemUpdateColumns = new FilesystemStudyStorageUpdateColumns();

            filesystemUpdateColumns.ServerTransferSyntaxKey = _newSyntax.Key;
            filesystemUpdate.Update(_location.FilesystemStudyStorageKey, filesystemUpdateColumns);
        }
        protected override void OnExecute(CommandProcessor theProcessor, IUpdateContext updateContext)
        {
            // update FilesystemStudyStorage
            if (Context != null)
            {
                Platform.Log(LogLevel.Info, "Updating database...");
                IFilesystemStudyStorageEntityBroker broker = updateContext.GetBroker <IFilesystemStudyStorageEntityBroker>();

                FilesystemStudyStorageSelectCriteria searchCriteria = new FilesystemStudyStorageSelectCriteria();
                searchCriteria.StudyStorageKey.EqualTo(Context.OriginalStudyLocation.GetKey());
                searchCriteria.FilesystemKey.EqualTo(Context.OriginalStudyLocation.FilesystemKey);
                FilesystemStudyStorage filesystemStudyStorage = broker.FindOne(searchCriteria);
                Debug.Assert(filesystemStudyStorage != null);

                // Update Filesystem for the StudyStorage entry
                filesystemStudyStorage.FilesystemKey = Context.Destination.Filesystem.GetKey();
                broker.Update(filesystemStudyStorage);


                // Update Filesystem for the remaining FilesystemQueue entries
                IFilesystemQueueEntityBroker  fsQueueBroker         = updateContext.GetBroker <IFilesystemQueueEntityBroker>();
                FilesystemQueueSelectCriteria fsQueueSearchCriteria = new FilesystemQueueSelectCriteria();
                fsQueueSearchCriteria.StudyStorageKey.EqualTo(Context.OriginalStudyLocation.GetKey());
                fsQueueSearchCriteria.FilesystemKey.EqualTo(Context.OriginalStudyLocation.FilesystemKey);

                FilesystemQueueUpdateColumns fsQueueUpdateColumns = new FilesystemQueueUpdateColumns();
                fsQueueUpdateColumns.FilesystemKey = Context.Destination.Filesystem.GetKey();
                fsQueueBroker.Update(fsQueueSearchCriteria, fsQueueUpdateColumns);

                // Insert or update Filesystem Queue table.
                IInsertFilesystemQueue          insertFilesystemQueueBroker = updateContext.GetBroker <IInsertFilesystemQueue>();
                FilesystemQueueInsertParameters parms = new FilesystemQueueInsertParameters();
                parms.FilesystemKey           = Context.Destination.Filesystem.GetKey();
                parms.FilesystemQueueTypeEnum = FilesystemQueueTypeEnum.TierMigrate;
                parms.ScheduledTime           = Platform.Time;
                parms.StudyStorageKey         = Context.OriginalStudyLocation.GetKey();
                insertFilesystemQueueBroker.Execute(parms);

                Platform.Log(LogLevel.Info, "Database is updated.");
            }
        }