public async Task <Incident> UpdateIncidentStatusAsync(string incidentId, PagerDutyPerson person, IncidentStatus newStatus) { if (person == null) { throw new ArgumentNullException(nameof(person)); } var data = new { incident = new { type = "incident_reference", status = newStatus.ToString() } }; var headers = new Dictionary <string, string> { ["From"] = person.Email }; try { var result = await GetFromPagerDutyAsync($"incidents/{incidentId}", response => JSON.Deserialize <PagerDutyIncidentUpdateResp>(response, JilOptions), httpMethod : "PUT", data : data, extraHeaders : headers); await Incidents.PollAsync(true); return(result?.Response ?? new Incident()); } catch (DeserializationException de) { de.AddLoggedData("Message", de.Message) .AddLoggedData("Snippet After", de.SnippetAfterError) .Log(); return(null); } }
public async Task <string> SetOverrideAsync(PagerDutySchedule shedule, DateTime start, DateTime end, PagerDutyPerson pdPerson) { var overrideData = new { @override = new { start, end, user = new { id = pdPerson.Id, type = "user_reference" } } }; var result = await GetFromPagerDutyAsync("schedules/" + shedule.Id + "/overrides", getFromJson : response => response, httpMethod : "POST", data : overrideData); await OnCallInfo.PollAsync(true); await PrimaryScheduleOverrides.PollAsync(true); return(result); }