예제 #1
0
        private void LoadChecks(DateTime currentDate)
        {
            AppointmentGenerator generator = new AppointmentGenerator();

            DateTime lastMonth = currentDate.AddMonths(-1);
            DateTime nextMonth = currentDate.AddMonths(1);

            YearMonthInfo forLastMonth    = CreateSearchParameter(lastMonth);
            YearMonthInfo forCurrentMonth = CreateSearchParameter(currentDate);
            YearMonthInfo forNextMonth    = CreateSearchParameter(nextMonth);

            _checksInLastMonth = _checkRepository.GetChecksByMonth(forLastMonth);
            _checksInThisMonth = _checkRepository.GetChecksByMonth(forCurrentMonth);
            _checksInNextMonth = _checkRepository.GetChecksByMonth(forNextMonth);

            _allChecks = new List <Check>();
            _allChecks.AddRange(_checksInLastMonth);
            _allChecks.AddRange(_checksInThisMonth);
            _allChecks.AddRange(_checksInNextMonth);

            List <Check> checksWithFlag = ApplyCheckFlagQuery();

            List <AppointmentCheck> allAppointments = generator.CreateAppointmentObjects(checksWithFlag);

            ScheduleView.AppointmentsSource = allAppointments;
            ScheduleView.Commit();
            ScheduleView.SelectedAppointment = null;
        }
예제 #2
0
        public InfrastructurePageViewModel(IDataCenter dataCenter,
                                           ISharedStateReadOnly <MainPage> selectedPageVariable,
                                           AppointmentGenerator appointmentGenerator)
        {
            this.dataCenter           = dataCenter;
            this.selectedPageVariable = selectedPageVariable;
            this.appointmentGenerator = appointmentGenerator;

            AddMedicalPractice         = new Command(DoAddMedicalPractice);
            SaveMedicalPracticeChanges = new Command(DoSaveMedicalPracticeChanges);
            DeleteMedicalPractice      = new Command(DoDeleteMedicalPractice);
            AddRoom                      = new Command(DoAddRoom);
            SaveRoomChanges              = new Command(DoSaveRoomChanges);
            DeleteRoom                   = new Command(DoDeleteRoom);
            AddTherapyPlace              = new Command(DoAddTherapyPlace);
            SaveTherapyPlaceChanges      = new Command(DoSaveTherapyPlaceChanges);
            DeleteTherapyPlace           = new Command(DoDeleteTherapyPlace);
            GenerateAppointmentsForToday = new Command(DoGenerateAppointments);

            MedicalPractices           = new ObservableCollection <MedPracticeDisplayData>();
            Rooms                      = new ObservableCollection <RoomDisplayData>();
            TherapyPlaces              = new ObservableCollection <TherapyPlaceDisplayData>();
            AvailableTherapyPlaceTypes = new ObservableCollection <TherapyPlaceTypeDisplayData>();

            SelectedMedicalPractice = null;
            SelectedRoom            = null;
            SelectedTherapyPlace    = null;

            AvailableColors = typeof(Colors).GetProperties(BindingFlags.Static | BindingFlags.Public)
                              .Select(p => (Color)p.GetValue(null, null))
                              .Select(color => new ColorDisplayData(color))
                              .ToObservableCollection();

            selectedPageVariable.StateChanged += OnSelectedPageStateChanged;
        }
