Ejemplo n.º 1
0
 private bool PassPortValid()
 {
     foreach (var requiredPassPortKey in RequiredPassPortKeys)
     {
         if (!PassPortValues.TryGetValue(requiredPassPortKey.Key, out var value) || !requiredPassPortKey.Value.Invoke(value))
         {
             return(false);
         }
     }
     return(true);
 }
Ejemplo n.º 2
0
        public Passport(String rawData)
        {
            var keys   = KeyRegex.Matches(rawData).Select(x => x.Value).ToList();
            var values = ValueRegex.Matches(rawData).Select(x => x.Value).ToList();

            if (keys.Count() != values.Count())
            {
                throw new Exception("Key list length not equal value list length!");
            }

            PassPortValues = keys.Zip(values).ToDictionary(x => x.First, v => v.Second);

            var compStr = String.Join(' ', PassPortValues.Select(x => $"{x.Key}:{x.Value}"));

            if (rawData.StartsWith(compStr))
            {
                throw new Exception("Parsing error!");
            }

            IsValid = PassPortValid();
        }