コード例 #1
0
        private void AddGridViewModel(AggregateIdentifier identifier)
        {
            if (!cachedAppointmentGridViewModels.ContainsKey(identifier))
            {
                cachedAppointmentGridViewModels.Add(identifier, null);

                appointmentGridViewModelBuilder.RequestBuild(
                    buildedViewModel =>
                {
                    Application.Current.Dispatcher.Invoke(() =>
                    {
                        cachedAppointmentGridViewModels[identifier] = buildedViewModel;
                        LoadedAppointmentGrids.Add(buildedViewModel);

                        if (identifier.Date == selectedDateVariable.Value &&
                            identifier.MedicalPracticeId == selectedMedicalPracticeIdVariable.Value)
                        {
                            DisplayCachedViewModel(identifier);
                        }
                    });
                },
                    identifier,
                    errorCallback
                    );
            }
        }
コード例 #2
0
        private int GetGridIndex(AggregateIdentifier identifier)
        {
            if (GridViewModelIsCached(identifier))
            {
                var gridViewModel = cachedAppointmentGridViewModels[identifier];
                return(LoadedAppointmentGrids.IndexOf(gridViewModel));
            }

            throw new ArgumentException("viewModel is not cached");
        }
コード例 #3
0
        private void RemoveGridViewModel(AggregateIdentifier identifier)
        {
            if (GridViewModelIsCached(identifier))
            {
                var gridViewModel = cachedAppointmentGridViewModels[identifier];
                cachedAppointmentGridViewModels.Remove(identifier);
                LoadedAppointmentGrids.Remove(gridViewModel);

                gridViewModel.Dispose();
            }
        }
コード例 #4
0
        public void Process(AsureDayIsLoaded message)
        {
            if (!cachedAppointmentGridViewModels.ContainsKey(new AggregateIdentifier(message.Day, message.MedicalPracticeId)))
            {
                cachedAppointmentGridViewModels.Add(new AggregateIdentifier(message.Day, message.MedicalPracticeId), null);

                medicalPracticeRepository.RequestPraticeVersion(
                    practiceVersion =>
                {
                    Application.Current.Dispatcher.Invoke(() =>
                    {
                        var identifier = new AggregateIdentifier(message.Day, message.MedicalPracticeId, practiceVersion);

                        appointmentGridViewModelBuilder.RequestBuild(
                            buildedViewModel =>
                        {
                            cachedAppointmentGridViewModels[identifier] = buildedViewModel;
                            LoadedAppointmentGrids.Add(buildedViewModel);

                            message.DayIsLoaded?.Invoke();
                        },
                            identifier,
                            errorCallback
                            );
                    });
                },
                    message.MedicalPracticeId,
                    message.Day,
                    errorCallback
                    );
            }
            else
            {
                message.DayIsLoaded?.Invoke();
            }
        }