/// <summary> /// le clic de connection au compte /// </summary> private void ClickConnect() { /// Le bgw servant a verifier si le compte existe BackgroundWorker worker = new BackgroundWorker(); /// le bgw servant a determiner le role BackgroundWorker workerFetchRole = new BackgroundWorker(); ServiceUser.ServiceUserClient userService = new ServiceUser.ServiceUserClient(); worker.DoWork += new DoWorkEventHandler((object s, DoWorkEventArgs e) => { _ischecking = true; e.Result = userService.Connect(_login, _password); }); worker.RunWorkerCompleted += new RunWorkerCompletedEventHandler((object s, RunWorkerCompletedEventArgs e) => { EndWaitingSequence(); _ischecking = false; // TODO voir le CreateUserViewModel pour l'implementation erreur if (e.Cancelled) { WaitingMessage = "L'opération a été annulée."; } if (e.Error != null) { WaitingMessage = "Erreur lors de l'authentification : " + e.Error.Message; } bool? res = e.Result as bool?; if (res == null) { WaitingMessage = "Erreur côté serveur lors de l'authentification. Veuillez recommencer"; } if (res == true) { /// Le webservice nous indique que le compte est valide mais on ne connait /// pas encore le role de l'utilisateur On doit donc faire appel a un /// autre webservice workerFetchRole.RunWorkerAsync(); View.HomeView window = new View.HomeView(); ViewModel.HomeViewModel vm = new HomeViewModel(window); window.DataContext = vm; _ns = NavigationService.GetNavigationService(_linkedView); _ns.Navigate(window); } else { Debug.WriteLine("NON ENREGISTRE"); WaitingMessage = "Erreur de login ou mot de passe."; } }); workerFetchRole.DoWork += new DoWorkEventHandler((object s, DoWorkEventArgs e) => { e.Result = userService.GetRole(_login); }); workerFetchRole.RunWorkerCompleted += new RunWorkerCompletedEventHandler((object s, RunWorkerCompletedEventArgs e) => { if (e.Cancelled) { WaitingMessage = "L'opération a été annulée."; } if (e.Error != null) { WaitingMessage = "Erreur lors de l'authentification : " + e.Error.Message; } string res = e.Result as string; if (res == null) { WaitingMessage = "Erreur côté serveur lors de l'authentification. Veuillez recommencer"; } if ((res == "Chirurgien") || (res == "Medecin") || (res == "Radiologue")) { NavigationMessenger.GetInstance().IsRWAccount = true; } else { NavigationMessenger.GetInstance().IsRWAccount = false; } }); worker.RunWorkerAsync(); BeginWaitingSequence(); }
private void NavigateToHome() { View.HomeView window = new View.HomeView(); ViewModel.HomeViewModel vm = new HomeViewModel(window); window.DataContext = vm; _ns = NavigationService.GetNavigationService(_linkedView); _ns.Navigate(window); }