private async void Login() { if (string.IsNullOrEmpty(this.Email)) { await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.EmailValidation, Languages.Accept); return; } if (string.IsNullOrEmpty(this.Password)) { await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.PasswordValidation, Languages.Accept); return; } this.IsRunning = true; this.IsEnabled = false; var connection = await this.apiService.CheckConnection(); if (!connection.IsSuccess) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( Languages.Error, connection.Message, Languages.Accept); return; } var apiSecurity = Application.Current.Resources["APISecurity"].ToString(); var token = await this.apiService.GetToken( apiSecurity, this.Email, this.Password); if (token == null) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.SomethingWrong, Languages.Accept); return; } if (string.IsNullOrEmpty(token.AccessToken)) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.PasswordError, Languages.Accept); this.Password = string.Empty; return; } var user = await this.apiService.GetUserByEmail( apiSecurity, "/api", "/Users/GetUserByEmail", token.TokenType, token.AccessToken, this.Email); user.Password = this.Password; var userLocal = Transform.ToUserLocal(user); var mainViewModel = MainViewModel.GetInstance(); mainViewModel.Token = token; mainViewModel.User = userLocal; Settings.IsRemembered = this.IsRemembered.ToString(); this.dataService.DeleteAllAndInsert(userLocal); this.dataService.DeleteAllAndInsert(token); //mainViewModel.RegisterDevice(); mainViewModel.Matches = new MatchesViewModel(); Application.Current.MainPage = new MasterPage(); this.IsRunning = false; this.IsEnabled = true; this.Email = string.Empty; this.Password = string.Empty; }
private async void ChangePassword() { if (string.IsNullOrEmpty(this.CurrentPassword)) { await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.PasswordValidation, Languages.Accept); return; } if (this.CurrentPassword.Length < 6) { await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.PasswordValidation2, Languages.Accept); return; } if (this.CurrentPassword != MainViewModel.GetInstance().User.Password) { await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.PasswordError, Languages.Accept); return; } if (string.IsNullOrEmpty(this.NewPassword)) { await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.PasswordValidation, Languages.Accept); return; } if (this.NewPassword.Length < 6) { await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.PasswordValidation2, Languages.Accept); return; } if (string.IsNullOrEmpty(this.Confirm)) { await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.ConfirmValidation, Languages.Accept); return; } if (this.NewPassword != this.Confirm) { await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.ConfirmValidation2, Languages.Accept); return; } this.IsRunning = true; this.IsEnabled = false; var connection = await this.apiService.CheckConnection(); if (!connection.IsSuccess) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( Languages.Error, connection.Message, Languages.Accept); return; } var request = new ChangePasswordRequest { CurrentPassword = this.CurrentPassword, Email = MainViewModel.GetInstance().User.Email, NewPassword = this.NewPassword, }; var apiSecurity = Application.Current.Resources["APISecurity"].ToString(); var response = await this.apiService.ChangePassword( apiSecurity, "/api", "/Users/ChangePassword", MainViewModel.GetInstance().Token.TokenType, MainViewModel.GetInstance().Token.AccessToken, request); if (!response.IsSuccess) { this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( Languages.Error, Languages.ErrorChangingPassword, Languages.Accept); return; } MainViewModel.GetInstance().User.Password = this.NewPassword; this.dataService.Update(MainViewModel.GetInstance().User); this.IsRunning = false; this.IsEnabled = true; await Application.Current.MainPage.DisplayAlert( Languages.ConfirmLabel, Languages.ChangePasswordConfirm, Languages.Accept); await App.Navigator.PopAsync(); }