Example #1
0
        private bool FinalCheck(PassportData input)
        {
            bool result = false;

            if (!string.IsNullOrEmpty(input.PersonalNumber) && !string.IsNullOrEmpty(PassportNum) && !string.IsNullOrEmpty(DOB) && !string.IsNullOrEmpty(ExpiredDate))
            {
                string personalNum         = input.PersonalNumber.PadRight(14, '<');
                int    chkDigitPersonalNum = CheckDigit(personalNum);
                int    chkFinalDigit       = CheckDigit(string.Format("{0}{1}{2}{3}{4}", PassportNum, DOB, ExpiredDate, personalNum, chkDigitPersonalNum.ToString()));

                string finalDigit = string.Format("{0}{1}{2}{3}{4}{5}{6}{7}", PassportNum, input.Nationality, DOB, input.Gender, ExpiredDate, personalNum, chkDigitPersonalNum.ToString(), chkFinalDigit.ToString());

                result = input.MRZLineTwo == finalDigit ? true : false;
            }

            return(result);
        }
Example #2
0
        public ValidationResult Validate(PassportData input)
        {
            //Add your core validation logic here
            var result = new ValidationResult
            {
                IsValidPassportNumber      = true,
                IsValidDateofBirthDigit    = ValidateDateDetails(input.DateOfBirth),
                IsValidPassportExpiredDate = ValidateDateDetails(input.ExpiryDate),
                IsValidPersonalNumber      = ValidateDetails(input.PersonalNumber),
                IsValidGender                    = ValidateGenderDetails(input.Gender),
                IsValidNationalityCode           = ValidateDetails(input.Nationality),
                IsValidDateofBirthCrossCheck     = CrossCheckDOB(input.MRZLineTwo, input.DateOfBirth),
                IsValidPassportExpiredCrossCheck = CrossCheckExpired(input.MRZLineTwo, input.ExpiryDate),
                IsValidPassportNumberCrossCheck  = CrossCheck(input.MRZLineTwo, input.PassportNumber),
                IsValidFinalCheck                = FinalCheck(input),
            };

            return(result);
        }