コード例 #1
0
        public static async Task CreateSprint(string?profile)
        {
            var service = await ProfileHelpers.GetJiraSprintService(profile);

            if (service is null)
            {
                Console.WriteLine("Can't find default profile"); return;
            }

            var sprint = await ConsoleI.RenderForm <TerminalJiraSprint>();

            if (sprint is null)
            {
                Console.WriteLine("Sprint is invalid"); return;
            }

            var success = service
                          .CreateSprint(sprint);

            if (success)
            {
                Console.WriteLine($"Created sprint {sprint.Name}");
            }
            else
            {
                Console.WriteLine($"Sprint with name [{sprint.Name}] already exists");
            }
        }
コード例 #2
0
        private static async Task BuildReport(
            string?reportName,
            IEnumerable <string>?param,
            string?sprint,
            string?profile
            )
        {
            var report = await TerminalReportHandler
                         .GetReportByName(reportName);

            if (report is null)
            {
                Console.WriteLine("Can´t find report " + reportName ?? "");
                return;
            }

            var paramsData = BuildParams(param);
            var jiraSprint = await GetSprint(profile, sprint);

            var client = await ProfileHelpers.GetJiraClient(profile);

            if (client is null)
            {
                Console.WriteLine("Can't load jira service, check default profile is valid");
                return;
            }

            await report.PrintReport(client, jiraSprint, paramsData);
        }
コード例 #3
0
        private static async Task <IJiraSprint?> GetSprint(string?profile, string?sprint)
        {
            var sprintService = await ProfileHelpers.GetJiraSprintService(profile);

            return(sprintService?.GetSprintByName(sprint ?? "")
                   ?? sprintService?.GetActiveSprint());
        }
コード例 #4
0
        private static async Task ExecuteJql(string jql, string?profile)
        {
            var client = await ProfileHelpers.GetJiraClient(profile);

            if (client is null)
            {
                Console.WriteLine("Profile not found!"); return;
            }

            var res = await client.IssueClient.Jql <object>(jql, new { Summary = "" });

            res.Match(s => Handle(s), () => Console.WriteLine("JQL didn't return results"));
        }
コード例 #5
0
        private static async Task ListSprints(string?profile)
        {
            var service = await ProfileHelpers.GetJiraSprintService(profile);

            if (service is null)
            {
                Console.WriteLine("Can't find default profile"); return;
            }

            var activeSprint = service.GetActiveSprint();

            service.GetSprints()
            .OrderByDescending(e => e.Start).ToList()
            .ForEach(s => PrintSprint(s, activeSprint));
        }
コード例 #6
0
        private static async Task DeleteSprint(string profile)
        {
            var service = await ProfileHelpers.GetJiraSprintService(profile);

            IEnumerable <IJiraSprint> sprintList = service?.GetSprints() ??
                                                   new List <JiraSprint>();

            if (sprintList.Count() == 0)
            {
                Console.WriteLine("Can't find any sprint to delete");
                return;
            }

            var toDelete = await ConsoleI.Select(sprintList, sprintList.Count());

            var deleted = toDelete.Select(
                s => service?.DeleteSprint(s.Name) ?? false)
                          .Select(t => t ? 1 : 0)
                          .Sum();

            Console.WriteLine($"Deleted {deleted} entries");
        }