public AddressEntity Create(AddressEntity entity)
		{
			using (IDatabaseProvider provider = ProviderFactory.GetProvider(_connectionStringName))
			{
				return provider.Insert<AddressEntity>(entity);
			}
		}
		public AddressEntity Update(AddressEntity entity)
		{
			using (IDatabaseProvider provider = ProviderFactory.GetProvider(_connectionStringName))
			{
				AddressEntity entityToUpdate = Read(entity.Id);
				if (entityToUpdate == null)
					throw new DataAccessException("Address not found"); //  This should not happen seeing that validation should check.

				entityToUpdate = UpdateProperties(entity, entityToUpdate);

				provider.Update<AddressEntity>(entityToUpdate);

				return entityToUpdate;
			}
		}
		public static AddressEntity GetItemForInsert()
		{
			AddressEntity entity = new AddressEntity()
			{
				AddressTypeId = ContactDetailsHelpers.CreateAddressType().Id,
				EntityId = ContactDetailsHelpers.CreateEntity().Id,
				Street = "Bonga",
				StreetNumber = "6",
				StreetNumberAddition = "F",
				PostalCode = "3991TS",
				City = "Houten",
				CountryCode = "NL",
				Preferred = true,
				DeletedDate = DateTime.MinValue
			};

			return entity;
		}
		private AddressEntity UpdateProperties(AddressEntity entity, AddressEntity entityToUpdate)
		{
			entityToUpdate.AddressTypeId = entity.AddressTypeId;
			entityToUpdate.EntityId = entity.EntityId;
			entityToUpdate.Street = entity.Street;
			entityToUpdate.StreetNumber = entity.StreetNumber;
			entityToUpdate.StreetNumberAddition = entity.StreetNumberAddition;
			entityToUpdate.PostalCode = entity.PostalCode;
			entityToUpdate.City = entity.City;
			entityToUpdate.CountryCode = entity.CountryCode;
			entityToUpdate.Preferred = entity.Preferred;
			entityToUpdate.DeletedDate = entity.DeletedDate;

			return entityToUpdate;
		}
		public AddressEntity Delete(AddressEntity entity)
		{
			entity.DeletedDate = DateTime.UtcNow;

			return Update(entity);
		}
		private static void CreateAddresses()
		{
			AddressRepository repository = new AddressRepository(ConfigSettings.MySqlDatabaseConnectionName);

			AddressEntity entity = new AddressEntity()
			{
				AddressTypeId = _addressTypeEntities[0].Id,
				EntityId = _entityEntities[0].Id,
				Preferred = true,
				Street = "De haag",
				StreetNumber = "12",
				StreetNumberAddition = "",
				PostalCode = "3991TW",
				City = "Houten",
				CountryCode = "NL",
				DeletedDate = DateTime.MinValue
			};
			AddressEntity mEntity = new AddressEntity()
			{
				AddressTypeId = _addressTypeEntities[1].Id,
				EntityId = _entityEntities[1].Id,
				Preferred = true,
				Street = "De haagd",
				StreetNumber = "122",
				StreetNumberAddition = "d",
				PostalCode = "3991RF",
				City = "Utrecht",
				CountryCode = "NL",
				DeletedDate = DateTime.MinValue
			};

			entity = repository.Create(entity);
			mEntity = repository.Create(mEntity);

			_addressEntities.Add(entity);
			_addressEntities.Add(mEntity);
		}