using System.Text.RegularExpressions;
using Blazorise;
using Microsoft.AspNetCore.Components.Web;
namespace FoodsharingSiegen.Server.Pages
{
///
/// The login class (a. beging, 11.04.2022)
///
public partial class Login
{
#region Public Properties
///
/// Gets or sets the value of the is valid mail (ab)
///
public ValidationStatus IsValidMail { get; set; }
///
/// Gets or sets the value of the is valid password (ab)
///
public ValidationStatus IsValidPassword { get; set; }
#endregion
#region Private Properties
///
/// Gets or sets the value of the mailaddress (ab)
///
private string? Mailaddress { get; set; }
///
/// Gets or sets the value of the password (ab)
///
private string? Password { get; set; }
#endregion
#region Private Method PerformLogin
///
/// Performs the login (a. beging, 11.04.2022)
///
private async Task PerformLogin()
{
//Todo Eingaben Validieren [04.04.22 - Andre Beging]
if (string.IsNullOrWhiteSpace(Mailaddress) || string.IsNullOrWhiteSpace(Password))
{
Mailaddress = string.Empty;
Password = string.Empty;
return;
}
var loginR = await AuthService.Login(Mailaddress, Password);
if (loginR.Success)
{
NavigationManager.NavigateTo("/", true);
}
}
#endregion
#region Private Method TextEdit_KeyUp
///
/// Texts the edit key up using the specified arg (a. beging, 11.04.2022)
///
/// The arg
private async Task TextEdit_KeyUp(KeyboardEventArgs arg)
{
if (arg.Key == "Enter") await PerformLogin();
}
#endregion
#region Private Method ValidateMail
///
/// Validates the mail using the specified args (a. beging, 11.04.2022)
///
/// The args
private void ValidateMail(ValidatorEventArgs args)
{
var email = Convert.ToString(args.Value);
if (string.IsNullOrWhiteSpace(email))
{
args.Status = ValidationStatus.None;
return;
}
var isMatch = Regex.IsMatch(email, "^[A-Z0-9._%+-]+@[A-Z0-9.-]+\\.[A-Z]{2,6}$", RegexOptions.IgnoreCase);
args.Status = isMatch ? ValidationStatus.Success : ValidationStatus.Error;
}
#endregion
#region Private Method ValidatePassword
///
/// Validates the password using the specified args (a. beging, 11.04.2022)
///
/// The args
private void ValidatePassword(ValidatorEventArgs args)
{
var password = Convert.ToString(args.Value);
if (string.IsNullOrWhiteSpace(password))
{
args.Status = ValidationStatus.None;
return;
}
var isValid = password.Length > 3;
args.Status = isValid ? ValidationStatus.Success : ValidationStatus.Error;
}
#endregion
}
}