예제 #3
0
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);

            AssureAppDataDirectoriesExist();

            ///////////////////////////////////////////////////////////////////////////////////////////////////
            ////////                                                                                 //////////
            ////////                            Composition Root and Setup                           //////////
            ////////                                                                                 //////////
            ///////////////////////////////////////////////////////////////////////////////////////////////////

            var dataCenterContainer = new DataCenterContainer();

            // ConnectionService

            var connectionServiceBuilder = new ConnectionServiceBuilder(dataCenterContainer);
            var connectionService        = connectionServiceBuilder.Build();

            // Patient-Repository

            var patientPersistenceService = new XmlPatientDataStore(GlobalConstants.PatientPersistenceFile);
            var patientRepository         = new PatientRepository(patientPersistenceService, connectionService);

            patientRepository.LoadRepository();


            // Config-Repository

            var configPersistenceService = new XmlConfigurationDataStore(GlobalConstants.ConfigPersistenceFile);
            var configRepository         = new ConfigurationRepository(configPersistenceService);

            configRepository.LoadRepository();


            // LocalSettings-Repository

            var settingsPersistenceService = new LocalSettingsXmlPersistenceService(GlobalConstants.LocalServerSettingsPersistanceFile);
            var localSettingsRepository    = new LocalSettingsRepository(settingsPersistenceService);

            localSettingsRepository.LoadRepository();

            // Event-Store

            var eventStreamPersistenceService = new XmlEventStreamPersistanceService();
            var streamPersistenceService      = new StreamPersistenceService(eventStreamPersistenceService, configRepository, GlobalConstants.EventHistoryBasePath, 500);
            var metaDataPersistenceService    = new XmlPracticeMetaDataPersistanceService(GlobalConstants.MetaDataPersistanceFile);
            var metaDataService = new StreamMetaDataService(metaDataPersistenceService);

            var eventStore = new EventStore(streamPersistenceService, metaDataService, connectionService);

            eventStore.LoadRepository();

            // DataAndService

            var dataCenter = new DataCenter(configRepository, patientRepository, eventStore);

            dataCenterContainer.DataCenter = dataCenter;

            var backUpService   = new BackupService(patientRepository, configRepository, eventStore, connectionService);
            var backupScheduler = new BackupScheduler(backUpService);

            backupScheduler.Start(localSettingsRepository);

            // ViewModel-Variables

            var selectedPageVariable = new SharedState <MainPage>(MainPage.Overview);


            // sampleData-generators

            var patientNameGenerator = new PatientNameGenerator();
            var appointmentGenerator = new AppointmentGenerator(configRepository, patientRepository, eventStore);


            // ViewModels

            var selectedPatientVariable  = new SharedState <Patient>(null);
            var patientSelectorViewModel = new PatientSelectorViewModel(patientRepository, selectedPatientVariable);

            var overviewPageViewModel          = new OverviewPageViewModel(connectionService);
            var connectionsPageViewModel       = new ConnectionsPageViewModel(dataCenter, connectionService, selectedPageVariable);
            var userPageViewModel              = new UserPageViewModel(dataCenter, selectedPageVariable);
            var licencePageViewModel           = new LicencePageViewModel();
            var infrastructurePageViewModel    = new InfrastructurePageViewModel(dataCenter, selectedPageVariable, appointmentGenerator);
            var hoursOfOpeningPageViewModel    = new HoursOfOpeningPageViewModel(dataCenter, selectedPageVariable);
            var therapyPlaceTypesPageViewModel = new TherapyPlaceTypesPageViewModel(dataCenter, selectedPageVariable, connectionService);
            var labelPageViewModel             = new LabelPageViewModel(dataCenter, selectedPageVariable, connectionService);
            var patientsPageViewModel          = new PatientsPageViewModel(patientSelectorViewModel, patientRepository, selectedPatientVariable, patientNameGenerator);
            var backupPageViewModel            = new BackupPageViewModel(backUpService, backupScheduler, localSettingsRepository);
            var optionsPageViewModel           = new OptionsPageViewModel();
            var aboutPageViewModel             = new AboutPageViewModel("0.1.0.0");

            var mainWindowViewModel = new MainWindowViewModel(overviewPageViewModel,
                                                              connectionsPageViewModel,
                                                              userPageViewModel,
                                                              licencePageViewModel,
                                                              infrastructurePageViewModel,
                                                              hoursOfOpeningPageViewModel,
                                                              therapyPlaceTypesPageViewModel,
                                                              labelPageViewModel,
                                                              patientsPageViewModel,
                                                              backupPageViewModel,
                                                              optionsPageViewModel,
                                                              aboutPageViewModel,
                                                              selectedPageVariable);
            var mainWindow = new MainWindow
            {
                DataContext = mainWindowViewModel
            };

            mainWindow.ShowDialog();

            ///////////////////////////////////////////////////////////////////////////////////////////////
            ////////                                                                             //////////
            ////////             Clean Up and store data after main Window was closed            //////////
            ////////                                                                             //////////
            ///////////////////////////////////////////////////////////////////////////////////////////////

            backupScheduler.Stop();

            configRepository.PersistRepository();
            patientRepository.PersistRepository();
            eventStore.PersistRepository();
            localSettingsRepository.PersistRepository();

            connectionServiceBuilder.DisposeConnectionService(connectionService);
        }
