예제 #1
0
        private bool Validate(string code)
        {
            if (!new FiscalCodeValidator().Validate(code))
            {
                return(false);
            }

            var tokens =
                code
                .Token(FiscalCodeTokens.Lastname, 3)
                .Token(FiscalCodeTokens.Firstname, 3)
                .Token(FiscalCodeTokens.Year, 2)
                .Token(FiscalCodeTokens.Month, 1)
                .Token(FiscalCodeTokens.Day, 2)
                .Token(FiscalCodeTokens.Area, 4)
                .Token(FiscalCodeTokens.Control, 1)
                .Tokens;

            LastName  = new LastNameCode(tokens[FiscalCodeTokens.Lastname]).ToString();
            FirstName = new FirstNameCode(tokens[FiscalCodeTokens.Firstname]).ToString();
            AssignBirthDateAndSex(tokens);
            Area    = new AreaCode(tokens[FiscalCodeTokens.Area]).ToString();
            Control = ControlCode.GetControlCode(code.Substring(0, 15)).ToInvariant();

            return(true);
        }
예제 #2
0
 public ControlCode(
     LastNameCode lastNameCode,
     FirstNameCode firstNameCode,
     YearCode yearCode,
     MonthCode monthCode,
     DayCode dayCode,
     AreaCode areaCode)
 {
     partialCode = string.Concat(lastNameCode, firstNameCode, yearCode, monthCode, dayCode, areaCode);
 }
예제 #3
0
		internal ControlCode(
			LastNameCode lastNameCode,
			FirstNameCode firstNameCode,
			YearCode yearCode,
			MonthCode monthCode,
			DayCode dayCode,
			AreaCode areaCode)
		{
			partialCode = string.Concat(lastNameCode, firstNameCode, yearCode, monthCode, dayCode, areaCode);
		}
예제 #4
0
		internal FiscalCode(
			LastNameCode lastNameCode,
			FirstNameCode firstNameCode,
			YearCode yearCode,
			MonthCode monthCode,
			DayCode dayCode,
			AreaCode areaCode,
			ControlCode controlCode)
			: this(
				lastNameCode.ToString(),
				firstNameCode.ToString(),
				yearCode.ToString(),
				monthCode.ToString(),
				dayCode.ToString(),
				areaCode.ToString(),
				controlCode.ToString())
		{
		}
예제 #5
0
 public FiscalCode(
     LastNameCode lastNameCode,
     FirstNameCode firstNameCode,
     YearCode yearCode,
     MonthCode monthCode,
     DayCode dayCode,
     AreaCode areaCode,
     ControlCode controlCode)
     : this(
         lastNameCode.ToString(),
         firstNameCode.ToString(),
         yearCode.ToString(),
         monthCode.ToString(),
         dayCode.ToString(),
         areaCode.ToString(),
         controlCode.ToString())
 {
 }
예제 #6
0
        public FiscalCode Calculate(NaturalPerson naturalPerson, AreaCode areaCode)
        {
            var lastName = new LastNameCode(naturalPerson.LastName.Replace(" ", null));

            var firstName = new FirstNameCode(naturalPerson.FirstName.Replace(" ", null));

            var year = new YearCode(naturalPerson.BirthDate);

            var month = new MonthCode(naturalPerson.BirthDate);

            var day = new DayCode(naturalPerson.BirthDate, naturalPerson.Sex);

            var control = new ControlCode(lastName, firstName, year, month, day, areaCode);

            var fiscalCode = new FiscalCode(lastName, firstName, year, month, day, areaCode, control);

            return(fiscalCode);
        }
예제 #7
0
		public FiscalCode Calculate(NaturalPerson naturalPerson, AreaCode areaCode)
		{
			Enforce.Argument(() => areaCode);

			var lastName = new LastNameCode(naturalPerson.LastName.Replace(" ", null));

			var firstName = new FirstNameCode(naturalPerson.FirstName.Replace(" ", null));

			var year = new YearCode(naturalPerson.BirthDate);

			var month = new MonthCode(naturalPerson.BirthDate);

			var day = new DayCode(naturalPerson.BirthDate, naturalPerson.Sex);

			var control = new ControlCode(lastName, firstName, year, month, day, areaCode);

			var fiscalCode = new FiscalCode(lastName, firstName, year, month, day, areaCode, control);

			return fiscalCode;
		}