コード例 #1
0
ファイル: AddressService.cs プロジェクト: sahvishal/matrix
        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);
        }