/// <summary> /// To initialize the class members /// </summary> /// <param name="licenseNumber">The DL number</param> /// <param name="name">The name</param> /// <param name="address">The Address</param> /// <param name="dateOfBirth">The Date Of Birth</param> /// <param name="dateOfIssue">The Date Of Issue</param> /// <param name="category">The License Category</param> public Driver(string licenseNumber, string name, string address, string dateOfBirth, string dateOfIssue, string category) { if (!DataValidation.IsValid(licenseNumber, Patterns.DrivingLicenseNumber)) { throw new ArgumentException("Invalid Driver License Id"); } if (!DataValidation.IsValid(name, Patterns.CharecterWithSpace)) { throw new ArgumentException("Invalid Name"); } if (!DataValidation.IsValid(address, Patterns.CharecterDigitAndSpace)) { throw new ArgumentException("Invalid Address"); } if (!DataValidation.IsValid(dateOfBirth, Patterns.Date)) { throw new ArgumentException("Invalid DOB Formate"); } if (!DataValidation.IsValidAge(dateOfBirth)) { throw new ArgumentException("Invalid DOB Formate"); } if (!DataValidation.IsValid(dateOfIssue, Patterns.Date)) { throw new ArgumentException("Invalid DOI Formate"); } if (!DataValidation.IsNotFutureDate(dateOfIssue)) { throw new ArgumentException("Invalid DOI"); } if (!DataValidation.IsContain(category, Patterns.DrivingLicenseCategorys)) { throw new ArgumentException("License Category Is Not Found"); } _licenseNumber = licenseNumber; _name = name; _address = address; _dateOfBirth = dateOfBirth; _dateOfIssue = dateOfIssue; _category = category; }