public async Task <FindMeetingTimeResponse> PostFindMeetingTimes(string accessToken, FindMeetingTimesRequest findMeetingTimesRequest) { string endpoint = "https://graph.microsoft.com/v1.0/me/findMeetingTimes"; using (var client = new HttpClient()) { using (var request = new HttpRequestMessage(HttpMethod.Post, endpoint)) { request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", accessToken); findMeetingTimesRequest.meetingDuration = "PT1H"; request.Content = new StringContent(JsonConvert.SerializeObject(findMeetingTimesRequest), Encoding.UTF8, "application/json"); using (var response = await client.SendAsync(request)) { if (response.IsSuccessStatusCode) { string stringResult = await response.Content.ReadAsStringAsync(); FindMeetingTimeResponse findMeetingTimeResponse = JsonConvert.DeserializeObject <FindMeetingTimeResponse>(stringResult); return(findMeetingTimeResponse); } return(null); } } } }
private List <FindMeetingTimesRowViewModel> FilterSuggestions(FindMeetingTimeResponse findMeetingTimes, FindRoomsListResponse listaTodasSalas) { var retVal = new List <FindMeetingTimesRowViewModel>(); foreach (var suggestion in findMeetingTimes.meetingTimeSuggestions) { var rooms = new List <Sala>(); var attendees = new List <string>(); int personas = 0; foreach (var attendee in suggestion.attendeeAvailability) { if (attendee.attendee.emailAddress.address.Substring(0, 4) == "ROOM") { if (attendee.availability == "free") { var sala = listaTodasSalas.value.Find(m => m.address.Equals(attendee.attendee.emailAddress.address)); rooms.Add(new Sala() { Email = attendee.attendee.emailAddress.address, Name = sala.name }); } } else { personas++; if (attendee.availability == "free") { attendees.Add(attendee.attendee.emailAddress.address); } else { attendees.Clear(); break; } } //COMENTAR EL SIGUIENTE IF PARA QUE DEVUELVA MAS SUGERENCIAS DE SALAS //if (rooms.Count > 0 && attendees.Count == personas) //{ // break; //} } if (rooms.Count > 0 && attendees.Count == personas) { StringBuilder strb = new StringBuilder(); foreach (var item in attendees) { strb.Append(item); strb.Append('#'); } var sugg = new FindMeetingTimesRowViewModel() { Fecha = suggestion.meetingTimeSlot.start.dateTime, Salas = rooms, attendees = strb.ToString() }; retVal.Add(sugg); } } return(retVal); }