using FluentValidation; using FluentValidation.Validators; namespace InternshipSystem.Core { public class BranchOffice { public BranchOffice() { } private BranchOffice(BranchAddress address, long provider) { Address = address; Provider = provider; } public long Id { get; set; } public BranchAddress Address { get; set; } public long Provider { get; set; } public static BranchOffice CreateBranch(string country, string city, string postalCode, string street, string building, long provider = 0) { var address = new BranchAddress { Building = building, City = city, Country = country, Street = street, PostalCode = postalCode }; return new BranchOffice(address, provider); } public class Validator : AbstractValidator { public Validator() { RuleFor(x => x.Address) .SetValidator(new BranchAddress.Validator()); } } } }