Esempio n. 1
0
        static public FilesystemQueue Insert(IUpdateContext update, FilesystemQueue entity)
        {
            var broker        = update.GetBroker <IFilesystemQueueEntityBroker>();
            var updateColumns = new FilesystemQueueUpdateColumns();

            updateColumns.FilesystemQueueTypeEnum = entity.FilesystemQueueTypeEnum;
            updateColumns.StudyStorageKey         = entity.StudyStorageKey;
            updateColumns.FilesystemKey           = entity.FilesystemKey;
            updateColumns.ScheduledTime           = entity.ScheduledTime;
            updateColumns.SeriesInstanceUid       = entity.SeriesInstanceUid;
            updateColumns.QueueXml = entity.QueueXml;
            FilesystemQueue newEntity = broker.Insert(updateColumns);

            return(newEntity);
        }
        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.");
            }
        }