/// <summary> /// Initializes a new instance of the <see cref="PatientSearchViewModel"/> class. /// </summary> /// <param name="userDialogService">The user dialog service.</param> /// <param name="asyncRequestDispatcherFactory">The async request dispatcher factory.</param> /// <param name="accessControlManager">The access control manager.</param> /// <param name="navigationService">The navigation service.</param> /// <param name="commandFactory">The command factory.</param> public PatientSearchViewModel( IUserDialogService userDialogService, IAsyncRequestDispatcherFactory asyncRequestDispatcherFactory, IAccessControlManager accessControlManager, INavigationService navigationService, ICommandFactory commandFactory ) : base(accessControlManager, commandFactory, new PatientAdvancedSearchCriteria()) { _asyncRequestDispatcherFactory = asyncRequestDispatcherFactory; _navigationService = navigationService; _userDialogService = userDialogService; var requestDispatcher = _asyncRequestDispatcherFactory.CreateAsyncRequestDispatcher(); requestDispatcher .AddLookupValuesRequest("PatientGender") .AddLookupValuesRequest("StateProvince") .AddLookupValuesRequest("PatientIdentifierType") .AddLookupValuesRequest("Suffix"); IsLoading = true; requestDispatcher.ProcessRequests(LookupValueRequestDispatcherCompleted, HandleRequestDispatcherException); var advancedSearchCriteriaPropertyChangedEvent = from evt in Observable.FromEventPattern <PropertyChangedEventArgs> (_advancedSearchCriteria, "PropertyChanged") select evt.ToString(); advancedSearchCriteriaPropertyChangedEvent .ObserveOnDispatcher().Subscribe( arg => { if (arg == PropertyUtil.ExtractPropertyName(() => AdvancedSearchCriteria.IdentifierTypeToSearch)) { RaisePropertyChanged(() => IsIdentifierTypeToSearchNotNull); } } ); ApplyContextChanges = true; AddNewPatient = new AddNewPatient(); }
private void CreatePatientRequestDispatcherCompleted(ReceivedResponses receivedResponses) { IsLoading = false; var response = receivedResponses.Get <CreateNewPatientResponse> (); var validationErrors = response.DataTransferObject.DataErrorInfoCollection.ToList(); if (validationErrors.Count > 0) { var errors = new StringBuilder(); errors.AppendLine("The following errors occurred: "); foreach (var validationError in validationErrors) { errors.AppendLine(validationError.Message); } _userDialogService.ShowDialog(errors.ToString(), "Errors", UserDialogServiceOptions.Ok); } else { AddNewState = AddNewState.Successful; AddNewPatient.CleanUpAllFields(); _navigationService.Navigate( WorkspacesRegion, PatientWorkspaceView, "SubViewPassThrough", new[] { new KeyValuePair <string, string> ("PatientKey", response.PatientDto.Key.ToString()), new KeyValuePair <string, string> ("FullName", response.PatientDto.PatientProfile.FullName), new KeyValuePair <string, string> ("SubViewName", "PatientEditorView"), new KeyValuePair <string, string> ("IsCreate", true.ToString()) }); } }
/// <summary> /// Initializes a new instance of the <see cref="PatientSearchViewModel"/> class. /// </summary> /// <param name="userDialogService">The user dialog service.</param> /// <param name="asyncRequestDispatcherFactory">The async request dispatcher factory.</param> /// <param name="accessControlManager">The access control manager.</param> /// <param name="navigationService">The navigation service.</param> /// <param name="commandFactory">The command factory.</param> public PatientSearchViewModel( IUserDialogService userDialogService, IAsyncRequestDispatcherFactory asyncRequestDispatcherFactory, IAccessControlManager accessControlManager, INavigationService navigationService, ICommandFactory commandFactory ) : base(accessControlManager, commandFactory, new PatientAdvancedSearchCriteria ()) { _asyncRequestDispatcherFactory = asyncRequestDispatcherFactory; _navigationService = navigationService; _userDialogService = userDialogService; var requestDispatcher = _asyncRequestDispatcherFactory.CreateAsyncRequestDispatcher (); requestDispatcher .AddLookupValuesRequest ( "PatientGender" ) .AddLookupValuesRequest ( "StateProvince" ) .AddLookupValuesRequest ( "PatientIdentifierType" ) .AddLookupValuesRequest ( "Suffix" ); IsLoading = true; requestDispatcher.ProcessRequests ( LookupValueRequestDispatcherCompleted, HandleRequestDispatcherException ); var advancedSearchCriteriaPropertyChangedEvent = from evt in Observable.FromEventPattern<PropertyChangedEventArgs> ( _advancedSearchCriteria, "PropertyChanged" ) select evt.ToString (); advancedSearchCriteriaPropertyChangedEvent .ObserveOnDispatcher().Subscribe ( arg => { if ( arg == PropertyUtil.ExtractPropertyName ( () => AdvancedSearchCriteria.IdentifierTypeToSearch ) ) { RaisePropertyChanged ( () => IsIdentifierTypeToSearchNotNull ); } } ); ApplyContextChanges = true; AddNewPatient = new AddNewPatient (); }