Exemplo n.º 1
0
        public async Task Search(JiraConfiguration configuration, Action <string> onSuccess, Action <string> onFail)
        {
            try
            {
                var api = new ApiClientJira(
                    configuration.BaseAddress,
                    configuration.Username,
                    configuration.Password);

                var response = await api.Search(configuration.ApiPath, configuration.Query);

                if (response.Result == HttpStatusCode.OK)
                {
                    onSuccess?.Invoke(response.Item1.ToString());
                }
                else
                {
                    onFail?.Invoke($"Failed to return JIRA data, HttpStatusCode: { response.Result }");
                }
            }
            catch (Exception ex)
            {
                onFail?.Invoke(ex.Message);
            }
        }
Exemplo n.º 2
0
        public void Run(JiraConfiguration settings, TextWriter output)
        {
            if (Period == null || Users == null)
            {
                throw new InvalidOperationException(
                          $"{nameof(Period)} and {nameof(Users)} must be initialized before running command.");
            }

            if (Users.Length == 0)
            {
                throw new InvalidOperationException($"{nameof(Users)} must contain at least one user.");
            }

            output.WriteLine("Downloading worklogs for period of {0}.", Period);

            var jiraClient = new RestApiServiceClient(new HttpClientHandler(), settings.BaseUrl,
                                                      settings.Login,
                                                      settings.Password);
            var views = DownloadTimesheetAsync(jiraClient, Users, Period).Result;

            output.WriteLine();

            using (var fileWriter = GetFileWriter(OutputFileName))
            {
                var compositOutput = new CompositTextWriter(fileWriter, output);
                //printing into output
                foreach (var view in views)
                {
                    compositOutput.WriteLine("Worklogs for user \"{0}\":", view.Author.Name);
                    view.Print(new PlainTextOutput(compositOutput));
                    compositOutput.WriteLine();
                }
            }
        }
Exemplo n.º 3
0
        public void Authenticate_OnSuccess_It_Returns_True()
        {
            var jiraConfig = new JiraConfiguration()
            {
                timeTrackingConfiguration = new TimeTrackingConfiguration()
            };

            jiraApiRequesterMock.Setup(m => m.DoAuthenticatedRequest <JiraConfiguration>(It.IsAny <IRestRequest>())).Returns(jiraConfig);
            Assert.That(jiraClient.Authenticate("myuser", "myapitoken"), Is.True);
        }
Exemplo n.º 4
0
        private void ParseArgs(JiraConfiguration settings, string[] args)
        {
            for (int argIndex = 0; argIndex < args.Length; argIndex++)
            {
                if (Program.IsArg(args[argIndex], "h", "help"))
                {
                    PrintHelp();
                    throw new GracefulException();
                }
                else if (Program.IsArg(args[argIndex], "u", "users"))
                {
                    string users = Program.GetOptionArgValue(args, ++argIndex);
                    Users = users.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries);
                }
                else if (Program.IsArg(args[argIndex], "p", "period"))
                {
                    string periodText = Program.GetOptionArgValue(args, ++argIndex);
                    Period = periodText.All(char.IsDigit)
                        ? Period.FromDays(int.Parse(periodText))
                        : Period.FromString(periodText);
                }
                else if (Program.IsArg(args[argIndex], "f", "file"))
                {
                    OutputFileName = Program.GetOptionArgValue(args, ++argIndex);
                }
                else
                {
                    Console.WriteLine($"Unknown option: {args[argIndex]}");
                    throw new ArgumentException();
                }
            }

            //set defaults if none passed as arguments
            if (Period == null)
            {
                Period = Period.FromDays(15);
            }
            if (Users == null)
            {
                //getting timesheet for current user by default
                Users = new[] { settings.Login };
            }
        }
Exemplo n.º 5
0
 public JiraClient(ILoggerFactory loggerFactory, IHttpClientFactory clientFactory, ConfigurationRoot configuraton)
 {
     _logger        = loggerFactory.CreateLogger <KaitenClient>();
     _clientFactory = clientFactory;
     _configuration = configuraton.GetSection("jira").Get <JiraConfiguration>();
 }