static void Main(string[] args) { StatsDisplayOptions options = null; IssueDisplayOptions issueOptions = null; Parser.Default.ParseArguments <StatsDisplayOptions, IssueDisplayOptions>(args).WithParsed <StatsDisplayOptions>(opts => options = opts).WithParsed <IssueDisplayOptions>(opts => issueOptions = opts); if (options != null) { Console.WriteLine($"Closed Work Item States : {options.ClosedStateClause}"); Console.WriteLine($"Work Item Kinds : {options.WorkItemKindClause}"); Console.WriteLine($"Start Date : {options.StartDate.ToShortDateString()}"); var bc = new TFSBugCounter(options); bc.Connect(); if (bc.Connected) { DateTime countDate = options.StartDate.Date; bc.CountAllOpenItemsAtDate(DateTime.Now); bc.FindAllItemsNewerThan(countDate); bc.GenerateStatistics(countDate, options.OutputFilePath); } } else if (issueOptions != null) { Console.WriteLine($"State Transitions for Issue {issueOptions.WorkItemId}"); var bc = new TFSBugCounter(issueOptions); bc.Connect(); bc.DisplayStateTransitions(issueOptions.WorkItemId); } }
public TFSBugCounter(StatsDisplayOptions options) { //_options = options; ClosedStates = options.ClosedStates; WorkItemKinds = options.WorkItemKinds; OutputFilePath = options.OutputFilePath.Trim(); _tfsServerUrl = options.TFSServer; _tfsProject = options.TFSProject; Connected = false; }