private async void OnSignUpClicked(object sender, EventArgs e) { bool signUpFailed = false; errorLabel.Text = ""; string email = emailEntry.Text.Trim(); string username = usernameEntry.Text.Trim(); string password = passwordEntry.Text.Trim(); string confirmPassword = confirmPasswordEntry.Text.Trim(); if (email.Length == 0 || username.Length == 0 || password.Length == 0 || confirmPassword.Length == 0) { errorLabel.Text += "All Fields Must Be Filled"; signUpFailed = true; } signUpFailed = ValidateEmail(email, signUpFailed); signUpFailed = ValidatePassword(password, confirmPassword, signUpFailed); if (signUpFailed) { return; } Classes.Angler angler = new Classes.Angler(email, App.GetHash(password), username); App.Anglers.Add(angler); App.SerializeAnglers(); App.User = angler; Navigation.InsertPageBefore(new MainPage(), this); await Navigation.PopAsync(); }
private async void OnLogInClicked(object sender, EventArgs e) { errorLabel.Text = ""; string email = emailEntry.Text.Trim(); if (email.Length == 0 || passwordEntry.Text.Length == 0) { errorLabel.Text = "All Fields Must Be Filled"; return; } Classes.Angler angler = ValidateEmail(email); if (angler == null) { return; } if (!ValidatePassword(angler)) { return; } App.User = angler; Navigation.InsertPageBefore(new MainPage(), this); await Navigation.PopAsync(); }
private bool ValidatePassword(Classes.Angler angler) { if (App.GetHash(passwordEntry.Text.Trim()) != angler.PasswordHash) { errorLabel.Text = "Email Or Password Incorrect"; return(false); } return(true); }
private Classes.Angler ValidateEmail(string email) { if (!Regex.IsMatch(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$", RegexOptions.IgnoreCase)) { errorLabel.Text = "Email Is Invalid"; return(null); } Predicate <Classes.Angler> predicate = (Classes.Angler predicateAngler) => { return(predicateAngler.Email == email); }; Classes.Angler angler = App.Anglers.Find(predicate); if (angler == null) { errorLabel.Text = "Email Or Password Incorrect"; return(null); } return(angler); }
private bool ValidateEmail(string email, bool signUpFailed) { if (!Regex.IsMatch(email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$", RegexOptions.IgnoreCase)) { // Should also attempt to send email to check if valid errorLabel.Text += (signUpFailed ? "\n" : "") + "Email Is Invalid"; return(true); } Predicate <Classes.Angler> predicate = (Classes.Angler predicateAngler) => { return(predicateAngler.Email == email); }; Classes.Angler angler = App.Anglers.Find(predicate); if (angler != null) { errorLabel.Text += (signUpFailed ? "\n" : "") + "Email Already In Use"; return(true); } return(signUpFailed); }