示例#1
0
        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;
                }
            }
        }
示例#2
0
        private WorkingItemConfiguration LoadWorkItemConfiguration()
        {
            WorkingItemConfiguration workingItemConfiguration = new WorkingItemConfiguration();

            workingItemConfiguration.SelectedWorkItemType = WorkItem.Type;
            workingItemConfiguration.Load();
            return(workingItemConfiguration);
        }
示例#3
0
        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;
     }
 }
示例#5
0
 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;
     }
 }
示例#6
0
        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();
            }
        }