private void ReinsertFilesystemQueue(TimeSpan delay)
{
using (
IUpdateContext updateContext =
PersistentStoreRegistry.GetDefaultStore().OpenUpdateContext(UpdateContextSyncMode.Flush))
{
IWorkQueueUidEntityBroker broker = updateContext.GetBroker<IWorkQueueUidEntityBroker>();
WorkQueueUidSelectCriteria workQueueUidCriteria = new WorkQueueUidSelectCriteria();
workQueueUidCriteria.WorkQueueKey.EqualTo(WorkQueueItem.Key);
broker.Delete(workQueueUidCriteria);
FilesystemQueueInsertParameters parms = new FilesystemQueueInsertParameters();
parms.FilesystemQueueTypeEnum = CompressTransferSyntax.LosslessCompressed
? FilesystemQueueTypeEnum.LosslessCompress
: FilesystemQueueTypeEnum.LossyCompress;
parms.ScheduledTime = Platform.Time + delay;
parms.StudyStorageKey = WorkQueueItem.StudyStorageKey;
parms.FilesystemKey = StorageLocation.FilesystemKey;
parms.QueueXml = WorkQueueItem.Data;
IInsertFilesystemQueue insertQueue = updateContext.GetBroker<IInsertFilesystemQueue>();
if (false == insertQueue.Execute(parms))
{
Platform.Log(LogLevel.Error, "Unexpected failure inserting FilesystemQueue entry");
}
else
updateContext.Commit();
}
}
#endregion