예제 #1
0
        /// <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();
        }
예제 #2
0
        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);
        }