private Address GetCompleteAddressforUnValidatable(Address addressToSanitize) { State state; if (addressToSanitize.StateId < 1) { state = _stateRepository.GetState(addressToSanitize.State); addressToSanitize.StateId = state.Id; } else { state = _stateRepository.GetState(addressToSanitize.StateId); } if (addressToSanitize.CityId < 1) { var city = _cityRepository.GetCityByStateAndName(addressToSanitize.StateId, addressToSanitize.City.Trim()); if (city == null) { city = _cityRepository.Save(new City() { Name = addressToSanitize.City.Trim(), StateId = state.Id }); } addressToSanitize.CityId = city.Id; } if (addressToSanitize.ZipCode.Id < 1) { var zips = _zipCodeRepository.GetZipCodeForCity(addressToSanitize.CityId); if (zips != null && zips.Count > 0) { var zip = zips.Where(z => z.Zip == addressToSanitize.ZipCode.Zip).SingleOrDefault(); if (zip != null) { addressToSanitize.ZipCode.Id = zip.Id; } else { addressToSanitize.ZipCode = _zipCodeRepository.Save(new ZipCode() { CityId = addressToSanitize.CityId, Zip = addressToSanitize.ZipCode.Zip }); } } else { addressToSanitize.ZipCode = _zipCodeRepository.Save(new ZipCode() { CityId = addressToSanitize.CityId, Zip = addressToSanitize.ZipCode.Zip }); } } return(addressToSanitize); }