public void TestAddAndGet() { DeleteAllWorkItemUids(); long oid, workItemOid; string version; using (var context = new DataAccessContext()) { WorkItem workItem; var workItemBroker = context.GetWorkItemBroker(); workItemBroker.AddWorkItem(workItem = CreateWorkItem("A")); var workItemUid = CreateWorkItemUid(workItem, "ABCDEF", "2", "3", true, true, 123); var broker = context.GetWorkItemUidBroker(); broker.AddWorkItemUid(workItemUid); context.Commit(); workItemOid = workItem.Oid; Assert.AreNotEqual(0, oid = workItemUid.Oid, "Oid should have been assigned on insert"); Assert.IsNotNull(workItemUid.Version, "Version should have been assigned on insert"); version = workItemUid.Version.ToString(); } using (var context = new DataAccessContext()) { var broker = context.GetWorkItemUidBroker(); var workItemUid = broker.GetWorkItemUid(oid); Assert.AreEqual("ABCDEF", workItemUid.File, "File"); Assert.AreEqual("2", workItemUid.SeriesInstanceUid, "SeriesInstanceUid"); Assert.AreEqual("3", workItemUid.SopInstanceUid, "SopInstanceUid"); Assert.AreEqual(workItemOid, workItemUid.WorkItemOid, "WorkItemOid"); Assert.AreEqual(true, workItemUid.Complete, "Complete"); Assert.AreEqual(true, workItemUid.Failed, "Failed"); Assert.AreEqual(123, workItemUid.FailureCount, "FailureCount"); workItemUid.Failed = false; workItemUid.FailureCount = null; context.Commit(); Assert.AreNotEqual(version, workItemUid.Version, "Version should have been changed on update"); } using (var context = new DataAccessContext()) { var broker = context.GetWorkItemUidBroker(); var workItemUid = broker.GetWorkItemUid(oid); Assert.AreEqual("ABCDEF", workItemUid.File, "File"); Assert.AreEqual("2", workItemUid.SeriesInstanceUid, "SeriesInstanceUid"); Assert.AreEqual("3", workItemUid.SopInstanceUid, "SopInstanceUid"); Assert.AreEqual(workItemOid, workItemUid.WorkItemOid, "WorkItemOid"); Assert.AreEqual(true, workItemUid.Complete, "Complete"); Assert.AreEqual(false, workItemUid.Failed, "Failed"); Assert.AreEqual(null, workItemUid.FailureCount, "FailureCount"); } }
public void Dispose() { if (context != null) { context.Dispose(); context = null; } }
private void DeleteAllDocuments() { using (var context = new DataAccessContext()) { var broker = context.GetConfigurationDocumentBroker(); broker.DeleteAllDocuments(); } }
public UnitOfWork(IDataAccessContext context, IUserManagerProxy userManagerProxy, ICategoryLogRepository<CategoryLog> categoryLog ) { this.context = context as DataAccessContext; this.UserManager = userManagerProxy; this.CategoryLogRepository = categoryLog; }
public void Initialize() { Platform.SetExtensionFactory(new UnitTestExtensionFactory( new Dictionary<Type, Type> { {typeof(ServiceProviderExtensionPoint), typeof(SystemConfigurationServiceProvider)} })); using (var context = new DataAccessContext()) { var broker = context.GetConfigurationDocumentBroker(); broker.DeleteAllDocuments(); } }
private WorkItemQuery() { _context = new DataAccessContext(DataAccessContext.WorkItemMutex); }
public void TestAddAndGetPrior() { DeleteAllDocuments(); string documentName = "test"; string instanceKey = null; string user = null; var oldestKey = new ConfigurationDocumentKey(documentName, new Version(3, 5, 21685, 22177), user, instanceKey); var oldest = new ConfigurationDocument { CreationTime = DateTime.Now, DocumentName = oldestKey.DocumentName, DocumentVersionString = VersionUtils.ToPaddedVersionString(oldestKey.Version, false, false), User = oldestKey.User, InstanceKey = oldestKey.InstanceKey, DocumentText = "oldest" }; var previousKey = new ConfigurationDocumentKey(documentName, new Version(4, 4, 21685, 22177), user, instanceKey); var previous = new ConfigurationDocument { CreationTime = DateTime.Now, DocumentName = previousKey.DocumentName, DocumentVersionString = VersionUtils.ToPaddedVersionString(previousKey.Version, false, false), User = previousKey.User, InstanceKey = previousKey.InstanceKey, DocumentText = "previous" }; var newestKey = new ConfigurationDocumentKey(documentName, new Version(5, 1, 21685, 22177), user, instanceKey); var newest = new ConfigurationDocument { CreationTime = DateTime.Now, DocumentName = newestKey.DocumentName, DocumentVersionString = VersionUtils.ToPaddedVersionString(newestKey.Version, false, false), User = newestKey.User, InstanceKey = newestKey.InstanceKey, DocumentText = "newest" }; using (var context = new DataAccessContext()) { var broker = context.GetConfigurationDocumentBroker(); broker.AddConfigurationDocument(oldest); broker.AddConfigurationDocument(previous); broker.AddConfigurationDocument(newest); context.Commit(); } using (var context = new DataAccessContext()) { var broker = context.GetConfigurationDocumentBroker(); var oldestRetrieved = broker.GetConfigurationDocument(oldestKey); Assert.AreEqual(oldestRetrieved.DocumentName, oldest.DocumentName); Assert.AreEqual(oldestRetrieved.DocumentVersionString, oldest.DocumentVersionString); var previousRetrieved = broker.GetConfigurationDocument(previousKey); Assert.AreEqual(previousRetrieved.DocumentName, previous.DocumentName); Assert.AreEqual(previousRetrieved.DocumentVersionString, previous.DocumentVersionString); var newestRetrieved = broker.GetConfigurationDocument(newestKey); Assert.AreEqual(newestRetrieved.DocumentName, newest.DocumentName); Assert.AreEqual(newestRetrieved.DocumentVersionString, newest.DocumentVersionString); var previousOfNewest = broker.GetPriorConfigurationDocument(newestKey); Assert.AreEqual(previousOfNewest.DocumentName, previous.DocumentName); Assert.AreEqual(previousOfNewest.DocumentVersionString, previous.DocumentVersionString); } }
public bool Write(object target, object value, DataAccessContext context) { Dictionary <string, ItemModel> model = (Dictionary <string, ItemModel>)target; if (model == null) { return(false); } if (value == null || string.IsNullOrWhiteSpace(value.ToString())) { return(false); } if (value != null && Filter != null) { if (Filter == "sa-tags" && value.ToString().Contains("sa-tags")) { string[] tagList = value.ToString().Replace("[", "").Replace("]", "").Replace("sa-tags:", "").Split(','); List <Tag> lstTags = new List <Tag>(); foreach (var i in tagList) { if (!string.IsNullOrEmpty(i)) { Tag tag = new Tag(); tag.Name = i; tag.Available = false; lstTags.Add(tag); } } Database dbContext = Sitecore.Configuration.Factory.GetDatabase("master"); var items = dbContext.GetItem(TagRoots.TagsRoot).Axes.GetDescendants(); foreach (var tag in lstTags) { foreach (var item in items) { if (tag.Name.ToLower() == item.Name.ToLower()) { tag.ItemId = item.ID.ToString(); tag.Available = true; } } if (!tag.Available && !string.IsNullOrEmpty(tag.Name)) { TextInfo ti = CultureInfo.CurrentCulture.TextInfo; using (new SecurityDisabler()) { Item parentItem = dbContext.Items[TagRoots.TagsRoot]; TemplateItem template = dbContext.GetTemplate(Templates.Tag); string tagName = Regex.Replace(tag.Name, "[^a-zA-Z0-9_]+", "-"); tagName = tagName.Trim('-'); tagName = tagName.Trim(' '); Item newItem = parentItem.Add(tagName, template); if (newItem != null) { newItem.Editing.BeginEdit(); newItem.Appearance.DisplayName = ti.ToTitleCase(tagName); newItem.Editing.EndEdit(); } tag.ItemId = newItem.ID.ToString(); tag.Available = true; } } } string tagvalues = string.Empty; if (lstTags.Count > 0) { foreach (var tag in lstTags) { tagvalues = tagvalues + tag.ItemId + "|"; } value = tagvalues.Remove(tagvalues.Length - 1, 1); } } else if (Filter == "sa-locations" && value.ToString().Contains("sa-locations")) { string[] tagList = value.ToString().Replace("[", "").Replace("]", "").Replace("sa-locations:", "").Split(','); List <Tag> lstTags = new List <Tag>(); foreach (var i in tagList) { if (!string.IsNullOrEmpty(i)) { Tag tag = new Tag(); tag.Name = i; tag.Available = false; lstTags.Add(tag); } } Database dbContext = Sitecore.Configuration.Factory.GetDatabase("master"); var items = dbContext.GetItem(TagRoots.LocationTagsRoot).Axes.GetDescendants(); foreach (var tag in lstTags) { foreach (var item in items) { if (tag.Name.ToLower() == item.Name.ToLower()) { tag.ItemId = item.ID.ToString(); tag.Available = true; } } if (!tag.Available && !string.IsNullOrEmpty(tag.Name)) { TextInfo ti = CultureInfo.CurrentCulture.TextInfo; using (new SecurityDisabler()) { Item parentItem = dbContext.Items[TagRoots.LocationTagsRoot]; TemplateItem template = dbContext.GetTemplate(Templates.Tag); Item newItem = parentItem.Add(tag.Name.ToLower(), template); if (newItem != null) { newItem.Editing.BeginEdit(); newItem.Appearance.DisplayName = ti.ToTitleCase(tag.Name.Replace("-", " ")); newItem.Editing.EndEdit(); } tag.ItemId = newItem.ID.ToString(); tag.Available = true; } } } string tagvalues = string.Empty; if (lstTags.Count > 0) { foreach (var tag in lstTags) { tagvalues = tagvalues + tag.ItemId + "|"; } value = tagvalues.Remove(tagvalues.Length - 1, 1); } } else { Loggers.Logger log = new Loggers.Logger(); object ItemId = null; object ItemName = null; model[Language].TryGetValue("ItemID", out ItemId); model[Language].TryGetValue("ItemName", out ItemName); log.Error(string.Format("{0} - {1}, Invalid tag : {2}", ItemId, ItemName, value)); value = string.Empty; } } model[Language][Field] = value; return(true); }
/// <inheritdoc/> public DiscoveredDatabase Discover(DataAccessContext context) { return(_selfCertifyingDataAccessPoint.Discover(context)); }
public GenericRepository(DataAccessContext context) { this.context = context; this.dbSet = context.Set <TEntity>(); }
public IssuesController(DataAccessContext context) : base(context) { _context = context; }
public void TestGetStudyCount() { DeleteAllStudies(); using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); broker.AddStudy(CreateStudy("12.3", "A123")); broker.AddStudy(CreateStudy("45.6", "A456", deleted : true)); broker.AddStudy(CreateStudy("78.9", "A789")); broker.AddStudy(CreateStudy("", "A")); context.Commit(); } using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); var count = broker.GetStudyCount(); Assert.AreEqual(4, count); } }
public void TestGetWorkItemsScheduledBeforeOrHighPriority() { DeleteAllWorkItems(); var time = DateTime.Now.Truncate(); var pastTime = time.AddMinutes(-30); var futureTime = time.AddMinutes(30); using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); broker.AddWorkItem(CreateWorkItem(_idCancelled, "1", status : WorkItemStatusEnum.Canceled, scheduledTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idCanceling, "1", status : WorkItemStatusEnum.Canceling, scheduledTime : pastTime, priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idComplete, "1", status : WorkItemStatusEnum.Complete, scheduledTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idDeleting, "1", status : WorkItemStatusEnum.DeleteInProgress, scheduledTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idDeleted, "1", status : WorkItemStatusEnum.Deleted, scheduledTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idFailed, "1", status : WorkItemStatusEnum.Failed, scheduledTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idIdling, "1", status : WorkItemStatusEnum.Idle, scheduledTime : pastTime, priority : WorkItemPriorityEnum.High)); broker.AddWorkItem(CreateWorkItem(_idInProgress, "1", status : WorkItemStatusEnum.InProgress, scheduledTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idPending, "1", status : WorkItemStatusEnum.Pending, scheduledTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idCancelled, "2", status : WorkItemStatusEnum.Canceled, scheduledTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idCanceling, "2", status : WorkItemStatusEnum.Canceling, scheduledTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idComplete, "2", status : WorkItemStatusEnum.Complete, scheduledTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idDeleting, "2", status : WorkItemStatusEnum.DeleteInProgress, scheduledTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idDeleted, "2", status : WorkItemStatusEnum.Deleted, scheduledTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idFailed, "2", status : WorkItemStatusEnum.Failed, scheduledTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idIdling, "2", status : WorkItemStatusEnum.Idle, scheduledTime : futureTime, priority : WorkItemPriorityEnum.High)); broker.AddWorkItem(CreateWorkItem(_idInProgress, "2", status : WorkItemStatusEnum.InProgress, scheduledTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idPending, "2", status : WorkItemStatusEnum.Pending, scheduledTime : futureTime, priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idIdling, "3", status : WorkItemStatusEnum.Idle, scheduledTime : time.AddMinutes(-3), priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idPending, "4", status : WorkItemStatusEnum.Pending, scheduledTime : time.AddMinutes(-1), priority : WorkItemPriorityEnum.High)); broker.AddWorkItem(CreateWorkItem(_idIdling, "5", status : WorkItemStatusEnum.Idle, scheduledTime : time.AddMinutes(-1))); context.Commit(); } using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); var highPriority = broker.GetWorkItemsScheduledBeforeOrHigherPriority(time, WorkItemPriorityEnum.High, null, null, null).ToList(); var highPriorityFuture = broker.GetWorkItemsScheduledBeforeOrHigherPriority(futureTime.AddMinutes(10), WorkItemPriorityEnum.High, null, null, null).ToList(); var highPriorityPast = broker.GetWorkItemsScheduledBeforeOrHigherPriority(time.AddMinutes(-10), WorkItemPriorityEnum.High, null, null, null).ToList(); var highPriorityRunningOrIdle = broker.GetWorkItemsScheduledBeforeOrHigherPriority(time, WorkItemPriorityEnum.High, WorkItemStatusFilter.RunningOrIdle, null, null).ToList(); var highPriorityStudyFilter = broker.GetWorkItemsScheduledBeforeOrHigherPriority(time, WorkItemPriorityEnum.High, null, "1", null).ToList(); var highPriorityTypeFilter = broker.GetWorkItemsScheduledBeforeOrHigherPriority(time, WorkItemPriorityEnum.High, null, null, _idCanceling, _idInProgress, _idPending).ToList(); var highPriorityStudyTypeFilter = broker.GetWorkItemsScheduledBeforeOrHigherPriority(time, WorkItemPriorityEnum.High, null, "1", _idCanceling, _idInProgress, _idPending).ToList(); // this ensures that the results are valid by checking that future time is indeed still in the future Assert.Less(DateTime.Now, futureTime, "Rerun Test! - Results are invalid due to an unreasonable delay during test setup, causing future timestamps to not be in the future"); Assert.AreEqual(4, highPriority.Count(), "Query yielded unexpected results for high or higher priority"); Assert.AreEqual("1" + _idCanceling, highPriority[0].StudyInstanceUid + highPriority[0].Type, "Query yield unexpected item"); Assert.AreEqual("3" + _idIdling, highPriority[1].StudyInstanceUid + highPriority[1].Type, "Query yield unexpected item"); Assert.AreEqual("1" + _idIdling, highPriority[2].StudyInstanceUid + highPriority[2].Type, "Query yield unexpected item"); Assert.AreEqual("4" + _idPending, highPriority[3].StudyInstanceUid + highPriority[3].Type, "Query yield unexpected item"); Assert.AreEqual(highPriority, highPriorityFuture, "Query should not yield results scheduled for future"); Assert.AreEqual(3, highPriorityPast.Count(), "Query yielded unexpected results for high or higher priority (past query)"); Assert.AreEqual("1" + _idCanceling, highPriorityPast[0].StudyInstanceUid + highPriorityPast[0].Type, "Query yield unexpected item (past query)"); Assert.AreEqual("3" + _idIdling, highPriorityPast[1].StudyInstanceUid + highPriorityPast[1].Type, "Query yield unexpected item (past query)"); Assert.AreEqual("1" + _idIdling, highPriorityPast[2].StudyInstanceUid + highPriorityPast[2].Type, "Query yield unexpected item (past query)"); Assert.AreEqual(3, highPriorityRunningOrIdle.Count(), "Query yielded unexpected results for high or higher priority (running or idle status filter)"); Assert.AreEqual("1" + _idCanceling, highPriorityRunningOrIdle[0].StudyInstanceUid + highPriorityRunningOrIdle[0].Type, "Query yield unexpected item (running or idle status filter)"); Assert.AreEqual("3" + _idIdling, highPriorityRunningOrIdle[1].StudyInstanceUid + highPriorityRunningOrIdle[1].Type, "Query yield unexpected item (running or idle status filter)"); Assert.AreEqual("1" + _idIdling, highPriorityRunningOrIdle[2].StudyInstanceUid + highPriorityRunningOrIdle[2].Type, "Query yield unexpected item (running or idle status filter)"); Assert.AreEqual(2, highPriorityStudyFilter.Count(), "Query yielded unexpected results for high or higher priority (study filter)"); Assert.AreEqual("1" + _idCanceling, highPriorityStudyFilter[0].StudyInstanceUid + highPriorityStudyFilter[0].Type, "Query yield unexpected item (study filter)"); Assert.AreEqual("1" + _idIdling, highPriorityStudyFilter[1].StudyInstanceUid + highPriorityStudyFilter[1].Type, "Query yield unexpected item (study filter)"); Assert.AreEqual(2, highPriorityTypeFilter.Count(), "Query yielded unexpected results for high or higher priority (type filter)"); Assert.AreEqual("1" + _idCanceling, highPriorityTypeFilter[0].StudyInstanceUid + highPriorityTypeFilter[0].Type, "Query yield unexpected item (type filter)"); Assert.AreEqual("4" + _idPending, highPriorityTypeFilter[1].StudyInstanceUid + highPriorityTypeFilter[1].Type, "Query yield unexpected item (type filter)"); Assert.AreEqual(1, highPriorityStudyTypeFilter.Count(), "Query yielded unexpected results for high or higher priority (study and type filter)"); Assert.AreEqual("1" + _idCanceling, highPriorityStudyTypeFilter[0].StudyInstanceUid + highPriorityStudyTypeFilter[0].Type, "Query yield unexpected item (study and type filter)"); } }
public void TestGetWorkItems() { DeleteAllWorkItems(); var time = DateTime.Now.Truncate(); var pastTime = time.AddMinutes(-30); var futureTime = time.AddMinutes(30); long oidOfActive, oidOfDeleted, oidOfDeleting; using (var context = new DataAccessContext()) { WorkItem itemA, itemB, itemC; var broker = context.GetWorkItemBroker(); broker.AddWorkItem(CreateWorkItem(_idCancelled, "1", status : WorkItemStatusEnum.Canceled, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idCanceling, "1", status : WorkItemStatusEnum.Canceling, processTime : pastTime, priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idComplete, "1", status : WorkItemStatusEnum.Complete, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idDeleting, "1", status : WorkItemStatusEnum.DeleteInProgress, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idDeleted, "1", status : WorkItemStatusEnum.Deleted, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idFailed, "1", status : WorkItemStatusEnum.Failed, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idIdling, "1", status : WorkItemStatusEnum.Idle, processTime : pastTime, priority : WorkItemPriorityEnum.High)); broker.AddWorkItem(CreateWorkItem(_idInProgress, "1", status : WorkItemStatusEnum.InProgress, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idPending, "1", status : WorkItemStatusEnum.Pending, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idCancelled, "2", status : WorkItemStatusEnum.Canceled, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idCanceling, "2", status : WorkItemStatusEnum.Canceling, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idComplete, "2", status : WorkItemStatusEnum.Complete, processTime : futureTime)); broker.AddWorkItem(itemB = CreateWorkItem(_idDeleting, "2", status : WorkItemStatusEnum.DeleteInProgress, processTime : futureTime)); broker.AddWorkItem(itemA = CreateWorkItem(_idDeleted, "2", status : WorkItemStatusEnum.Deleted, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idFailed, "2", status : WorkItemStatusEnum.Failed, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idIdling, "2", status : WorkItemStatusEnum.Idle, processTime : futureTime, priority : WorkItemPriorityEnum.High)); broker.AddWorkItem(itemC = CreateWorkItem(_idInProgress, "2", status : WorkItemStatusEnum.InProgress, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idPending, "2", status : WorkItemStatusEnum.Pending, processTime : futureTime, priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idIdling, "3", status : WorkItemStatusEnum.Idle, processTime : time.AddMinutes(-3), priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idPending, "4", status : WorkItemStatusEnum.Pending, processTime : time.AddMinutes(-1), priority : WorkItemPriorityEnum.High)); broker.AddWorkItem(CreateWorkItem(_idIdling, "5", status : WorkItemStatusEnum.Idle, processTime : time.AddMinutes(-1))); broker.AddWorkItem(CreateWorkItem(_idIdling, "999", status : WorkItemStatusEnum.Deleted, processTime : time.AddMinutes(-1))); context.Commit(); oidOfDeleted = itemA.Oid; oidOfDeleting = itemB.Oid; oidOfActive = itemC.Oid; } using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); var getByOid = broker.GetWorkItems(null, null, null, oidOfActive).SingleOrDefault(); var getByDeletedOid = broker.GetWorkItems(null, null, null, oidOfDeleted).ToList(); var getByOidAndStudy = broker.GetWorkItems(null, null, "1", oidOfDeleted).ToList(); var getByStudy = broker.GetWorkItems(null, null, "2").ToList(); var getByStatus = broker.GetWorkItems(null, WorkItemStatusFilter.RunningOrIdle, string.Empty).ToList(); var getByStatusAndStudy = broker.GetWorkItems(null, WorkItemStatusFilter.RunningOrIdle, "2").ToList(); var getByType = broker.GetWorkItems(_idIdling, null, null).ToList(); var getByTypeAndStatus = broker.GetWorkItems(_idIdling, WorkItemStatusFilter.Nil, null).ToList(); var getByTypeAndStatusAndStudy = broker.GetWorkItems(_idIdling, WorkItemStatusFilter.Nil, "2").SingleOrDefault(); // this ensures that the results are valid by checking that future time is indeed still in the future Assert.Less(DateTime.Now, futureTime, "Rerun Test! - Results are invalid due to an unreasonable delay during test setup, causing future timestamps to not be in the future"); Assert.IsNotNull(getByOid, "Query by OID did not return expected result"); Assert.AreEqual(oidOfActive, getByOid.Oid, "Query by OID did not return expected result"); Assert.IsFalse(getByDeletedOid.Any(), "Query by OID (Deleted) should not return any results"); Assert.IsFalse(getByOidAndStudy.Any(), "Query by OID and Study should not return any results"); Assert.AreEqual(7, getByStudy.Count, "Query by Study did not expected number of results"); Assert.AreEqual(7, getByStudy.Select(x => x.Oid).Distinct().Count(), "Query by Study did not expected number of results"); Assert.IsFalse(getByStudy.Any(x => x.Oid == oidOfDeleted || x.Oid == oidOfDeleting), "Query by Study returned deleted items"); Assert.AreEqual(getByStudy.OrderBy(x => x.Priority).ThenBy(x => x.ProcessTime).ToList(), getByStudy, "Query by Study returned items out of order"); Assert.AreEqual(8, getByStatus.Count, "Query by Status did not expected number of results"); Assert.AreEqual(8, getByStatus.Select(x => x.Oid).Distinct().Count(), "Query by Status did not expected number of results"); Assert.IsTrue(getByStatus.All(x => x.Status == WorkItemStatusEnum.Canceling || x.Status == WorkItemStatusEnum.InProgress || x.Status == WorkItemStatusEnum.Idle), "Query by Status returned deleted items"); Assert.AreEqual(getByStatus.OrderBy(x => x.Priority).ThenBy(x => x.ProcessTime).ToList(), getByStatus, "Query by Status returned items out of order"); Assert.AreEqual(3, getByStatusAndStudy.Count, "Query by Status and Study did not expected number of results"); Assert.AreEqual(3, getByStatusAndStudy.Select(x => x.Oid).Distinct().Count(), "Query by Status and Study did not expected number of results"); Assert.IsTrue(getByStatusAndStudy.All(x => x.Status == WorkItemStatusEnum.Canceling || x.Status == WorkItemStatusEnum.InProgress || x.Status == WorkItemStatusEnum.Idle), "Query by Status and Study returned deleted items"); Assert.AreEqual(getByStatusAndStudy.OrderBy(x => x.Priority).ThenBy(x => x.ProcessTime).ToList(), getByStatusAndStudy, "Query by Status and Study returned items out of order"); Assert.AreEqual(4, getByType.Count, "Query by Type did not expected number of results"); Assert.AreEqual(4, getByType.Select(x => x.Oid).Distinct().Count(), "Query by Type did not expected number of results"); Assert.IsTrue(getByType.All(x => x.Status == WorkItemStatusEnum.Canceling || x.Status == WorkItemStatusEnum.InProgress || x.Status == WorkItemStatusEnum.Idle), "Query by Type returned deleted items"); Assert.AreEqual(getByType.OrderBy(x => x.Priority).ThenBy(x => x.ProcessTime).ToList(), getByType, "Query by Type returned items out of order"); Assert.AreEqual(5, getByTypeAndStatus.Count, "Query by Type and Status did not expected number of results"); Assert.AreEqual(5, getByTypeAndStatus.Select(x => x.Oid).Distinct().Count(), "Query by Type and Status did not expected number of results"); Assert.IsTrue(getByTypeAndStatus.All(x => x.Status == WorkItemStatusEnum.Canceling || x.Status == WorkItemStatusEnum.InProgress || x.Status == WorkItemStatusEnum.Idle || x.StudyInstanceUid == "999"), "Query by Type and Status returned unexpected items"); Assert.AreEqual(getByTypeAndStatus.OrderBy(x => x.Priority).ThenBy(x => x.ProcessTime).ToList(), getByTypeAndStatus, "Query by Type and Status returned items out of order"); Assert.IsNotNull(getByTypeAndStatusAndStudy, "Query by Type and Status and Study did not expected results"); } }
public void TestGetWorkItemsForProcessingAnyPriority() { DeleteAllWorkItems(); var time = DateTime.Now.Truncate(); var pastTime = time.AddMinutes(-30); var futureTime = time.AddMinutes(30); using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); broker.AddWorkItem(CreateWorkItem(_idCancelled, "1", status : WorkItemStatusEnum.Canceled, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idCanceling, "1", status : WorkItemStatusEnum.Canceling, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idComplete, "1", status : WorkItemStatusEnum.Complete, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idDeleting, "1", status : WorkItemStatusEnum.DeleteInProgress, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idDeleted, "1", status : WorkItemStatusEnum.Deleted, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idFailed, "1", status : WorkItemStatusEnum.Failed, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idIdling, "1a", status : WorkItemStatusEnum.Idle, processTime : pastTime, priority : WorkItemPriorityEnum.High)); broker.AddWorkItem(CreateWorkItem(_idInProgress, "1", status : WorkItemStatusEnum.InProgress, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idPending, "1b", status : WorkItemStatusEnum.Pending, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idCancelled, "2", status : WorkItemStatusEnum.Canceled, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idCanceling, "2", status : WorkItemStatusEnum.Canceling, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idComplete, "2", status : WorkItemStatusEnum.Complete, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idDeleting, "2", status : WorkItemStatusEnum.DeleteInProgress, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idDeleted, "2", status : WorkItemStatusEnum.Deleted, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idFailed, "2", status : WorkItemStatusEnum.Failed, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idIdling, "2a", status : WorkItemStatusEnum.Idle, processTime : futureTime, priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idInProgress, "2", status : WorkItemStatusEnum.InProgress, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idPending, "2b", status : WorkItemStatusEnum.Pending, processTime : futureTime, priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idIdling, "3", status : WorkItemStatusEnum.Idle, processTime : time.AddMinutes(-3), priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idPending, "4", status : WorkItemStatusEnum.Pending, processTime : time.AddMinutes(-1), priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idIdling, "5", status : WorkItemStatusEnum.Idle, processTime : time.AddMinutes(-1))); context.Commit(); } using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); // there are 5 processable items here (status is idle or pending, and process time in the past) var topProcessable = broker.GetWorkItemsForProcessing(3); var allProcessable = broker.GetWorkItemsForProcessing(7); // this ensures that the results are valid by checking that future time is indeed still in the future Assert.Less(DateTime.Now, futureTime, "Rerun Test! - Results are invalid due to an unreasonable delay during test setup, causing future timestamps to not be in the future"); Assert.AreEqual(3, topProcessable.Count, "Query top should yield 3 items"); Assert.IsTrue(topProcessable.All(x => x.Status == WorkItemStatusEnum.Idle || x.Status == WorkItemStatusEnum.Pending), "Query top yielded item with wrong status"); Assert.AreEqual("3", topProcessable[0].StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual("4", topProcessable[1].StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual("1a", topProcessable[2].StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual(5, allProcessable.Count, "Query all should yield 5 items"); Assert.IsTrue(allProcessable.All(x => x.Status == WorkItemStatusEnum.Idle || x.Status == WorkItemStatusEnum.Pending), "Query top yielded item with wrong status"); Assert.AreEqual("3", allProcessable[0].StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual("4", allProcessable[1].StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual("1a", allProcessable[2].StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual("1b", allProcessable[3].StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual("5", allProcessable[4].StudyInstanceUid, "Query top yielded item with wrong identity"); } }
public void TestGetWorkItemsForProcessingWithPriority() { DeleteAllWorkItems(); var time = DateTime.Now.Truncate(); var pastTime = time.AddMinutes(-30); var futureTime = time.AddMinutes(30); using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); broker.AddWorkItem(CreateWorkItem(_idCancelled, "1", status : WorkItemStatusEnum.Canceled, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idCanceling, "1", status : WorkItemStatusEnum.Canceling, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idComplete, "1", status : WorkItemStatusEnum.Complete, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idDeleting, "1", status : WorkItemStatusEnum.DeleteInProgress, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idDeleted, "1", status : WorkItemStatusEnum.Deleted, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idFailed, "1", status : WorkItemStatusEnum.Failed, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idIdling, "1a", status : WorkItemStatusEnum.Idle, processTime : pastTime, priority : WorkItemPriorityEnum.High)); broker.AddWorkItem(CreateWorkItem(_idInProgress, "1", status : WorkItemStatusEnum.InProgress, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idPending, "1b", status : WorkItemStatusEnum.Pending, processTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idCancelled, "2", status : WorkItemStatusEnum.Canceled, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idCanceling, "2", status : WorkItemStatusEnum.Canceling, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idComplete, "2", status : WorkItemStatusEnum.Complete, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idDeleting, "2", status : WorkItemStatusEnum.DeleteInProgress, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idDeleted, "2", status : WorkItemStatusEnum.Deleted, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idFailed, "2", status : WorkItemStatusEnum.Failed, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idIdling, "2a", status : WorkItemStatusEnum.Idle, processTime : futureTime, priority : WorkItemPriorityEnum.High)); broker.AddWorkItem(CreateWorkItem(_idInProgress, "2", status : WorkItemStatusEnum.InProgress, processTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idPending, "2b", status : WorkItemStatusEnum.Pending, processTime : futureTime, priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idIdling, "3", status : WorkItemStatusEnum.Idle, processTime : time.AddMinutes(-3), priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idPending, "4", status : WorkItemStatusEnum.Pending, processTime : time.AddMinutes(-1), priority : WorkItemPriorityEnum.Stat)); broker.AddWorkItem(CreateWorkItem(_idIdling, "5", status : WorkItemStatusEnum.Idle, processTime : time.AddMinutes(-1))); context.Commit(); } using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); // there are 5 processable items here (status is idle or pending, and process time in the past) var highPriority = broker.GetWorkItemsForProcessing(1, WorkItemPriorityEnum.High).SingleOrDefault(); var statPriority = broker.GetWorkItemsForProcessing(1, WorkItemPriorityEnum.Stat).SingleOrDefault(); var normPriority = broker.GetWorkItemsForProcessing(1, WorkItemPriorityEnum.Normal).SingleOrDefault(); var allHighPriority = broker.GetWorkItemsForProcessing(9, WorkItemPriorityEnum.High); var allStatPriority = broker.GetWorkItemsForProcessing(9, WorkItemPriorityEnum.Stat); var allNormPriority = broker.GetWorkItemsForProcessing(9, WorkItemPriorityEnum.Normal); // this ensures that the results are valid by checking that future time is indeed still in the future Assert.Less(DateTime.Now, futureTime, "Rerun Test! - Results are invalid due to an unreasonable delay during test setup, causing future timestamps to not be in the future"); Assert.IsNotNull(highPriority, "Query top did not yield expected result for high"); Assert.AreEqual("1a", highPriority.StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.IsNotNull(statPriority, "Query top did not yield expected result for stat"); Assert.AreEqual("3", statPriority.StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.IsNotNull(normPriority, "Query top did not yield expected result for normal"); Assert.AreEqual("1b", normPriority.StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual(1, allHighPriority.Count, "Query top did not yield expected result for high"); Assert.AreEqual("1a", allHighPriority[0].StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual(2, allStatPriority.Count, "Query top did not yield expected result for stat"); Assert.AreEqual("3", allStatPriority[0].StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual("4", allStatPriority[1].StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual(2, allNormPriority.Count, "Query top did not yield expected result for normal"); Assert.AreEqual("1b", allNormPriority[0].StudyInstanceUid, "Query top yielded item with wrong identity"); Assert.AreEqual("5", allNormPriority[1].StudyInstanceUid, "Query top yielded item with wrong identity"); } }
public void TestGetWorkItemsDeleted() { DeleteAllWorkItems(); var time = DateTime.Now.Truncate(); var pastTime = time.AddMinutes(-30); var futureTime = time.AddMinutes(30); using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); broker.AddWorkItem(CreateWorkItem(_idCancelled, "1", status : WorkItemStatusEnum.Canceled, deleteTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idCanceling, "1", status : WorkItemStatusEnum.Canceling, deleteTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idComplete, "1", status : WorkItemStatusEnum.Complete, deleteTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idDeleting, "1", status : WorkItemStatusEnum.DeleteInProgress, deleteTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idDeleted, "1", status : WorkItemStatusEnum.Deleted, deleteTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idFailed, "1", status : WorkItemStatusEnum.Failed, deleteTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idIdling, "1", status : WorkItemStatusEnum.Idle, deleteTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idInProgress, "1", status : WorkItemStatusEnum.InProgress, deleteTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idPending, "1", status : WorkItemStatusEnum.Pending, deleteTime : pastTime)); broker.AddWorkItem(CreateWorkItem(_idCancelled, "2", status : WorkItemStatusEnum.Canceled, deleteTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idCanceling, "2", status : WorkItemStatusEnum.Canceling, deleteTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idComplete, "2", status : WorkItemStatusEnum.Complete, deleteTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idDeleting, "2", status : WorkItemStatusEnum.DeleteInProgress, deleteTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idDeleted, "2", status : WorkItemStatusEnum.Deleted, deleteTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idFailed, "2", status : WorkItemStatusEnum.Failed, deleteTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idIdling, "2", status : WorkItemStatusEnum.Idle, deleteTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idInProgress, "2", status : WorkItemStatusEnum.InProgress, deleteTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idPending, "2", status : WorkItemStatusEnum.Pending, deleteTime : futureTime)); broker.AddWorkItem(CreateWorkItem(_idDeleted, "3", status : WorkItemStatusEnum.Deleted, deleteTime : time.AddMinutes(-1))); broker.AddWorkItem(CreateWorkItem(_idDeleted, "4", status : WorkItemStatusEnum.Deleted, deleteTime : time.AddMinutes(-2))); broker.AddWorkItem(CreateWorkItem(_idDeleted, "5", status : WorkItemStatusEnum.Deleted, deleteTime : time.AddMinutes(-3))); context.Commit(); } using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); // there are 5 deleted items here (status is deleted) var topDeleted = broker.GetWorkItemsDeleted(3); var allDeleted = broker.GetWorkItemsDeleted(7); // this ensures that the results are valid by checking that future time is indeed still in the future Assert.Less(DateTime.Now, futureTime, "Rerun Test! - Results are invalid due to an unreasonable delay during test setup, causing future timestamps to not be in the future"); Assert.AreEqual(3, topDeleted.Count, "Query top should yield 3 items"); Assert.IsTrue(topDeleted.All(x => x.Type == _idDeleted), "Query top yielded item with wrong identity"); Assert.IsTrue(topDeleted.All(x => x.Status == WorkItemStatusEnum.Deleted), "Query top yielded item with wrong status"); Assert.AreEqual(5, allDeleted.Count, "Query all should yield 5 items"); Assert.IsTrue(allDeleted.All(x => x.Type == _idDeleted), "Query all yielded item with wrong identity"); Assert.IsTrue(allDeleted.All(x => x.Status == WorkItemStatusEnum.Deleted), "Query all yielded item with wrong status"); Assert.AreEqual(1, allDeleted.Count(x => x.StudyInstanceUid == "1"), "Query all failed to yield deletable item"); Assert.AreEqual(1, allDeleted.Count(x => x.StudyInstanceUid == "2"), "Query all failed to yield deletable item"); Assert.AreEqual(1, allDeleted.Count(x => x.StudyInstanceUid == "3"), "Query all failed to yield deletable item"); Assert.AreEqual(1, allDeleted.Count(x => x.StudyInstanceUid == "4"), "Query all failed to yield deletable item"); Assert.AreEqual(1, allDeleted.Count(x => x.StudyInstanceUid == "5"), "Query all failed to yield deletable item"); } }
public void TestGetReindexStudies() { DeleteAllStudies(); using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); broker.AddStudy(CreateStudy("12.3", "A123")); broker.AddStudy(CreateStudy("45.6", "A456", deleted : true, reindex : true)); broker.AddStudy(CreateStudy("78.9", "A789", reindex : true)); broker.AddStudy(CreateStudy("", "A", deleted : true)); context.Commit(); } using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); var studies = broker.GetReindexStudies(); Assert.AreEqual(2, studies.Count); Assert.IsTrue(studies.Any(s => s.StudyInstanceUid == "45.6"), "Missing study 45.6"); Assert.IsTrue(studies.Any(s => s.StudyInstanceUid == "78.9"), "Missing study 78.9"); } }
public void TestGetStudiesForDeletion() { DeleteAllStudies(); var time = DateTime.Now.Truncate(); var pastTime = time.AddMinutes(-30); var futureTime = time.AddMinutes(30); using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); broker.AddStudy(CreateStudy("12.3", "A123")); broker.AddStudy(CreateStudy("45.6", "A456", deleted : true, deleteTime : pastTime)); broker.AddStudy(CreateStudy("78.9", "A789", deleteTime : pastTime.AddMinutes(-1))); broker.AddStudy(CreateStudy("89.0", "A890", deleteTime : futureTime)); broker.AddStudy(CreateStudy("", "A", deleted : true)); context.Commit(); } using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); var deletableOld = broker.GetStudiesForDeletion(time, 5); var deletableOldest = broker.GetStudiesForDeletion(time, 1).SingleOrDefault(); var deletableAny = broker.GetStudiesForDeletion(futureTime.AddMinutes(100), 9); Assert.AreEqual(1, deletableOld.Count); Assert.AreEqual("78.9", deletableOld[0].StudyInstanceUid, "Missing deletable old study 78.9"); Assert.IsNotNull(deletableOldest, "Missing oldest deletable"); Assert.AreEqual("78.9", deletableOldest.StudyInstanceUid, "missing deletable oldest study"); Assert.AreEqual(2, deletableAny.Count); Assert.AreEqual("78.9", deletableAny[0].StudyInstanceUid, "Missing deletable old study 78.9"); Assert.AreEqual("89.0", deletableAny[1].StudyInstanceUid, "Missing deletable newer study 89.0"); } }
public ProductGroupRepository(DataAccessContext context, IMapper mapper) : base(context, mapper) { _context = context; _mapper = mapper; }
public void TestAddAndGet() { DeleteAllWorkItems(); var time = new DateTime(2014, 07, 01, 11, 12, 45); long oid; string version; using (var context = new DataAccessContext()) { var workItem = CreateWorkItem("blah", "1", WorkItemPriorityEnum.High, WorkItemStatusEnum.Idle, 987, time, time.AddMinutes(1), time.AddMinutes(10), time.AddMinutes(30), time.AddMinutes(60), "request data", "progress data"); var broker = context.GetWorkItemBroker(); broker.AddWorkItem(CreateWorkItem("junk", "2")); broker.AddWorkItem(workItem); broker.AddWorkItem(CreateWorkItem("junk", "3")); context.Commit(); Assert.AreNotEqual(0, oid = workItem.Oid, "Oid should have been assigned on insert"); Assert.IsNotNull(workItem.Version, "Version should have been assigned on insert"); version = workItem.Version.ToString(); } using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); var workItem = broker.GetWorkItem(oid); Assert.AreEqual("blah", workItem.Type, "Type"); Assert.AreEqual("1", workItem.StudyInstanceUid, "StudyInstanceUid"); Assert.AreEqual(WorkItemPriorityEnum.High, workItem.Priority, "Priority"); Assert.AreEqual(WorkItemStatusEnum.Idle, workItem.Status, "Status"); Assert.AreEqual(987, workItem.FailureCount, "FailureCount"); Assert.AreEqual(time, workItem.RequestedTime, "RequestedTime"); Assert.AreEqual(time.AddMinutes(1), workItem.ScheduledTime, "ScheduledTime"); Assert.AreEqual(time.AddMinutes(10), workItem.ProcessTime, "ProcessTime"); Assert.AreEqual(time.AddMinutes(30), workItem.ExpirationTime, "ExpirationTime"); Assert.AreEqual(time.AddMinutes(60), workItem.DeleteTime, "DeleteTime"); Assert.IsNotNull(workItem.Request, "Request"); Assert.AreEqual("request data", workItem.Request.WorkItemType, "Request.WorkItemType"); Assert.IsNotNull(workItem.Progress, "Progress"); Assert.AreEqual("progress data", workItem.Progress.StatusDetails, "Progress.StatusDetails"); workItem.Status = WorkItemStatusEnum.Pending; context.Commit(); Assert.AreNotEqual(version, workItem.Version, "Version should have been changed on update"); } using (var context = new DataAccessContext()) { var broker = context.GetWorkItemBroker(); var workItem = broker.GetWorkItem(oid); Assert.AreEqual("blah", workItem.Type, "Type after update"); Assert.AreEqual("1", workItem.StudyInstanceUid, "StudyInstanceUid after update"); Assert.AreEqual(WorkItemPriorityEnum.High, workItem.Priority, "Priority after update"); Assert.AreEqual(WorkItemStatusEnum.Pending, workItem.Status, "Status after update"); Assert.AreEqual(987, workItem.FailureCount, "FailureCount after update"); Assert.AreEqual(time, workItem.RequestedTime, "RequestedTime after update"); Assert.AreEqual(time.AddMinutes(1), workItem.ScheduledTime, "ScheduledTime after update"); Assert.AreEqual(time.AddMinutes(10), workItem.ProcessTime, "ProcessTime after update"); Assert.AreEqual(time.AddMinutes(30), workItem.ExpirationTime, "ExpirationTime after update"); Assert.AreEqual(time.AddMinutes(60), workItem.DeleteTime, "DeleteTime after update"); Assert.IsNotNull(workItem.Request, "Request after update"); Assert.AreEqual("request data", workItem.Request.WorkItemType, "Request.WorkItemType after update"); Assert.IsNotNull(workItem.Progress, "Progress after update"); Assert.AreEqual("progress data", workItem.Progress.StatusDetails, "Progress.StatusDetails after update"); } }
public void TestAddAndGet() { DeleteAllStudies(); var time = DateTime.Now.Truncate(); long oid; string version; using (var context = new DataAccessContext()) { var study = CreateStudy("123", "A#", "MRN", "BOBSON^BOB", new DateTime(2014, 07, 01), "1234", "DESU", @"CT\PT\KO\PR\SC", 6, 2101, time, true, time.AddMinutes(100)); var broker = context.GetStudyBroker(); broker.AddStudy(CreateStudy("456", "2")); broker.AddStudy(study); broker.AddStudy(CreateStudy("789", "3")); context.Commit(); Assert.AreNotEqual(0, oid = study.Oid, "Oid should have been assigned on insert"); Assert.IsNotNull(study.Version, "Version should have been assigned on insert"); version = study.Version.ToString(); } using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); var study = broker.GetStudy(oid); Assert.AreEqual("123", study.StudyInstanceUid, "StudyInstanceUid"); Assert.AreEqual("A#", study.AccessionNumber, "AccessionNumber"); Assert.AreEqual("MRN", study.PatientId, "PatientId"); Assert.AreEqual("BOBSON^BOB", study.PatientsName, "PatientsName"); Assert.AreEqual(new DateTime(2014, 07, 01), study.StudyDate, "StudyDate"); Assert.AreEqual("20140701", study.StudyDateRaw, "StudyDateRaw"); Assert.AreEqual("1234", study.StudyId, "StudyId"); Assert.AreEqual("DESU", study.StudyDescription, "StudyDescription"); Assert.AreEqual(@"CT\PT\KO\PR\SC", study.ModalitiesInStudy, "ModalitiesInStudy"); Assert.AreEqual(6, study.NumberOfStudyRelatedSeries, "NumberOfStudyRelatedSeries"); Assert.AreEqual(2101, study.NumberOfStudyRelatedInstances, "NumberOfStudyRelatedInstances"); Assert.AreEqual(time, study.StoreTime, "StoreTime"); Assert.AreEqual(true, study.Reindex, "Reindex"); Assert.AreEqual(time.AddMinutes(100), study.DeleteTime, "DeleteTime"); study.ModalitiesInStudy = @"CT\PT"; context.Commit(); Assert.AreNotEqual(version, study.Version, "Version should have been changed on update"); } using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); var study = broker.GetStudy(oid); Assert.AreEqual("123", study.StudyInstanceUid, "StudyInstanceUid"); Assert.AreEqual("A#", study.AccessionNumber, "AccessionNumber"); Assert.AreEqual("MRN", study.PatientId, "PatientId"); Assert.AreEqual("BOBSON^BOB", study.PatientsName, "PatientsName"); Assert.AreEqual(new DateTime(2014, 07, 01), study.StudyDate, "StudyDate"); Assert.AreEqual("20140701", study.StudyDateRaw, "StudyDateRaw"); Assert.AreEqual("1234", study.StudyId, "StudyId"); Assert.AreEqual("DESU", study.StudyDescription, "StudyDescription"); Assert.AreEqual(@"CT\PT", study.ModalitiesInStudy, "ModalitiesInStudy"); Assert.AreEqual(6, study.NumberOfStudyRelatedSeries, "NumberOfStudyRelatedSeries"); Assert.AreEqual(2101, study.NumberOfStudyRelatedInstances, "NumberOfStudyRelatedInstances"); Assert.AreEqual(time, study.StoreTime, "StoreTime"); Assert.AreEqual(true, study.Reindex, "Reindex"); Assert.AreEqual(time.AddMinutes(100), study.DeleteTime, "DeleteTime"); } }
public void TestGetStudies() { DeleteAllStudies(); long oid123, oid456, oid789, oidBlank; using (var context = new DataAccessContext()) { Study study123, study456, study789, studyBlank; var broker = context.GetStudyBroker(); broker.AddStudy(study123 = CreateStudy("12.3", "A123")); broker.AddStudy(study456 = CreateStudy("45.6", "A456", deleted : true)); broker.AddStudy(study789 = CreateStudy("78.9", "A789")); broker.AddStudy(studyBlank = CreateStudy("", "A")); context.Commit(); oid123 = study123.Oid; oid456 = study456.Oid; oid789 = study789.Oid; oidBlank = studyBlank.Oid; } using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); var studies = broker.GetStudies(); Assert.AreEqual(new[] {oid123, oid456, oid789, oidBlank}.OrderBy(x => x), studies.Select(x => x.Oid).OrderBy(x => x)); } }
public DataRepository(DataAccessContext context, IMapper mapper) : base(context, mapper) { _context = context; _mapper = mapper; }
/// <inheritdoc/> public IDataAccessCredentials GetCredentialsIfExists(DataAccessContext context) { return(_selfCertifyingDataAccessPoint.GetCredentialsIfExists(context)); }
public void TestGetWorkItemUidsForWorkItem() { DeleteAllWorkItemUids(); long workItemOidA, workItemOidB, workItemOidC, workItemOidD; using (var context = new DataAccessContext()) { WorkItem workItemA, workItemB, workItemC, workItemD; var workItemBroker = context.GetWorkItemBroker(); workItemBroker.AddWorkItem(workItemA = CreateWorkItem("A")); workItemBroker.AddWorkItem(workItemB = CreateWorkItem("B")); workItemBroker.AddWorkItem(workItemC = CreateWorkItem("C")); workItemBroker.AddWorkItem(workItemD = CreateWorkItem("D")); var broker = context.GetWorkItemUidBroker(); broker.AddWorkItemUid(CreateWorkItemUid(workItemA, "file1", "series1", "sop1")); broker.AddWorkItemUid(CreateWorkItemUid(workItemA, "file4", "series2", "sop4")); broker.AddWorkItemUid(CreateWorkItemUid(workItemB, "file6", "series4", "sop6")); broker.AddWorkItemUid(CreateWorkItemUid(workItemA, "file3", "series2", "sop3")); broker.AddWorkItemUid(CreateWorkItemUid(workItemA, "file2", "series1", "sop2")); broker.AddWorkItemUid(CreateWorkItemUid(workItemB, "file5", "series3", "sop5")); context.Commit(); workItemOidA = workItemA.Oid; workItemOidB = workItemB.Oid; workItemOidC = workItemC.Oid; workItemOidD = workItemD.Oid; } using (var context = new DataAccessContext()) { var workItemBroker = context.GetWorkItemBroker(); workItemBroker.Delete(workItemBroker.GetWorkItem(workItemOidD)); context.Commit(); } using (var context = new DataAccessContext()) { var broker = context.GetWorkItemUidBroker(); var listA = broker.GetWorkItemUidsForWorkItem(workItemOidA).OrderBy(x => x.File).ToList(); var listB = broker.GetWorkItemUidsForWorkItem(workItemOidB).OrderBy(x => x.File).ToList(); var listC = broker.GetWorkItemUidsForWorkItem(workItemOidC); var listD = broker.GetWorkItemUidsForWorkItem(workItemOidD); Assert.AreEqual(4, listA.Count, "Unexpected number of results for work item A"); Assert.AreEqual("file1", listA[0].File, "Unexpected result for work item A"); Assert.AreEqual("file2", listA[1].File, "Unexpected result for work item A"); Assert.AreEqual("file3", listA[2].File, "Unexpected result for work item A"); Assert.AreEqual("file4", listA[3].File, "Unexpected result for work item A"); Assert.AreEqual(2, listB.Count, "Unexpected number of results for work item B"); Assert.AreEqual("file5", listB[0].File, "Unexpected result for work item A"); Assert.AreEqual("file6", listB[1].File, "Unexpected result for work item A"); Assert.AreEqual(0, listC.Count, "Unexpected results for work item C"); Assert.AreEqual(0, listD.Count, "Unexpected results for work item D"); } }
/// <inheritdoc/> public bool DiscoverExistence(DataAccessContext context, out string reason) { return(_selfCertifyingDataAccessPoint.DiscoverExistence(context, out reason)); }
private static void DeleteAllWorkItemUids() { using (var context = new DataAccessContext()) { var workItemUidBroker = context.GetWorkItemUidBroker(); workItemUidBroker.DeleteAll(); var workItemBroker = context.GetWorkItemBroker(); workItemBroker.DeleteAll(); context.Commit(); } }
public ProjectsService(IConfiguration configuration, DataAccessContext context) { Configuration = configuration; Context = context; }
public OrderDetailsService(DataAccessContext c) { db = c; }
public CanWriteResult CanWrite(object target, object value, DataAccessContext context) { return(CanWriteResult.PositiveResult(true)); }
/// <inheritdoc/> public DiscoveredServer GetDistinctLiveDatabaseServer(DataAccessContext context, bool setInitialDatabase) { return(DataAccessPortal.GetInstance().ExpectDistinctServer(GetTableInfosIdeallyJustFromMainTables(), context, setInitialDatabase)); }
public void Open() { try { if (!Enabled) { return; } int numberOfSelectedStudies = Context.SelectedStudies.Count; if (Context.SelectedStudies.Count == 0) { return; } int numberOfLoadableStudies = GetNumberOfLoadableStudies(); if (numberOfLoadableStudies != numberOfSelectedStudies) { int numberOfNonLoadableStudies = numberOfSelectedStudies - numberOfLoadableStudies; string message; if (numberOfSelectedStudies == 1) { message = SR.MessageCannotOpenNonStreamingStudy; } else { if (numberOfNonLoadableStudies == 1) { message = SR.MessageOneNonStreamingStudyCannotBeOpened; } else { message = String.Format(SR.MessageFormatXNonStreamingStudiesCannotBeOpened, numberOfNonLoadableStudies); } } Context.DesktopWindow.ShowMessageBox(message, MessageBoxActions.Ok); return; } UIStudyTree tree = new UIStudyTree(); foreach (var item in Context.SelectedStudies) { if (item.Server.IsLocal) { using (var context = new DataAccessContext()) { IStudy study = context.GetStudyBroker().GetStudy(item.StudyInstanceUid); if (study != null) { tree.AddStudy(study); } } } } if (this.mediaIShelf != null) { this.mediaIShelf.Activate(); component.Tree = tree.Tree; } else { if (base.Context.DesktopWindow == null) { return; } component = new MediaWriterComponent(); this.mediaIShelf = ApplicationComponent.LaunchAsShelf(base.Context.DesktopWindow, component, "Media Writer", ShelfDisplayHint.DockAutoHide | ShelfDisplayHint.DockLeft); this.mediaIShelf.Closed += new EventHandler <ClosedEventArgs>(this.ShelfClose); this.mediaIShelf.Activate(); component.Tree = tree.Tree; } } catch (Exception exception) { ExceptionHandler.Report(exception, base.Context.DesktopWindow); } }
public override void Load() { Kernel.Bind <DbContext, DataAccessContext>().ToMethod(activationContext => DataAccessContext.CreateContext()).InRequestScope(); Kernel.Bind <IDataBaseManager>().To <DataBaseManager>(); Kernel.Bind <ApplicationUserManager>().ToSelf(); Kernel.Bind <AuthenticationConfiguration>().ToSelf(); Kernel.Bind <IOAuthAuthorizationServerProvider>().To <ApplicationOAuthProvider>(); Kernel.Bind <IAuthenticationTokenProvider>().To <RefreshTokenProvider>(); Kernel.Bind <IIdentityTokenPropertiesFormater <User, Guid> >().To <ApplicationPropertiesFormater>(); Kernel.Bind <IUserStore <User, Guid> >().To <UserStore <User, Role, Guid, UserLogin, UserRole, Claim> >(); Kernel.Bind <IRoleDefinitionProvider>().To <RoleDefinitionProvider>(); Kernel.Bind <IAuthClientRepository>().To <AuthClientRepository>(); Kernel.Bind <IUserRepositoryResolver>().To <UserRepositoryResolver>(); Kernel.Bind <IUserRepository>().To <UserRepository>(); Kernel.Bind <IRoleRepositoryResolver>().To <RoleRepositoryResolver>(); Kernel.Bind <IRoleRepository>().To <RoleRepository>(); Kernel.Bind <IApplicationLogger>().ToMethod(context => { var targetType = context.Request.Target.Type; return(new Logger(targetType)); }); #region Kendo Grid #region Sorting Kernel.Bind(typeof(IDynamicSortingService <>)).To(typeof(DynamicSortingService <>)); Kernel.Bind(typeof(IPropertyOrderExpressionBuilderLocator <>)).To(typeof(PropertyOrderExpressionBuilderLocator <>)); Kernel.Bind(typeof(IPlainPropertyOrderExpressionBuilder <>)).To(typeof(PlainPropertyOrderExpressionBuilder <>)); #endregion #region Filtering Kernel.Bind(typeof(IFilterExpressionBuilder <>)).To(typeof(FilterExpressionBuilder <>)); Kernel.Bind <IOwnPropertyAccessStrategy>().To <OwnPropertyAccessStrategy>(); Kernel.Bind <INavigationPropertyAccessStrategy>().To <NavigationPropertyAccessStrategy>(); Kernel.Bind <IPropertyAccessDecorator>().To <DateTimePropertyAccessDecorator>(); Kernel.Bind <IPropertyAccessStrategyChainBuilder>().To <PropertyAccessStrategyChainBuilder>(); Kernel.Bind <IValueTypeResolver>().To <EnumValueTypeResolver>(); Kernel.Bind <IPrimitiveTypeOperatorBindingFactory>().To <PrimitiveTypeOperatorBindingFactory>(); Kernel.Bind <IStringOperatorBindingFactory>().To <StringOperatorBindingFactory>(); Kernel.Bind <IFilterUnionOperatorBindingFactory>().To <FilterUnionOperatorBindingFactory>(); Kernel.Bind <IValueExpressionService>().To <ValueExpressionService>(); Kernel.Bind <IOperatorExpressionFactoryService>().To <OperatorExpressionFactoryService>(); Kernel.Bind <IFilterUnionExpressionFactoryService>().To <FilterUnionExpressionFactoryService>(); #endregion #endregion }
public InventoryController(DataAccessContext context) : base(context) { _context = context; }
public ReadResult Read(object source, DataAccessContext context) { return(!(source is string url) ? ReadResult.NegativeResult(DateTime.UtcNow) : ReadResult.PositiveResult(string.Format(this.Format, url), DateTime.UtcNow)); }
public override StudyItemList Query(QueryParameters queryParams, IApplicationEntity server) { Platform.CheckForNullReference(queryParams, "queryParams"); //.NET strings are unicode, therefore, so is all the query data. const string utf8 = "ISO_IR 192"; var collection = new DicomAttributeCollection { SpecificCharacterSet = utf8 }; collection[DicomTags.SpecificCharacterSet].SetStringValue(utf8); collection[DicomTags.QueryRetrieveLevel].SetStringValue("STUDY"); collection[DicomTags.PatientId].SetStringValue(queryParams["PatientId"]); collection[DicomTags.AccessionNumber].SetStringValue(queryParams["AccessionNumber"]); collection[DicomTags.PatientsName].SetStringValue(queryParams["PatientsName"]); collection[DicomTags.ReferringPhysiciansName].SetStringValue(queryParams["ReferringPhysiciansName"]); collection[DicomTags.StudyDate].SetStringValue(queryParams["StudyDate"]); collection[DicomTags.StudyTime].SetStringValue(""); collection[DicomTags.StudyDescription].SetStringValue(queryParams["StudyDescription"]); collection[DicomTags.PatientsBirthDate].SetStringValue(""); collection[DicomTags.ModalitiesInStudy].SetStringValue(queryParams["ModalitiesInStudy"]); collection[DicomTags.StudyInstanceUid].SetStringValue(queryParams["StudyInstanceUid"]); collection[DicomTags.NumberOfStudyRelatedInstances].SetStringValue(""); collection[DicomTags.InstanceAvailability].SetEmptyValue(); // must not be included in request collection[DicomTags.PatientSpeciesDescription].SetStringValue(GetString(queryParams, "PatientSpeciesDescription")); var codeValue = GetString(queryParams, "PatientSpeciesCodeSequenceCodeValue"); var codeMeaning = GetString(queryParams, "PatientSpeciesCodeSequenceCodeMeaning"); if (codeValue != null || codeMeaning != null) { var codeSequenceMacro = new CodeSequenceMacro { CodingSchemeDesignator = "", CodeValue = codeValue, CodeMeaning = codeMeaning }; collection[DicomTags.PatientSpeciesCodeSequence].AddSequenceItem(codeSequenceMacro.DicomSequenceItem); } collection[DicomTags.PatientBreedDescription].SetStringValue(GetString(queryParams, "PatientBreedDescription")); codeValue = GetString(queryParams, "PatientBreedCodeSequenceCodeValue"); codeMeaning = GetString(queryParams, "PatientBreedCodeSequenceCodeMeaning"); if (codeValue != null || codeMeaning != null) { var codeSequenceMacro = new CodeSequenceMacro { CodingSchemeDesignator = "", CodeValue = codeValue, CodeMeaning = codeMeaning }; collection[DicomTags.PatientBreedCodeSequence].AddSequenceItem(codeSequenceMacro.DicomSequenceItem); } collection[DicomTags.ResponsiblePerson].SetStringValue(GetString(queryParams, "ResponsiblePerson")); collection[DicomTags.ResponsiblePersonRole].SetStringValue(""); collection[DicomTags.ResponsibleOrganization].SetStringValue(GetString(queryParams, "ResponsibleOrganization")); var localServer = ServerDirectory.GetLocalServer(); var studyItemList = new StudyItemList(); using (var context = new DataAccessContext()) { foreach (DicomAttributeCollection result in context.GetStudyStoreQuery().Query(collection)) { var item = new StudyItem(result[DicomTags.StudyInstanceUid].ToString(), localServer); item.SpecificCharacterSet = result.SpecificCharacterSet; item.PatientId = result[DicomTags.PatientId].ToString(); item.PatientsName = new PersonName(result[DicomTags.PatientsName].ToString()); item.ReferringPhysiciansName = new PersonName(result[DicomTags.ReferringPhysiciansName].GetString(0, "")); item.PatientsBirthDate = result[DicomTags.PatientsBirthDate].ToString(); item.StudyDate = result[DicomTags.StudyDate].ToString(); item.StudyTime = result[DicomTags.StudyTime].ToString(); item.StudyDescription = result[DicomTags.StudyDescription].ToString(); item.ModalitiesInStudy = DicomStringHelper.GetStringArray(result[DicomTags.ModalitiesInStudy].ToString()); item.AccessionNumber = result[DicomTags.AccessionNumber].ToString(); item.NumberOfStudyRelatedInstances = result[DicomTags.NumberOfStudyRelatedInstances].GetInt32(0, 0); item.InstanceAvailability = result[DicomTags.InstanceAvailability].GetString(0, ""); if (String.IsNullOrEmpty(item.InstanceAvailability)) { item.InstanceAvailability = "ONLINE"; } item.PatientSpeciesDescription = result[DicomTags.PatientSpeciesDescription].GetString(0, ""); var patientSpeciesCodeSequence = result[DicomTags.PatientSpeciesCodeSequence]; if (!patientSpeciesCodeSequence.IsNull && patientSpeciesCodeSequence.Count > 0) { var codeSequenceMacro = new CodeSequenceMacro(((DicomSequenceItem[])result[DicomTags.PatientSpeciesCodeSequence].Values)[0]); item.PatientSpeciesCodeSequenceCodingSchemeDesignator = codeSequenceMacro.CodingSchemeDesignator; item.PatientSpeciesCodeSequenceCodeValue = codeSequenceMacro.CodeValue; item.PatientSpeciesCodeSequenceCodeMeaning = codeSequenceMacro.CodeMeaning; } item.PatientBreedDescription = result[DicomTags.PatientBreedDescription].GetString(0, ""); var patientBreedCodeSequence = result[DicomTags.PatientBreedCodeSequence]; if (!patientBreedCodeSequence.IsNull && patientBreedCodeSequence.Count > 0) { var codeSequenceMacro = new CodeSequenceMacro(((DicomSequenceItem[])result[DicomTags.PatientBreedCodeSequence].Values)[0]); item.PatientBreedCodeSequenceCodingSchemeDesignator = codeSequenceMacro.CodingSchemeDesignator; item.PatientBreedCodeSequenceCodeValue = codeSequenceMacro.CodeValue; item.PatientBreedCodeSequenceCodeMeaning = codeSequenceMacro.CodeMeaning; } item.ResponsiblePerson = new PersonName(result[DicomTags.ResponsiblePerson].GetString(0, "")); item.ResponsiblePersonRole = result[DicomTags.ResponsiblePersonRole].GetString(0, ""); item.ResponsibleOrganization = result[DicomTags.ResponsibleOrganization].GetString(0, ""); studyItemList.Add(item); } } AuditHelper.LogQueryIssued(null, null, EventSource.CurrentUser, EventResult.Success, SopClass.StudyRootQueryRetrieveInformationModelFindUid, collection); return(studyItemList); }
private static void DeleteAllStudies() { using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); broker.DeleteAll(); context.Commit(); } }
/// <summary> /// Execute command /// </summary> /// <param name="server">Database server</param> /// <param name="executionOptions">Execution options</param> /// <param name="commands">Commands</param> /// <returns>Return the affected data numbers</returns> public async Task <int> ExecuteAsync(DatabaseServer server, CommandExecutionOptions executionOptions, IEnumerable <ICommand> commands) { #region group execution commands IQueryTranslator translator = PostgreSqlManager.GetQueryTranslator(DataAccessContext.Create(server)); List <DatabaseExecutionCommand> databaseExecutionCommands = new List <DatabaseExecutionCommand>(); var batchExecutionConfig = DataManager.GetBatchExecutionConfiguration(server.ServerType) ?? BatchExecutionConfiguration.Default; var groupStatementsCount = batchExecutionConfig.GroupStatementsCount; groupStatementsCount = groupStatementsCount < 0 ? 1 : groupStatementsCount; var groupParameterCount = batchExecutionConfig.GroupParametersCount; groupParameterCount = groupParameterCount < 0 ? 1 : groupParameterCount; StringBuilder commandTextBuilder = new StringBuilder(); CommandParameters parameters = null; int statementsCount = 0; bool forceReturnValue = false; int cmdCount = 0; DatabaseExecutionCommand GetGroupExecuteCommand() { var executionCommand = new DatabaseExecutionCommand() { CommandText = commandTextBuilder.ToString(), CommandType = CommandType.Text, MustAffectedData = forceReturnValue, Parameters = parameters }; statementsCount = 0; translator.ParameterSequence = 0; commandTextBuilder.Clear(); parameters = null; forceReturnValue = false; return(executionCommand); } foreach (var cmd in commands) { DatabaseExecutionCommand databaseExecutionCommand = GetDatabaseExecutionCommand(translator, cmd as DefaultCommand); if (databaseExecutionCommand == null) { continue; } //Trace log PostgreSqlManager.LogExecutionCommand(databaseExecutionCommand); cmdCount++; if (databaseExecutionCommand.PerformAlone) { if (statementsCount > 0) { databaseExecutionCommands.Add(GetGroupExecuteCommand()); } databaseExecutionCommands.Add(databaseExecutionCommand); continue; } commandTextBuilder.AppendLine(databaseExecutionCommand.CommandText); parameters = parameters == null ? databaseExecutionCommand.Parameters : parameters.Union(databaseExecutionCommand.Parameters); forceReturnValue |= databaseExecutionCommand.MustAffectedData; statementsCount++; if (translator.ParameterSequence >= groupParameterCount || statementsCount >= groupStatementsCount) { databaseExecutionCommands.Add(GetGroupExecuteCommand()); } } if (statementsCount > 0) { databaseExecutionCommands.Add(GetGroupExecuteCommand()); } #endregion return(await ExecuteDatabaseCommandAsync(server, executionOptions, databaseExecutionCommands, executionOptions?.ExecutionByTransaction ?? cmdCount > 1).ConfigureAwait(false)); }
public CidadeController() { objContext = new DataAccessContext(); }
/// <summary> /// Called on startup to reset InProgress WorkItems back to Pending. /// </summary> private void ResetInProgressWorkItems() { bool reindexInProgress = false; using (var context = new DataAccessContext(DataAccessContext.WorkItemMutex)) { var workItemBroker = context.GetWorkItemBroker(); var list = workItemBroker.GetWorkItems(null, WorkItemStatusEnum.InProgress, null); foreach (var item in list) { item.Status = WorkItemStatusEnum.Pending; if (item.Type.Equals(ReindexRequest.WorkItemTypeString)) { reindexInProgress = true; } } context.Commit(); } using (var context = new DataAccessContext(DataAccessContext.WorkItemMutex)) { var workItemBroker = context.GetWorkItemBroker(); var list = workItemBroker.GetWorkItems(null, WorkItemStatusEnum.DeleteInProgress, null); foreach (var item in list) { item.Status = WorkItemStatusEnum.Deleted; } context.Commit(); } using (var context = new DataAccessContext(DataAccessContext.WorkItemMutex)) { var workItemBroker = context.GetWorkItemBroker(); var list = workItemBroker.GetWorkItems(null, WorkItemStatusEnum.Canceling, null); foreach (var item in list) { item.Status = WorkItemStatusEnum.Canceled; if (item.Type.Equals(ReindexRequest.WorkItemTypeString)) { reindexInProgress = true; } } context.Commit(); } if (reindexInProgress) { using (var context = new DataAccessContext(DataAccessContext.WorkItemMutex)) { var studyBroker = context.GetStudyBroker(); var studyList = studyBroker.GetReindexStudies(); foreach (var item in studyList) { item.Reindex = false; } context.Commit(); } } }
/// <summary> /// Creates a new collection of <see cref="IDataAccessPoint"/> for collecting dependencies e.g. /// when building a query in which there are subqueries run on different databases /// </summary> /// <param name="singleServer">True to require all <see cref="Points"/> to be on the same server (and type).</param> /// <param name="context"></param> public DataAccessPointCollection(bool singleServer, DataAccessContext context = DataAccessContext.InternalDataProcessing) { SingleServer = singleServer; DataAccessContext = context; }
public IDataAccessCredentials GetCredentialsIfExists(DataAccessContext context) { //we have our own credentials if we do return(string.IsNullOrWhiteSpace(Username) ? null : this); }
public DataContext(DataAccessContext context) { this.context = context; }
public DetalleInventario(DataAccessContext context) { _context = context; }
public HygieneController(DataAccessContext context) : base(context) { _context = context; }
protected void Page_Load(object sender, EventArgs e) { SetUpGridSupportControls(); DataAccessContext.SetStoreRetriever(new StoreRetriever(SelectedStoreID)); uxPromotionProductDetails.BubbleEvent += new EventHandler(CheckAll_RefreshHandler); }
public ErrorCodeRepository(DataAccessContext context) : base(context) { }
/// <summary> /// Cleanup any failed items in the queue and delete the queue entry. /// </summary> public override void Delete() { LoadUids(); var studyXml = Location.LoadStudyXml(); foreach (WorkItemUid sop in WorkQueueUidList) { var defaultFilePath = String.IsNullOrEmpty(sop.File); var file = GetFilePath(sop); if (sop.Failed || !sop.Complete) { if (!defaultFilePath) { try { FileUtils.Delete(file); } catch (Exception e) { Platform.Log(LogLevel.Error, e, "Unexpected exception attempting to cleanup file for Work Item {0}", Proxy.Item.Oid); } } else { try { // Only delete the file if its not in the study Xml file. This should handle collisions with // multiple WorkItems that may have been canceled when others succeeded. if (!studyXml.Contains(sop.SeriesInstanceUid, sop.SopInstanceUid)) { FileUtils.Delete(file); } } catch (Exception e) { Platform.Log(LogLevel.Error, e, "Unexpected exception attempting to cleanup file for Work Item {0}", Proxy.Item.Oid); } } } } try { DirectoryUtility.DeleteIfEmpty(Location.StudyFolder); } catch (Exception e) { Platform.Log(LogLevel.Error, e, "Unexpected exception attempting to delete folder: {0}", Location.StudyFolder); } // Now cleanup the actual WorkItemUid references using (var context = new DataAccessContext(DataAccessContext.WorkItemMutex)) { var broker = context.GetWorkItemUidBroker(); var uidBroker = context.GetWorkItemUidBroker(); var list = broker.GetWorkItemUidsForWorkItem(Proxy.Item.Oid); foreach (WorkItemUid sop in list) { uidBroker.Delete(sop); } context.Commit(); } Proxy.Delete(); }
public void TestGetStudyByUid() { DeleteAllStudies(); using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); broker.AddStudy(CreateStudy("12.3", "A123")); broker.AddStudy(CreateStudy("45.6", "A456", deleted : true)); broker.AddStudy(CreateStudy("78.9", "A789")); broker.AddStudy(CreateStudy("", "A")); context.Commit(); } using (var context = new DataAccessContext()) { var broker = context.GetStudyBroker(); var study456 = broker.GetStudy("45.6"); var study123 = broker.GetStudy("12.3"); var study120 = broker.GetStudy("12.0"); var study890 = broker.GetStudy("89.0"); var studyBlank = broker.GetStudy(""); Assert.IsNotNull(study456); Assert.AreEqual(study456.StudyInstanceUid, "45.6"); Assert.AreEqual(study456.AccessionNumber, "A456"); Assert.IsNotNull(study123); Assert.AreEqual(study123.StudyInstanceUid, "12.3"); Assert.AreEqual(study123.AccessionNumber, "A123"); Assert.IsNull(study120); Assert.IsNull(study890); Assert.IsNotNull(studyBlank); Assert.AreEqual(studyBlank.StudyInstanceUid, ""); Assert.AreEqual(studyBlank.AccessionNumber, "A"); } }