public static void UpdatePortToUI() { foreach (Node each in NodeList.Values.ToList()) { if (each.Type.Equals("LoadPort")) { List <Job> tmp = new List <Job>(); for (int i = 0; i < 25; i++) { if (each.JobList.ContainsKey((i + 1).ToString())) { Job j; if (each.JobList.TryGetValue((i + 1).ToString(), out j)) { tmp.Add(j); } } else { Job j = new Job(); j.Slot = (i + 1).ToString(); tmp.Add(j); } } JobStateUpdate.UpdatePort(each.Name, tmp); } else if (each.Type.Equals("Aligner") || each.Type.Equals("Robot")) { JobStateUpdate.UpdatePort(each.Name, each.JobList.Values.ToList()); } } }
/// <summary> /// Updates the state. /// </summary> /// <param name="stateUpdate">The state update.</param> /// <exception cref="ArgumentNullException">stateUpdate</exception> public async Task UpdateAsync(JobStateUpdate stateUpdate) { _ = stateUpdate ?? throw new ArgumentNullException(nameof(stateUpdate)); await stateStore.UpdateAsync(stateUpdate).ConfigureAwait(true); var state = await stateStore.FindByIdAsync(stateUpdate.Id).ConfigureAwait(true); await stateCommunication.SendUpdateAsync(state).ConfigureAwait(true); }
/// <summary> /// Updates the state. /// </summary> /// <param name="update">The update.</param> /// <returns> /// True if the job should be aborted; otherwise false. /// </returns> protected async Task <bool> UpdateStateAsync(JobStateUpdate update) { _ = update ?? throw new ArgumentNullException(nameof(update)); var jobState = await GetStateAsync(update.Id).ConfigureAwait(true); await stateManager.UpdateAsync(update).ConfigureAwait(true); var abortJob = jobState.Status != Status.Running && jobState.Status != Status.Resuming && jobState.Status != Status.Queued; return(abortJob); }
private async Task <bool> UpdateProgressAsync(long jobStateId, int total, int results, int error) { Logger.LogDebug($"Updating job progress with job state id {jobStateId}"); var update = new JobStateUpdate { Id = jobStateId, Results = results, Errors = error, Total = total, Progress = $"{results}/{total}", }; return(await UpdateStateAsync(update).ConfigureAwait(true)); }
/// <summary> /// Updates the asynchronous. /// </summary> /// <param name="stateUpdate">The state update.</param> public async Task UpdateAsync(JobStateUpdate stateUpdate) { _ = stateUpdate ?? throw new ArgumentNullException(nameof(stateUpdate)); var jobState = await FindByIdAsync(stateUpdate.Id).ConfigureAwait(true); if (stateUpdate.JobId != null) { jobState.JobId = stateUpdate.JobId; } if (stateUpdate.Results != null) { jobState.Results = stateUpdate.Results.Value; } if (stateUpdate.Errors != null) { jobState.Errors = stateUpdate.Errors.Value; } if (stateUpdate.Details != null) { jobState.Details = stateUpdate.Details; } if (stateUpdate.Progress != null) { jobState.Progress = stateUpdate.Progress; } if (stateUpdate.Total != null) { jobState.Total = stateUpdate.Total.Value; } if (stateUpdate.Status != null && stateUpdate.Status != jobState.Status) { jobState.Status = stateUpdate.Status.Value; switch (stateUpdate.Status) { case Status.Canceled: case Status.Failed: case Status.Succeeded: jobState.CompletionTime = DateTime.UtcNow; break; } } jobState.ModificationTime = DateTime.UtcNow; context.Entry(jobState).State = EntityState.Modified; context.SaveChanges(); }