using System.Text.RegularExpressions;
public static void Main()
ValidateEmailAccount accountDetails = new ValidateEmailAccount();
bool validationStatus = accountDetails.VerifyEmailAccount("saravananashokan1@gmail.com","abcdeF1!");
Console.WriteLine(validationStatus.ToString());
public class ValidateEmailAccount
public bool VerifyEmailAccount(string eMail, string password)
if(this.ValidateMail(eMail) && this.ValidatePassword(password))
public bool ValidateMail(string mailAddress)
bool containsAtSign = mailAddress.Contains("@") && (this.GetAtCount(mailAddress) == 1);
bool vaildDomain = false;
vaildDomain = this.ValidateDomain(mailAddress.Split('@'));
return (containsAtSign && vaildDomain) ? true : false;
public int GetAtCount(string mailAddress)
foreach(var character in mailAddress)
public bool ValidateDomain(string[] splitMailAddress)
if(splitMailAddress[1].Equals("gmail.com") || splitMailAddress[1].Equals("yahoo.com"))
public bool ValidatePassword(string password)
var hasLowerChar = new Regex(@"[a-z]+");
var hasUpperChar = new Regex(@"[A-Z]+");
var hasNumber = new Regex(@"[0-9]+");
var hasSymbols = new Regex(@"[!@#$%^&*()_+=\[{\]};:<>|./?,-]");
foreach (char c in Password1)
if(Password1.Length < 8 )
else if(Password1.Length > 8)
else if (!hasLowerChar.IsMatch(Password1))
else if (!hasUpperChar.IsMatch(Password1))
else if (!hasNumber.IsMatch(Password1))
else if (!hasSymbols.IsMatch(Password1))