示例#1
0
 public PeselData(IPeselDataControlSum sumCalculator, IPeselDataValidator validator)
 {
     _pesel         = Enumerable.Repeat(-1, 11).ToArray();
     _centuries     = new Century[3];
     _sumCalculator = sumCalculator;
     _validator     = validator;
 }
        public virtual ValidationResult Validate(string rawPesel, IPeselDataControlSum controlSumCalculator)
        {
            var result = new ValidationResult();

            int[] pesel   = rawPesel.Select(ch => int.Parse(ch.ToString())).ToArray();
            int   origSum = pesel[pesel.Length - 1];

            pesel[pesel.Length - 1] = -1;

            controlSumCalculator.CalculateControlSum(pesel);

            if (origSum != pesel[pesel.Length - 1])
            {
                result.Massages.Add(TXT.ValidationFailed);
            }

            if (!result.Massages.Any())
            {
                result.IsValid = true;
            }

            return(result);
        }