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 ); } }
private int GetGridIndex(AggregateIdentifier identifier) { if (GridViewModelIsCached(identifier)) { var gridViewModel = cachedAppointmentGridViewModels[identifier]; return(LoadedAppointmentGrids.IndexOf(gridViewModel)); } throw new ArgumentException("viewModel is not cached"); }
private void RemoveGridViewModel(AggregateIdentifier identifier) { if (GridViewModelIsCached(identifier)) { var gridViewModel = cachedAppointmentGridViewModels[identifier]; cachedAppointmentGridViewModels.Remove(identifier); LoadedAppointmentGrids.Remove(gridViewModel); gridViewModel.Dispose(); } }
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(); } }