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
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" };
|
|
}
|
|
}
|
|
}
|