Ejemplo n.º 1
0
        public MedicalPracticeSelectorViewModel(ISession session,
                                                IClientMedicalPracticeRepository medicalPracticeRepository,
                                                ILocalSettingsRepository localSettingsRepository,
                                                ISharedState <Guid> selectedMedicalPracticeIdVariable,
                                                ISharedStateReadOnly <AppointmentModifications> appointmentModificationsVariable,
                                                Action <string> errorCallback)
        {
            this.localSettingsRepository           = localSettingsRepository;
            this.selectedMedicalPracticeIdVariable = selectedMedicalPracticeIdVariable;
            this.appointmentModificationsVariable  = appointmentModificationsVariable;

            selectedMedicalPracticeIdVariable.StateChanged += OnSelectedMedicalPracticeIdVariableChanged;
            appointmentModificationsVariable.StateChanged  += OnAppointmentModificationVariableChanged;

            AvailableMedicalPractices = session.LoggedInUser
                                        .ListOfAccessablePractices
                                        .Select(practiceId => new MedicalPracticeDisplayData(practiceId, practiceId.ToString()))
                                        .ToObservableCollection();

            foreach (var medicalPracticeDisplayData in AvailableMedicalPractices)
            {
                medicalPracticeRepository.RequestMedicalPractice(
                    practice =>
                {
                    medicalPracticeDisplayData.PracticeName = practice.Name;
                },
                    medicalPracticeDisplayData.MedicalPracticeId,
                    errorCallback
                    );
            }

            SelectedMedicalPractice = AvailableMedicalPractices.First(practice => practice.MedicalPracticeId == selectedMedicalPracticeIdVariable.Value);

            PracticeIsSelectable = true;
        }
Ejemplo n.º 2
0
        private void OnSelectedPageStateChanged(MainPage mainPage)
        {
            if (mainPage == MainPage.HoursOfOpening)
            {
                AvailableMedicalPractices.Clear();

                dataCenter.GetAllMedicalPractices()
                .Select(medPractice => new MedPracticeDisplayData(medPractice.Name, medPractice.Id))
                .Do(AvailableMedicalPractices.Add);

                IsAnyPracticeAvailable = AvailableMedicalPractices.Count > 0;
            }
        }
Ejemplo n.º 3
0
 private void OnSelectedMedicalPracticeIdVariableChanged(Guid medicalPracticeId)
 {
     localSettingsRepository.LastUsedMedicalPracticeId = medicalPracticeId;
     selectedPractice = AvailableMedicalPractices.First(practice => practice.MedicalPracticeId == medicalPracticeId);
     PropertyChanged.Notify(this, nameof(SelectedMedicalPractice));
 }