Пример #1
0
        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);
            }
        }
Пример #2
0
        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;
            }
        }