private async void RegisterUser() { var success = false; try { if (!Password.Equals(CheckPassword)) { throw new ArgumentException("Passwords do not match"); } var response = await connectionHandler.Register(Email, Password, Name, Birthday.ToString("MM/dd/yyyy"), Gender); var responseBody = await response.Content.ReadAsStringAsync(); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception("Response was not OK. Aborting. Reason: " + responseBody); } var token = JsonConvert.DeserializeObject <Response>(await response.Content.ReadAsStringAsync()); var isActive = connectionHandler.CheckTokenValidity(token.token); if (isActive) { connectionHandler.SaveUsagePrivileges(token.token); success = true; } } catch (ArgumentException e) { Log.Error("Password mismatch!", e); dialogService.showAlert("Error", "Passwords do not match!", "OK"); } catch (Exception e) { Log.Error("Error while logging in!", e); } finally { Password = string.Empty; OnPropertyChanged(nameof(Password)); CheckPassword = string.Empty; OnPropertyChanged(nameof(CheckPassword)); } if (success) { Log.Debug("Logged in successfully!"); Email = string.Empty; OnPropertyChanged(nameof(Email)); dialogService.showRegisteredDialog(); RegisterSuccessful?.Invoke(this, EventArgs.Empty); } }
private async void StartLoginProcess() { var success = false; try { var response = await _connectionHandler.Login(Username, Password); var responseBody = await response.Content.ReadAsStringAsync(); if (response.StatusCode != HttpStatusCode.OK) { throw new Exception("Response was not OK. Aborting. Reason: " + responseBody); } var token = JsonConvert.DeserializeObject <Response>(await response.Content.ReadAsStringAsync()); var isActive = _connectionHandler.CheckTokenValidity(token.token); if (isActive) { _connectionHandler.SaveUsagePrivileges(token.token); dialogService.ShowLoginToast(); success = true; } } catch (Exception e) { Log.Error("Error while logging in!", e); } finally { Password = string.Empty; OnPropertyChanged(nameof(Password)); } if (success) { Log.Debug("Logged in successfully!"); Username = string.Empty; OnPropertyChanged(nameof(Username)); LoginSuccessful?.Invoke(this, EventArgs.Empty); } }