// 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); }
// 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()); }