private AddressRM CreateAddressForContact(Commands.V1.Contact.Address.CreateForContact cmd) { Address address = Address.Create(_addresses++, cmd.IsActive, cmd.EndDate, AddressLine.Create(cmd.Address1), AddressLine.Create(cmd.Address2), AddressLine.Create(cmd.Address3), AddressLine.Create(cmd.Address4), cmd.IsPrimary, AddressTypeLookup.AddressTypes[cmd.AddressType], Attention.Create(cmd.Attention), City.Create(cmd.City), cmd.Comments, PostalCode.Create(cmd.PostalCode), StateCodeLookup.StateCodes[cmd.GeographicState]); if (_repository.AddressExistsForContact(address, cmd.ContactId)) { throw new InvalidOperationException($"Address already exists for contact {cmd.ContactId}"); } _repository.AddAddressForContact(address, cmd.ContactId); return(Conversions.GetAddressRM(address)); }