public void UpdateWorkingOnEstimates() { // The work item must be open prior to sync. if (!WorkItem.IsOpen) { WorkItem.Open(); } WorkItem.SyncToLatest(); WorkingItemConfiguration workingItemConfiguration = LoadWorkItemConfiguration(); if (!string.IsNullOrEmpty(workingItemConfiguration.DurationField)) { if (WorkItem.Fields[workingItemConfiguration.DurationField].Value != null) { _estimates.Duration = (double)WorkItem.Fields[workingItemConfiguration.DurationField].Value; } } if (!string.IsNullOrEmpty(workingItemConfiguration.ElapsedField)) { if (WorkItem.Fields[workingItemConfiguration.ElapsedField].Value != null) { _estimates.ElapsedTime = (double)WorkItem.Fields[workingItemConfiguration.ElapsedField].Value; } } if (!string.IsNullOrEmpty(workingItemConfiguration.RemainingField)) { if (WorkItem.Fields[workingItemConfiguration.RemainingField].Value != null) { _estimates.RemainingTime = (double)WorkItem.Fields[workingItemConfiguration.RemainingField].Value; } } }
private WorkingItemConfiguration LoadWorkItemConfiguration() { WorkingItemConfiguration workingItemConfiguration = new WorkingItemConfiguration(); workingItemConfiguration.SelectedWorkItemType = WorkItem.Type; workingItemConfiguration.Load(); return(workingItemConfiguration); }
private WorkingItemConfiguration LoadWorkItemConfiguration() { WorkingItemConfiguration workingItemConfiguration = new WorkingItemConfiguration(); workingItemConfiguration.SelectedWorkItemType = WorkItem.Type; var fields = WorkItem.Fields.OfType <Field>().Select(f => new { f.Name, f.Value }).OrderBy(f => f.Name).ToList(); workingItemConfiguration.Load(); return(workingItemConfiguration); }
private void OpenFile(string filePath) { if (File.Exists(filePath)) { using (FileStream fs = new FileStream(filePath, FileMode.Open)) { XmlSerializer xs = new XmlSerializerFactory().CreateSerializer(this.GetType()); WorkingItemConfiguration wic = xs.Deserialize(fs) as WorkingItemConfiguration; if (wic != null) { this.DurationField = wic.DurationField; this.RemainingField = wic.RemainingField; this.ElapsedField = wic.ElapsedField; } } } else { this.DurationField = this.RemainingField = this.ElapsedField = string.Empty; } }
private void OpenFile(string filePath) { if (File.Exists(filePath)) { using (FileStream fs = new FileStream(filePath, FileMode.Open)) { XmlSerializer xs = new XmlSerializerFactory().CreateSerializer(this.GetType()); WorkingItemConfiguration wic = xs.Deserialize(fs) as WorkingItemConfiguration; if (wic != null) { this.DurationField = wic.DurationField; this.RemainingField = wic.RemainingField; this.ElapsedField = wic.ElapsedField; } } } else { DurationField = "Microsoft.VSTS.Scheduling.OriginalEstimate"; RemainingField = "Microsoft.VSTS.Scheduling.RemainingWork"; ElapsedField = "Microsoft.VSTS.Scheduling.CompletedWork"; //this.DurationField = this.RemainingField = this.ElapsedField = string.Empty; } }
public void UpdateWorkItem(bool save) { WorkItem.SyncToLatest(); WorkingItemConfiguration workingItemConfiguration = LoadWorkItemConfiguration(); if (!string.IsNullOrEmpty(workingItemConfiguration.DurationField)) { WorkItem.Fields[workingItemConfiguration.DurationField].Value = _estimates.Duration; } if (!string.IsNullOrEmpty(workingItemConfiguration.ElapsedField)) { WorkItem.Fields[workingItemConfiguration.ElapsedField].Value = _estimates.ElapsedTime; } if (!string.IsNullOrEmpty(workingItemConfiguration.RemainingField)) { WorkItem.Fields[workingItemConfiguration.RemainingField].Value = _estimates.RemainingTime; } if (save && WorkItem.IsDirty) { WorkItem.Save(); } }