private MeetingTimes BuildRequestBody(Meeting meeting, string startTime, string endTime) { var result = new MeetingTimes { MeetingDuration = "PT30M", Attendees = new List <MeetingTimes.Attendee>(), TimeConstraint = new TimeConstraint { Timeslots = new List <MeetingTimeSlot>() }, LocationConstraint = new LocationConstraint() { Locations = new List <Location>() } }; foreach (var a in meeting.Attendees) { if (!a.EmailAddress.IsEqualTo(meeting.Organizer.EmailAddress)) { result.Attendees.Add(new MeetingTimes.Attendee { EmailAddress = a.EmailAddress }); } } var date = meeting.Start.ToLocalTime(); var dateString = date.DateToApiString(); var timeSlot = new MeetingTimeSlot { Start = new MeetingTimeSlot.TimeDescriptor { Date = dateString, Time = startTime, TimeZone = TimeZoneInfo.Local.Id }, End = new MeetingTimeSlot.TimeDescriptor { Date = dateString, Time = endTime, TimeZone = TimeZoneInfo.Local.Id } }; result.TimeConstraint.Timeslots.Add(timeSlot); if (!string.IsNullOrEmpty(meeting.Location.DisplayName)) { result.LocationConstraint.Locations.Add(new Location { DisplayName = meeting.Location.DisplayName }); } return(result); }
public IEnumerable <string> GetUsers(string match, int count) { #if MEETING_TIMES MeetingTimes times = new MeetingTimes(); MeetingTimeSlot timeSlot = new MeetingTimeSlot(); timeSlot.Start = new TimeDesc("2015-10-08", "1:00:00", "GMT Standard Time"); timeSlot.End = new TimeDesc("2015-10-08", "23:00:00", "GMT Standard Time"); AttendeeBase att1 = new AttendeeBase(); // att1.EmailAddress.Address = "*****@*****.**"; att1.EmailAddress.Address = "*****@*****.**"; AttendeeBase att2 = new AttendeeBase(); att2.EmailAddress.Address = "*****@*****.**"; times.TimeConstraint.Timeslots.Add(timeSlot); times.LocationConstraint = new LocationConstraint(); times.Attendees.Add(att1); // times.Attendees.Add(att2); var httpProxy = new HttpUtilSync(Constants.OfficeResourceId); String uri = "https://outlook.office365.com/api/beta/me/findmeetingtimes"; var res = httpProxy.PostItem2 <MeetingTimes, MeetingTimeCandidates>(uri, times); return(null); #else string uri = BaseUri + "users"; uri += '?'; // we always have at least api version parameter if (string.IsNullOrEmpty(match) == false) { uri = AddFilters(uri, match, "userPrincipalName", "displayName", "givenName" /*, "surName"*/); uri += '&'; } uri += ApiVersion; var users = new HttpUtilSync(Constants.AadServiceResourceId) .GetItems <UserHttp>(uri, count); return(users.Select(x => x.UserPrincipalName)); #endif }
public IEnumerable<string> GetUsers(string match, int count) { #if MEETING_TIMES MeetingTimes times = new MeetingTimes(); MeetingTimeSlot timeSlot = new MeetingTimeSlot(); timeSlot.Start = new TimeDesc("2015-10-08", "1:00:00", "GMT Standard Time"); timeSlot.End = new TimeDesc("2015-10-08", "23:00:00", "GMT Standard Time"); AttendeeBase att1 = new AttendeeBase(); // att1.EmailAddress.Address = "*****@*****.**"; att1.EmailAddress.Address = "*****@*****.**"; AttendeeBase att2 = new AttendeeBase(); att2.EmailAddress.Address = "*****@*****.**"; times.TimeConstraint.Timeslots.Add(timeSlot); times.LocationConstraint = new LocationConstraint(); times.Attendees.Add(att1); // times.Attendees.Add(att2); var httpProxy = new HttpUtilSync(Constants.OfficeResourceId); String uri = "https://outlook.office365.com/api/beta/me/findmeetingtimes"; var res = httpProxy.PostItem2<MeetingTimes, MeetingTimeCandidates>(uri, times); return null; #else string uri = BaseUri + "users"; uri += '?'; // we always have at least api version parameter if (string.IsNullOrEmpty(match) == false) { uri = AddFilters(uri, match, "userPrincipalName", "displayName", "givenName"/*, "surName"*/); uri += '&'; } uri += ApiVersion; var users = new HttpUtilSync(Constants.AadServiceResourceId) .GetItems<UserHttp>(uri, count); return users.Select(x => x.UserPrincipalName); #endif }
private MeetingTimes BuildRequestBody(Meeting meeting) { var result = new MeetingTimes { MeetingDuration = "PT30M", Attendees = new List <MeetingTimes.Attendee>(), TimeConstraint = new TimeConstraint { Timeslots = new List <MeetingTimeSlot>() }, LocationConstraint = new LocationConstraint() { IsRequired = false, Locations = new List <Location>() }, MaxCandidates = 20, }; foreach (var a in meeting.Attendees ?? Enumerable.Empty <Attendee>()) { if (meeting.Organizer == null || !a.EmailAddress.IsEqualTo(meeting.Organizer.EmailAddress)) { result.Attendees.Add(new MeetingTimes.Attendee { EmailAddress = a.EmailAddress }); } } var date = meeting.Start.DateTime; // From 8AM to 6PM local time var start = new DateTime(date.Year, date.Month, date.Day, 8, 0, 0, DateTimeKind.Local); var end = new DateTime(date.Year, date.Month, date.Day, 18, 0, 0, DateTimeKind.Local); start = start.ToUniversalTime(); end = end.ToUniversalTime(); var timeSlot = new MeetingTimeSlot { Start = new MeetingTimeSlot.TimeDescriptor { Date = start.DateToApiString(), Time = start.TimeOfDay.ToString(), TimeZone = "UTC" }, End = new MeetingTimeSlot.TimeDescriptor { Date = end.DateToApiString(), Time = end.TimeOfDay.ToString(), TimeZone = "UTC" } }; result.TimeConstraint.Timeslots.Add(timeSlot); if (!string.IsNullOrEmpty(meeting.Location.DisplayName)) { result.LocationConstraint.Locations.Add(new Location { DisplayName = meeting.Location.DisplayName }); } return(result); }