AyCode.Core/AyCode.Core/Consts/AcValidate.cs

90 lines
3.6 KiB
C#

using AyCode.Utils.Extensions;
using System.Text.RegularExpressions;
using AyCode.Core.Extensions;
namespace AyCode.Core.Consts
{
public static class AcValidate
{
public static bool IsValidEmailAndPasswordFormat(string? email, string? password, out AcErrorCode acErrorCode)
{
return IsValidEmailFormat(email, out acErrorCode) && IsValidPasswordFormat(password, out acErrorCode);
}
public static bool IsValidUserNameAndPasswordFormat(string username, string password, out AcErrorCode acErrorCode)
{
return IsValidUserNameFormat(username, out acErrorCode) && IsValidPasswordFormat(password, out acErrorCode);
}
public static bool IsValidUserNameFormat(string userName, out AcErrorCode acErrorCode)
{
acErrorCode = AcErrorCode.Unset;
var isValid = !userName.IsNullOrWhiteSpace() && userName.Length is >= AcConst.MinUserNameLength and <= AcConst.MaxUserNameLength && userName.Trim() == userName;
if (!isValid) acErrorCode = AcErrorCode.UserNameIsTooShort;
return isValid;
}
public static bool IsValidPlayerNameFormat(string playerName, out AcErrorCode acErrorCode)
{
acErrorCode = AcErrorCode.Unset;
var isValid = !playerName.IsNullOrWhiteSpace() && playerName.Length is >= AcConst.MinPlayerNameLength and <= AcConst.MaxPlayerNameLength && playerName.Trim() == playerName;
if (!isValid) acErrorCode = AcErrorCode.PlayerNameIsTooShort;
return isValid;
}
public static bool IsValidPasswordFormat(string? password, out AcErrorCode acErrorCode)
{
acErrorCode = AcErrorCode.Unset;
var isValid = !string.IsNullOrWhiteSpace(password) && password.Length is >= AcConst.MinPasswordLength and <= AcConst.MaxPasswordLength;
if (!isValid) acErrorCode = AcErrorCode.PasswordIsTooShort;
return isValid;
}
public static bool IsValidEmailFormat(string? email, out AcErrorCode acErrorCode)
{
acErrorCode = AcErrorCode.Unset;
//a@a.a -> length == 5
//var isValid = !email.IsNullOrWhiteSpace() && email.Length >= 5 && email.Contains('@') && email.Contains('.') && !email.Contains(' ');
var isValid = !string.IsNullOrWhiteSpace(email) && AcRegExpression.EmailRegex().IsMatch(email);
if (!isValid) acErrorCode = AcErrorCode.EmailFormatIsNotValid;
return isValid;
}
public static bool IsValidPhoneNumberFormat(string phoneNumber, out AcErrorCode acErrorCode)
{
acErrorCode = AcErrorCode.Unset;
var isValid = AcRegExpression.PhoneNumberRegex().IsMatch(phoneNumber);
if (!isValid) acErrorCode = AcErrorCode.PhoneNumberFormatIsNotValid;
return isValid;
}
public static bool IsValidUserTokenFormat(string verificationToken, out AcErrorCode acErrorCode)
{
acErrorCode = AcErrorCode.Unset;
var isValid = !verificationToken.IsNullOrWhiteSpace() && verificationToken.Length is >= AcConst.MinUserTokenLength and <= AcConst.MaxUserTokenLength;
if (!isValid) acErrorCode = AcErrorCode.UserTokenIsNotValid;
return isValid;
}
public static bool IsValidDomain(string domainName)
{
var suffixes = string.Join('|', AcConst.AvailableDomainSuffixes);
var regexp = new Regex("^[a-z0-9]{3,90}\\.(" + suffixes + ")$"); // a pattern-t vegyük ki konstansba a dll-re - B.
var match = regexp.IsMatch(domainName);
return match;
}
}
}