public void GetAppointment() { var controller = new AppointmentsController(); var request = new GetAppointmentsRequest { Start = DateTime.UtcNow.ToString(), End = DateTime.UtcNow.AddDays(30).ToString() }; var result = controller.GetDetails(request) as OkNegotiatedContentResult <GetAppointmentsResponse>; Assert.IsNotNull(result.Content.Appointments); }
public async Task <GetAppointmentsResponse> GetAppointments(GetAppointmentsRequest request) { var response = new GetAppointmentsResponse(); using (var client = new HttpClient()) { client.BaseAddress = new Uri(_url); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); HttpResponseMessage resp = await client.PostAsJsonAsync("/api/appointments/details", request); if (resp.IsSuccessStatusCode) { response = await resp.Content.ReadAsAsync <GetAppointmentsResponse>(); return(response); } } return(response); }
public IHttpActionResult GetDetails(GetAppointmentsRequest request) { var startDate = DateTime.Parse(request.Start); var endDate = DateTime.Parse(request.End); // Assuming 8 max per day * 5 (days/week) * 4 (weeks/month) const int NUM_APPTS = 160; var calendar = CalendarFolder.Bind(ExchangeServer.Open(), WellKnownFolderName.Calendar, new PropertySet()); var cView = new CalendarView(startDate, endDate, NUM_APPTS); cView.PropertySet = new PropertySet(AppointmentSchema.Subject, AppointmentSchema.Start, AppointmentSchema.End, AppointmentSchema.TimeZone); FindItemsResults <Appointment> appointments = calendar.FindAppointments(cView); var response = new GetAppointmentsResponse(); var list = new List <Interview>(); foreach (var app in appointments) { var appointment = Appointment.Bind(ExchangeServer.Open(), app.Id); var attendees = new List <RequiredAttendees>(); foreach (var required in appointment.RequiredAttendees) { attendees.Add(new RequiredAttendees { Name = required.Name, Email = required.Address, Response = required.ResponseType.ToString() }); } list.Add(new Interview { Start = app.Start, End = app.End, TimeZone = app.TimeZone, Attendees = attendees, Subject = app.Subject }); } response.Appointments = list; return(Ok(response)); }
private async Task <InterviewScheduleViewModel> CreateModel(string start, string end) { var request = new GetAppointmentsRequest { Start = start, End = end }; var response = await _client.GetAppointments(request); var events = new List <EventObject>(); int i = 0; foreach (var app in response.Appointments) { events.Add(new EventObject { title = app.Subject, start = app.Start.ToString("o"), end = app.End.ToString("o"), allDay = false, backgroundColor = "green" }); response.Appointments.ElementAt(i).StartViewTime = response.Appointments.ElementAt(i).Start.ToString("t"); response.Appointments.ElementAt(i).EndViewTime = response.Appointments.ElementAt(i).End.ToString("t"); i++; } var model = new InterviewScheduleViewModel { Appointments = response.Appointments, Events = events, Start = start, End = end }; return(model); }