public static async Task<bool> AddEvent(DateTime start, string[] emails, string[] names, int length = 5) { try { var calendarEvent = new CalendarEvent { Start = start.ToString("O"), End = start.AddMinutes(length).ToString("O"), Subject = length + " Minute Meeting", Body = new CalendarBody { Content = length + " minute meeting for status report", ContentType = "HTML" } }; if (emails.Length > 0) calendarEvent.Attendees = new CalendarAttendee[emails.Length]; else calendarEvent.Attendees = new List<CalendarAttendee>().ToArray(); for (int i = 0; i < emails.Length; i++) { if (string.IsNullOrWhiteSpace(emails[i]) || string.IsNullOrWhiteSpace(names[i])) continue; calendarEvent.Attendees[i]=new CalendarAttendee { EmailAddress = new CalendarEmailAddress { Address = emails[i], Name = names[i] }, Type = AttendeeType.Required.ToString() }; } var result = await AddCalendarEvent(calendarEvent); } catch (Exception ex) { var message = ex.ToString(); return false; } return true; }
public static async Task<CalendarEvent> AddCalendarEvent(CalendarEvent calendarEvent) { var serviceInfo = await AuthenticationHelper.GetServiceInfo("Calendar"); var requestUrl = String.Format(CultureInfo.InvariantCulture, "{0}/me/events", serviceInfo.ApiEndpoint); string postData = SerializationHelper.Serialize(calendarEvent); postData = postData.Replace("null", string.Empty); Func<HttpRequestMessage> requestCreator = () => { HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, requestUrl); request.Headers.Add("Accept", "application/json;odata.metadata=minimal"); request.Content = new StringContent(postData, Encoding.UTF8, "application/json"); return request; }; var httpClient = new HttpClient(); var response = await AuthenticationHelper.SendRequestAsync(serviceInfo.AccessToken, serviceInfo.ResourceId, httpClient, requestCreator); string responseString = await response.Content.ReadAsStringAsync(); var c = SerializationHelper.Deserialize<CalendarEvent>(responseString); return c; }