private AddressRM CreateAddressForAssociate(Commands.V1.Associate.Address.CreateForAssociate 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.AddressExistsForAssociate(address, cmd.AssociateId)) { throw new InvalidOperationException($"Address already exists for Operating Context {cmd.AssociateId}"); } _repository.AddAddressForAssociate(address, cmd.AssociateId); return(Conversions.GetAddressRM(address)); }