예제 #4
0
        public void BuildAndStart(StartupEventArgs startupEventArgs)
        {
#if DEBUG
            var listener = new OnkoTePlaDebugListener();
            Debug.Listeners.Add(listener);
#endif

            AssureAppDataDirectoriesExist();

            var dataCenterContainer = new DataCenterContainer();

            // ConnectionService

            connectionServiceBuilder = new ConnectionServiceBuilder(dataCenterContainer);
            connectionService        = connectionServiceBuilder.Build();

            // Patient-Repository

            var patientPersistenceService = new XmlPatientDataStore(GlobalConstants.PatientPersistenceFile);

            patientRepository = new PatientRepository(patientPersistenceService, connectionService);
            patientRepository.LoadRepository();


            // Config-Repository

            var configPersistenceService = new XmlConfigurationDataStore(GlobalConstants.ConfigPersistenceFile);
            configRepository = new ConfigurationRepository(configPersistenceService);
            configRepository.LoadRepository();


            // LocalSettings-Repository

            var settingsPersistenceService = new LocalSettingsXmlPersistenceService(GlobalConstants.LocalServerSettingsPersistanceFile);

            localSettingsRepository = new LocalSettingsRepository(settingsPersistenceService);
            localSettingsRepository.LoadRepository();

            // Event-Store

            var eventStreamPersistenceService = new XmlEventStreamPersistanceService();
            var streamPersistenceService      = new StreamPersistenceService(eventStreamPersistenceService, configRepository, GlobalConstants.EventHistoryBasePath, 500);
            var metaDataPersistenceService    = new XmlPracticeMetaDataPersistanceService(GlobalConstants.MetaDataPersistanceFile);
            var metaDataService = new StreamMetaDataService(metaDataPersistenceService);


            eventStore = new EventStore(streamPersistenceService, metaDataService, connectionService);
            eventStore.LoadRepository();

            // DataAndService

            var dataCenter = new DataCenter(configRepository, patientRepository, eventStore);
            dataCenterContainer.DataCenter = dataCenter;

            var backUpService = new BackupService(patientRepository, configRepository, eventStore, connectionService);

            backupScheduler = new BackupScheduler(backUpService);
            backupScheduler.Start(localSettingsRepository);

            // ViewModel-Variables

            var selectedPageVariable = new SharedState <MainPage>(MainPage.Overview);


            // sampleData-generators

            var patientNameGenerator = new PatientNameGenerator();
            var appointmentGenerator = new AppointmentGenerator(configRepository, patientRepository, eventStore);


            // ViewModels

            var selectedPatientVariable  = new SharedState <Patient>(null);
            var patientSelectorViewModel = new PatientSelectorViewModel(patientRepository, selectedPatientVariable, null);

            var overviewPageViewModel          = new OverviewPageViewModel(connectionService);
            var connectionsPageViewModel       = new ConnectionsPageViewModel(dataCenter, connectionService, selectedPageVariable);
            var userPageViewModel              = new UserPageViewModel(dataCenter, selectedPageVariable);
            var licencePageViewModel           = new LicencePageViewModel();
            var infrastructurePageViewModel    = new InfrastructurePageViewModel(dataCenter, selectedPageVariable, appointmentGenerator);
            var hoursOfOpeningPageViewModel    = new HoursOfOpeningPageViewModel(dataCenter, selectedPageVariable);
            var therapyPlaceTypesPageViewModel = new TherapyPlaceTypesPageViewModel(dataCenter, selectedPageVariable, connectionService);
            var labelPageViewModel             = new LabelPageViewModel(dataCenter, selectedPageVariable, connectionService);
            var patientsPageViewModel          = new PatientsPageViewModel(patientSelectorViewModel, patientRepository, selectedPatientVariable, patientNameGenerator);
            var backupPageViewModel            = new BackupPageViewModel(backUpService, backupScheduler, localSettingsRepository);
            var optionsPageViewModel           = new OptionsPageViewModel();
            var aboutPageViewModel             = new AboutPageViewModel();

            var mainWindowViewModel = new MainWindowViewModel(overviewPageViewModel,
                                                              connectionsPageViewModel,
                                                              userPageViewModel,
                                                              licencePageViewModel,
                                                              infrastructurePageViewModel,
                                                              hoursOfOpeningPageViewModel,
                                                              therapyPlaceTypesPageViewModel,
                                                              labelPageViewModel,
                                                              patientsPageViewModel,
                                                              backupPageViewModel,
                                                              optionsPageViewModel,
                                                              aboutPageViewModel,
                                                              selectedPageVariable);
            var mainWindow = new Visualization.MainWindow
            {
                DataContext = mainWindowViewModel
            };

            mainWindow.Show();

#if DEBUG
            var debugOutputWindowViewModel = new DebugOutputWindowViewModel(listener);
            var debugWindow = new DebugOutputWindow
            {
                Owner       = mainWindow,
                DataContext = debugOutputWindowViewModel
            };

            debugWindow.Show();
#endif
        }