示例#1
0
        static void Main(string[] args)
        {
            int validPasswordCount = 0;

            string[] lines = System.IO.File.ReadAllLines("./input1.txt");
            string   submissionConstructionString = "";
            List <CustomsSubmision> submissions   = new List <CustomsSubmision>();

            foreach (string line in lines)
            {
                if (line == "")
                {
                    CustomsSubmision submission = new CustomsSubmision(submissionConstructionString);
                    submissions.Add(submission);
                    if (Validator.ComplexSubmissionIsValid(submission))
                    {
                        validPasswordCount++;
                    }
                    submissionConstructionString = "";
                }
                else
                {
                    submissionConstructionString = submissionConstructionString + " " + line;
                }
            }

            Console.WriteLine($"Valid Count: {validPasswordCount}");
        }
示例#2
0
    public static bool ComplexSubmissionIsValid(CustomsSubmision submission)
    {
        bool birthYearValid      = BirthyearIsValid(submission);
        bool issueYearValid      = IssueYearIsValid(submission);
        bool expirationYearValid = ExpirationYearIsValid(submission);
        bool heightValid         = HeightIsValid(submission);
        bool hairColorValid      = HairColorIsValid(submission);
        bool eyeColorValid       = EyeColorIsValid(submission);
        bool passportIdValid     = PassportIdIsValid(submission);

        if (
            birthYearValid &&
            issueYearValid &&
            expirationYearValid &&
            heightValid &&
            hairColorValid &&
            eyeColorValid &&
            passportIdValid
            )
        {
            return(true);
        }
        else
        {
            return(false);
        }
    }
示例#3
0
    private static bool HeightIsValid(CustomsSubmision submission)
    {
        bool   isValid      = false;
        string heightString = submission.height;

        try
        {
            if (heightString.Contains("cm"))
            {
                heightString = heightString.Replace("cm", "");
                int heightInt = int.Parse(heightString);

                isValid = (heightInt >= 150 && heightInt <= 193);
            }
            else if (heightString.Contains("in"))
            {
                heightString = heightString.Replace("in", "");
                int heightInt = int.Parse(heightString);

                isValid = (heightInt >= 59 && heightInt <= 76);
            }
        }
        catch (Exception e)
        {
            Console.WriteLine(e);
        }
        return(isValid);
    }
示例#4
0
    private static bool EyeColorIsValid(CustomsSubmision submission)
    {
        List <string> validEyeColors = new List <string> {
            "amb", "blu", "brn", "gry", "grn", "hzl", "oth"
        };

        return(validEyeColors.Contains(submission.eyeColor));
    }
示例#5
0
    private static bool HairColorIsValid(CustomsSubmision submission)
    {
        string hairColor = submission.hairColor;

        if (!String.IsNullOrEmpty(hairColor) && hairColor[0] == '#')
        {
            return(hairColor.Length == 7);
        }

        return(false);
    }
示例#6
0
 private static bool ExpirationYearIsValid(CustomsSubmision submission)
 {
     try
     {
         int expirationYearAsInt = int.Parse(submission.expirationYear);
         return(expirationYearAsInt >= 2020 && expirationYearAsInt <= 2030);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
示例#7
0
 private static bool IssueYearIsValid(CustomsSubmision submission)
 {
     try
     {
         int issueYearAsInt = int.Parse(submission.issueYear);
         return(issueYearAsInt >= 2010 && issueYearAsInt <= 2020);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
示例#8
0
 private static bool BirthyearIsValid(CustomsSubmision submission)
 {
     try
     {
         int birthYearAsInt = int.Parse(submission.birthyear);
         return(birthYearAsInt >= 1920 && birthYearAsInt <= 2002);
     }
     catch (Exception e)
     {
         return(false);
     }
 }
示例#9
0
    private static bool PassportIdIsValid(CustomsSubmision submission)
    {
        string passportId = submission.passportId;

        if (passportId.Length == 9)
        {
            try
            {
                int.Parse(passportId);
                return(true);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }
        return(false);
    }
示例#10
0
 public static bool SimpleSubmissionIsValid(CustomsSubmision submission)
 {
     if (
         !String.IsNullOrEmpty(submission.birthyear) &&
         !String.IsNullOrEmpty(submission.issueYear) &&
         !String.IsNullOrEmpty(submission.expirationYear) &&
         !String.IsNullOrEmpty(submission.height) &&
         !String.IsNullOrEmpty(submission.hairColor) &&
         !String.IsNullOrEmpty(submission.eyeColor) &&
         !String.IsNullOrEmpty(submission.passportId)
         )
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }