static int Main(string[] args) { ProgramSettings settings = null; J.JiraClient jc = null; if (!ProgramSettings.TryGetProgramSettings(out settings)) { Console.WriteLine( "No config found; created one.\n" + ProgramSettings.CheckConfigMessage); return(-1); } else { Console.WriteLine("Querying Jira based on settings from config file.\n" + ProgramSettings.CheckConfigMessage); } Console.WriteLine(); try { jc = new J.JiraClient(settings.ServerUrl, settings.Username, settings.Password); var result = jc.SearchIssues(settings.BaseJQL) .SelectMany(x => x.GetWorklogs().Select(y => new { Issue = x, Log = y })) .GroupBy(x => new { Issue = x.Issue.Key, Author = x.Log.Author.Name, Date = x.Log.Started.Date }) .OrderBy(x => x.Key.Author) .ThenBy(x => x.Key.Date) .ThenBy(x => x.Key.Issue) .Select(x => new { x.Key.Author, x.Key.Date, x.Key.Issue, HoursSpent = x.Sum(l => l.Log.TimeSpentSeconds) / 3600.0 }); var output1 = result .Select(x => string.Join("\t", x.Author, x.Date.ToShortDateString(), x.Issue, x.HoursSpent)); Console.WriteLine(String.Join("\n", output1)); Console.WriteLine(); Console.WriteLine(); var result2 = result .GroupBy(x => new { x.Author, x.Date }) .Select(x => new { x.Key.Author, x.Key.Date, HoursSpent = x.Sum(y => y.HoursSpent) }); var output2 = result2 .Select(x => string.Join("\t", x.Author, x.Date.ToShortDateString(), x.HoursSpent)); Console.WriteLine(String.Join("\n", output2)); return(0); } catch (System.Net.WebException e) { Console.WriteLine( "Unable to connect to your jira server\n" + ProgramSettings.CheckConfigMessage); Console.WriteLine("More info:\n" + e.Message); return(-2); } }
static int Main(string[] args) { ProgramSettings settings = null; J.JiraClient jc = null; if (!ProgramSettings.TryGetProgramSettings(out settings)) { Console.WriteLine( "No config found; created one.\n" + ProgramSettings.CheckConfigMessage); return -1; } else { Console.WriteLine("Querying Jira based on settings from config file.\n" + ProgramSettings.CheckConfigMessage); } Console.WriteLine(); try { jc = new J.JiraClient(settings.ServerUrl, settings.Username, settings.Password); var result = jc.SearchIssues(settings.BaseJQL) .SelectMany(x => x.GetWorklogs().Select(y => new { Issue = x, Log = y })) .GroupBy(x => new { Issue = x.Issue.Key, Author = x.Log.Author.Name, Date = x.Log.Started.Date }) .OrderBy(x => x.Key.Author) .ThenBy(x=>x.Key.Date) .ThenBy(x=>x.Key.Issue) .Select(x => new { x.Key.Author, x.Key.Date, x.Key.Issue, HoursSpent = x.Sum(l => l.Log.TimeSpentSeconds) / 3600.0 }); var output1 = result .Select(x => string.Join("\t", x.Author, x.Date.ToShortDateString(), x.Issue, x.HoursSpent)); Console.WriteLine(String.Join("\n",output1)); Console.WriteLine(); Console.WriteLine(); var result2 = result .GroupBy(x=>new {x.Author,x.Date}) .Select(x => new { x.Key.Author, x.Key.Date, HoursSpent = x.Sum(y=>y.HoursSpent) }); var output2= result2 .Select(x => string.Join("\t", x.Author, x.Date.ToShortDateString(), x.HoursSpent)); Console.WriteLine(String.Join("\n",output2)); return 0; } catch (System.Net.WebException e) { Console.WriteLine( "Unable to connect to your jira server\n" + ProgramSettings.CheckConfigMessage); Console.WriteLine("More info:\n" + e.Message); return -2; } }