private async Task RefreshExecutionStatus() { var state = await Task.Run(() => manager.GetExperimentJobState(new[] { id })); executionStatus = (ExperimentExecutionStateVM)state[0]; NotifyPropertyChanged("ExecutionStatus"); }
private async void RefreshItemsAsync() { var handle = ui.StartIndicateLongOperation("Loading table of experiments..."); try { var exp = await Task.Run(() => manager.FindExperiments()); allExperiments = exp.Select(e => new ExperimentStatusViewModel(e, manager, ui)).ToArray(); Items = FilterExperiments(allExperiments, keyword); } catch (Exception ex) { ui.ShowError(ex, "Failed to load experiments list"); } finally { ui.StopIndicateLongOperation(handle); } List <ExperimentStatusViewModel> items = new List <ExperimentStatusViewModel>(); try { var now = DateTime.Now; foreach (var vm in allExperiments) { if (now.Subtract(vm.Submitted).TotalDays > 7) { break; } vm.JobStatus = ExperimentExecutionStateVM.Loading; items.Add(vm); } var states = await Task.Run(() => manager.GetExperimentJobState(items.Select(item => item.ID))); int n = Math.Min(states.Length, items.Count); for (int i = 0; i < n; i++) { items[i].JobStatus = (ExperimentExecutionStateVM)states[i]; } } catch (Exception ex) { Trace.WriteLine("Failed to get status of jobs: " + ex); foreach (var item in items) { item.JobStatus = null; } } }
public async Task UpdateJobStatus() { var state = await Task.Run(() => manager.GetExperimentJobState(new[] { status.ID })); JobStatus = (ExperimentExecutionStateVM)state[0]; }