You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

63 lines
2.2 KiB

using System;
namespace Business.KftcPasswordRule
{
/// <summary>
/// </summary>
public class DboValidationRule : PasswordRule
{
/// <summary>
/// </summary>
/// <param name="model"></param>
public PasswordValidationResult Validate(ValidationModel model)
{
string[] dobArr = null;
string dateOfBirth = "";
if (model.IdType.ToLower() == "passport" || model.IdType.Trim().Equals("10997"))
{
dobArr = model.Dob.Split('/');
string mm = dobArr[0], dd = dobArr[1];
if (dobArr[0].Length == 1)
{
mm = "0" + mm;
}
if (dobArr[1].Length == 1)
{
dd = "0" + dd;
}
dateOfBirth = dobArr[2].Substring(0, 4) + mm + dd;
}
else
{
dateOfBirth = model.IdNumber.Substring(0, 6);
string yy = "19" + dateOfBirth.Substring(0, 2);
int nowYear = DateTime.Now.Year;
if ((nowYear - Convert.ToInt16(yy)) > 80)
{
yy = "20" + dateOfBirth.Substring(0, 2);
}
dateOfBirth = yy + dateOfBirth.Substring(2, 4);
}
string dateOfBirth1 = dateOfBirth.Substring(0, 4);
string dateOfBirth2 = dateOfBirth.Substring(2, 6);
string dateOfBirth3 = dateOfBirth.Substring(4, 4);
if (model.Password.Contains(dateOfBirth1))
{
return new PasswordValidationResult { IsValid = false, Message = "Password can not be same as DOB!" };
}
if (model.Password.Contains(dateOfBirth2))
{
return new PasswordValidationResult { IsValid = false, Message = "Password can not be same as DOB!" };
}
if (model.Password.Contains(dateOfBirth3))
{
return new PasswordValidationResult { IsValid = false, Message = "Password can not be same as DOB!" };
}
return new PasswordValidationResult { IsValid = true, Message = "valid password" };
}
}
}