Exemple #1
0
        // POST api/toggl
        public async Task <string> Post([FromBody] JiraMessage jiraMessage)
        {
            var jiraUsername = ConfigurationManager.AppSettings["JiraUsername"];
            var jiraPassword = ConfigurationManager.AppSettings["JiraPassword"];

            var togglApiToken = ConfigurationManager.AppSettings["TogglAPIToken"];

            var response = "";

            if (jiraMessage.User.Name != jiraUsername)
            {
                return("");
            }

            var clientToggl = new HttpClient
            {
                BaseAddress = new Uri("https://www.toggl.com")
            };


            clientToggl.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Base64Encode($"{togglApiToken}:api_token"));

            var startDate = DateTime.UtcNow.AddDays(-1).ToString("o");
            var endDate   = DateTime.UtcNow.ToString("o");

            var responseToggl = await clientToggl.GetAsync($"api/v8/time_entries?start_date={startDate}&end_date={endDate}");

            var entries = responseToggl.Content.ReadAsAsync <IList <TogglEntry> >().Result;

            foreach (var entry in entries)
            {
                if (entry.description != jiraMessage.Issue.Key)
                {
                    continue;
                }

                var clientJira = new HttpClient
                {
                    BaseAddress = new Uri("http://jira.princiweb.net.br:7070")
                };

                clientJira.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Base64Encode($"{jiraUsername}:${jiraPassword}"));

                var started = DateTime.Now.AddSeconds(-entry.duration);

                var worklog = new Worklog
                {
                    timeSpentSeconds = entry.duration,
                    started          = FormatJIRADate(started),
                    comment          = "Teste"
                };

                var responseJira = await clientJira.PostAsJsonAsync($"rest/api/2/issue/{jiraMessage.Issue.Key}/worklog", worklog);

                response = responseJira.ToString();
            }

            return(response);
        }
Exemple #2
0
        // POST api/asana
        public async Task <string> Post([FromBody] JiraMessage jiraMessage)
        {
            var client = new HttpClient
            {
                BaseAddress = new Uri("https://app.asana.com")
            };

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "");

            var asanaMessage = new AsanaMessage
            {
                data = new AsanaFields
                {
                    notes     = jiraMessage.Issue.Fields.Description,
                    name      = jiraMessage.Issue.Fields.Summary,
                    workspace = "",
                    assignee  = ""
                }
            };

            var response = await client.PostAsJsonAsync("api/1.0/tasks", asanaMessage);

            return(response.ToString());
        }