private async Task SetWorkItemDetails(WorkItem item) { try { if (item.Id != 0) { item = await _tfsService.GetWorkItemDetails(item.Id); if (item.Fields.WorkItemType == WorkItemType.Task) { WorkItemStates = new ObservableCollection <string>(GetEnumMemberValues(typeof(TaskState))); } else { WorkItemStates = new ObservableCollection <string>(GetEnumMemberValues(typeof(PBIState))); } SelectedIteration = Iterations.FirstOrDefault(i => i == item.Fields.Iteration); if (!string.IsNullOrEmpty(item.Fields.AssignedTo)) { SelectedTeamMember = TeamMembers.FirstOrDefault(m => item.Fields.AssignedTo.Contains(m)); } SelectedState = WorkItemStates.FirstOrDefault(s => s == item.Fields.State); } else { WorkItemTypes = new ObservableCollection <string>(GetEnumMemberValues(typeof(WorkItemType))); } WorkItem = item; } catch (ServiceException e) { HandleServiceException(e); } finally { IsBusy = false; } }
// The actual purpose of this method is only to force the ItemStatus property to re-evaluate // (and send a PropertyUpdated notification if appropriate). void ForceItemStatusEvaluation(WorkItemStates itemStatus) { Planner.Instance.WriteToEventLog("WorkItem status updated: " + itemStatus.ToString()); }