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