protected void InsertRequest(WorkItemRequest request, WorkItemProgress progress) { WorkItemInsertResponse response = null; // Used for auditing purposes in the ShredHostService. if (string.IsNullOrEmpty(request.UserName)) { request.UserName = GetUserName(); } Request = request; Platform.GetService <IWorkItemService>( s => response = s.Insert(new WorkItemInsertRequest { Request = request, Progress = progress })); // TODO (CR Jun 2012): The passed-in WorkItem contract should not be updated; // it should be done by the service and a new instance returned, or something should be returned by this // method to let the caller decide what to do. if (response.Item == null) { WorkItem.Status = WorkItemStatusEnum.Deleted; } else { WorkItem = response.Item; } }
public static string SerializeWorkItemProgress(WorkItemProgress data) { return(JsmlSerializer.Serialize(data, "data", new JsmlSerializer.SerializeOptions { Hook = _workItemProgressHook, DataContractTest = IsWorkItemProgressContract })); }
public void Test_RefreshWorkItemStatus_UntilFail() { DummyLogger mockedLogger = new DummyLogger(); WorkItemQueue queue = new WorkItemQueue(10, mockedLogger); WorkItemProgress progress = new WorkItemProgress(); LookupWorkItem workItem = new LookupWorkItem(progress); progress.Progress = Progress.NotStarted; queue.AddWorkItem(workItem); Assert.AreEqual(1, queue.PendingItemsNum); Assert.AreEqual(1, mockedLogger.AddLogged); queue.Refresh(); Assert.AreEqual(Progress.Running, progress.Progress); Assert.AreEqual(0, queue.PendingItemsNum); Assert.AreEqual(1, queue.ActiveItemsNum); Assert.AreEqual(1, queue.RunningItemsNum); queue.Refresh(); queue.Refresh(); Assert.AreEqual(0, queue.PendingItemsNum); Assert.AreEqual(1, queue.ActiveItemsNum); Assert.AreEqual(1, queue.RunningItemsNum); Assert.AreEqual(0, mockedLogger.CompletedLogged); progress.Progress = Progress.Failed; queue.Refresh(); Assert.AreEqual(0, queue.ActiveItemsNum); Assert.AreEqual(0, mockedLogger.CompletedLogged); Assert.AreEqual(1, mockedLogger.FailedLogged); }
public ActionResult DeleteConfirmed(int id) { WorkItemProgress workItemProgress = db.WorkItemProgresses.Find(id); db.WorkItemProgresses.Remove(workItemProgress); db.SaveChanges(); return(RedirectToAction("Index")); }
private static IconSet GetProgressIcon(WorkItemProgress progress, WorkItemStatusEnum status) { if (progress == null) { return(null); } return(new ProgressBarIconSet("progress", new Size(80, 10), progress.PercentComplete * 100, ActivityMonitorProgressBar.GetColor(progress, status))); }
/// <summary> /// Method for getting next <see cref="WorkItem"/> entry. /// </summary> /// <param name="count">The count.</param> /// <param name="priority">Search for stat items.</param> /// <remarks> /// </remarks> /// <returns> /// A <see cref="WorkItem"/> entry if found, or else null; /// </returns> private List <WorkItem> InternalGetWorkItems(int count, WorkItemPriorityEnum priority) { _nowRunningWorkItems.Clear(); _postponedWorkItems.Clear(); var itemsToPublish = new List <WorkItemData>(); try { var workItemBroker = _context.GetWorkItemBroker(); List <WorkItem> workItems = workItemBroker.GetWorkItemsForProcessing(count * 4, priority); foreach (var item in workItems) { string reason; if (CanStart(item, out reason)) { item.Status = WorkItemStatusEnum.InProgress; _nowRunningWorkItems.Add(item); } else { Postpone(item); _postponedWorkItems.Add(item); WorkItemProgress progress = item.Progress; if (progress != null) { progress.StatusDetails = reason; item.Progress = progress; itemsToPublish.Add(WorkItemDataHelper.FromWorkItem(item)); } } if (_nowRunningWorkItems.Count >= count) { break; } } _context.Commit(); return(new List <WorkItem>(_nowRunningWorkItems)); } catch (Exception x) { Platform.Log(LogLevel.Warn, x, "Unexpected error querying for {0} {1} priority WorkItems", count, priority.GetDescription()); return(null); } finally { if (itemsToPublish.Count > 0) { WorkItemPublishSubscribeHelper.PublishWorkItemsChanged(WorkItemsChangedEventType.Update, itemsToPublish); } } }
// GET: WorkItemProgresses/Details/5 public ActionResult Details(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } WorkItemProgress workItemProgress = db.WorkItemProgresses.Find(id); if (workItemProgress == null) { return(HttpNotFound()); } return(View(workItemProgress)); }
public static string SerializeWorkItemProgress(WorkItemProgress data) { if (data == null) { return(null); } var sb = new StringBuilder(); using (var sw = XmlWriter.Create(sb)) { _workItemProgressSerializer.WriteObject(sw, data); } return(sb.ToString()); }
public ActionResult Edit([Bind(Include = "Id,CurrentDate,WorkItemId,WorkTeamId,WorkPrice,WorkUnitId,WorkQuantity,MixingStationId,OperatorId,Remark,CreateTime,UpdateTime")] WorkItemProgress workItemProgress) { if (ModelState.IsValid) { db.Entry(workItemProgress).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.MixingStationId = new SelectList(db.ConcreteMixingStations, "Id", "Name", workItemProgress.MixingStationId); ViewBag.OperatorId = new SelectList(db.Users, "Id", "Name", workItemProgress.OperatorId); ViewBag.WorkItemId = new SelectList(db.WorkItems, "Id", "Name", workItemProgress.WorkItemId); ViewBag.WorkTeamId = new SelectList(db.WorkTeams, "Id", "Name", workItemProgress.WorkTeamId); ViewBag.WorkUnitId = new SelectList(db.WorkUnits, "Id", "Name", workItemProgress.WorkUnitId); return(View(workItemProgress)); }
public InsertWorkItemCommand(WorkItemRequest request, WorkItemProgress progress, string studyInstanceUid, string seriesInstanceUid, string sopInstanceUid) : base("Insert a WorkItem") { _request = request; _progress = progress; _studyInstanceUid = studyInstanceUid; ExpirationDelaySeconds = 60; WorkItemUid = new WorkItemUid { Complete = false, FailureCount = 0, SeriesInstanceUid = seriesInstanceUid, SopInstanceUid = sopInstanceUid, Failed = false }; }
// GET: WorkItemProgresses/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } WorkItemProgress workItemProgress = db.WorkItemProgresses.Find(id); if (workItemProgress == null) { return(HttpNotFound()); } ViewBag.MixingStationId = new SelectList(db.ConcreteMixingStations, "Id", "Name", workItemProgress.MixingStationId); ViewBag.OperatorId = new SelectList(db.Users, "Id", "Name", workItemProgress.OperatorId); ViewBag.WorkItemId = new SelectList(db.WorkItems, "Id", "Name", workItemProgress.WorkItemId); ViewBag.WorkTeamId = new SelectList(db.WorkTeams, "Id", "Name", workItemProgress.WorkTeamId); ViewBag.WorkUnitId = new SelectList(db.WorkUnits, "Id", "Name", workItemProgress.WorkUnitId); return(View(workItemProgress)); }
public static ProgressBarColor GetColor(WorkItemProgress progress, WorkItemStatusEnum status) { var hasFailures = progress.PercentFailed > 0; return(_stateMap[status][hasFailures]); }