private Event getEvent(Incident incidentData, ContactValue contacts) { Event evnt = new Event(); evnt.location.displayName = incidentData.City; evnt.body.content = incidentData.Description; evnt.body.contentType = Settings.EMAIL_MESSAGE_TYPE; evnt.subject = incidentData.OutageType; evnt.attendees = new Attendee[] { new Attendee() { emailAddress = contacts.value[0].emailAddresses[0], type = "required" }, new Attendee() { emailAddress = contacts.value[1].emailAddresses[0], type = "required" }, new Attendee() { emailAddress = contacts.value[2].emailAddresses[0], type = "required" }, }; evnt.start.timeZone = "Pacific Standard Time"; DateTime startTime = GetEventTime(); evnt.start.dateTime = $"{startTime.Year}-{startTime.Month}-{startTime.Day}T{startTime.Hour}:00:00"; evnt.end.timeZone = "Pacific Standard Time"; evnt.end.dateTime = $"{startTime.Year}-{startTime.Month}-{startTime.Day}T{startTime.Hour + 1}:00:00"; return(evnt); }
public string this[string columnName] { get { Error = string.Empty; switch (columnName) { case "ContactValue": if (ContactType == ContactType.Email) { Regex regex = new Regex(@"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"); bool isValid = regex.IsMatch(ContactValue.Trim()); if (!isValid) { Error = "Invalid Email."; } } if (ContactType == ContactType.Phone) { Regex regex = new Regex(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$"); bool isValid = regex.IsMatch(ContactValue.Trim()); if (!isValid) { Error = "Invalid Phone."; } } break; default: break; } return(Error); } }
private async Task CreateEvent(Incident incidentData) { string userObjId = ClaimsPrincipal.Current.FindFirst(Settings.AAD_OBJECTID_CLAIMTYPE).Value; SessionTokenCache tokenCache = new SessionTokenCache(userObjId, HttpContext); string tenantId = ClaimsPrincipal.Current.FindFirst(Settings.AAD_TENANTID_CLAIMTYPE).Value; string authority = string.Format(Settings.AAD_INSTANCE, tenantId, ""); AuthHelper authHelper = new AuthHelper(authority, Settings.AAD_APP_ID, Settings.AAD_APP_SECRET, tokenCache); string accessToken = await authHelper.GetUserAccessToken(Url.Action("Create", "Incident", null, Request.Url.Scheme)); ContactValue contacts = null; using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage response = await client.GetAsync(Settings.GRAPH_CONTACTS_URL); if (response.IsSuccessStatusCode) { string resultString = await response.Content.ReadAsStringAsync(); contacts = JsonConvert.DeserializeObject <ContactValue>(resultString); } } Event evnt = getEvent(incidentData, contacts); using (var client = new HttpClient()) { client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Add("Prefer", "outlook.timezone=\"Pacific Standard Time\""); StringContent msgContent = new StringContent(JsonConvert.SerializeObject(evnt), System.Text.Encoding.UTF8, "application/json"); msgContent.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json"); HttpResponseMessage response = await client.PostAsync(Settings.GRAPH_EVENTS_URL, msgContent); if (response.IsSuccessStatusCode) { string resultString = await response.Content.ReadAsStringAsync(); } } }