Ejemplo n.º 1
0
        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;
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }