async Task GetAppointmentTimesAsync() { if (_selectedDoctor == null || PossibleHours == null) { return; } try { IsBusy = true; PossibleHours.Clear(); if (_selectedDate.Year == 2015 && _selectedDate.Month == 11 && _selectedDate.Day == 19) { AddFixedHoursForDemo(); } else { await AddHoursRetrievedFromAPIAsync(); } } finally { SelectedHour = PossibleHours.FirstOrDefault(); IsBusy = false; } }
void AddFixedHoursForDemo() { var hours = new List <string>(3); hours.Add("9:00 am"); hours.Add("9:15 am"); hours.Add("9:30 am"); PossibleHours.AddRange(hours); }
async Task AddHoursRetrievedFromAPIAsync() { var hours = new List <DateTime>(); hours = await client.DoctorsService.GetAvailableHoursAsync(_selectedDoctor.DoctorId, _selectedDate.Day, _selectedDate.Month, _selectedDate.Year); var fi = new DateTimeFormatInfo { AMDesignator = "am", PMDesignator = "pm" }; var actualHours = new List <string>(); foreach (var hour in hours) { var date = hour.ToLocalTime().ToString("h:mm tt", fi); actualHours.Add(date); } // Remove times that are conflicting with doctor's calendar. if (AppSettings.OutlookIntegration) { // Get patient events from calendar. //TODO: Use Rest api instead to workaround issue. Revert to Microsoft Graph Service after the issue is resolved. //events = await MicrosoftGraphService.GetEventsAsync(_selectedDate); PatientEvents = await MicrosoftGraphService.GetEventsAsync(_selectedDate); //TODO: uncomment the following to enable doctor calendar integration. //if (_selectedDoctor != null) //{ // var doctorEvents = await client.DoctorCalendarService.GetDoctorEventsByDayAsync(_selectedDoctor.Email, _selectedDate); // var filteredHours = RemoveConflictingHours(hours, doctorEvents, fi); // actualHours.Clear(); // actualHours.AddRange(filteredHours); //} } PossibleHours.AddRange(actualHours); }