/// <summary> /// Gets the zip codes. /// </summary> /// <param name="country">The country.</param> /// <param name="state">The state.</param> /// <param name="district">The district.</param> /// <param name="city">The city.</param> /// <returns></returns> public override List <string> GetZipCodes(string country, string state, string district, string city) { try { string CacheKey = string.Format("{0}{1}_{2}_{3}", "ZIPS_UA_", state, district, city); const int STREET_HU_CACHE_MINUTES = 60; List <string> lsZips = HttpRuntime.Cache[CacheKey] as List <string>; if (lsZips != null) { return(lsZips); } var proxy = ServiceClientProvider.GetShippingServiceProxy(); var zips = new List <string>(); //check if region2 is not selected, list all the zips if (null == district || string.IsNullOrEmpty(district)) { var provider = ShippingProvider.GetShippingProvider(country); var zip = provider.GetZipsForCity(country, state, city); zips.AddRange(zip); zips.Distinct(); } else { var provider = ShippingProvider.GetShippingProvider(country); if (provider != null) { zips = provider.GetZipsForStreet(country, state, city, district); } } HttpRuntime.Cache.Insert(CacheKey, zips, null, DateTime.Now.AddMinutes(STREET_HU_CACHE_MINUTES), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null); return(zips); } catch (Exception ex) { LoggerHelper.Error(string.Format("GetStreets error: country: {0}, city: {1} error: {2}", country, state, ex.ToString())); } return(null); }
//agregar estos metodos al base y hacer override .... /// <summary> /// Gets the streets. /// </summary> /// <param name="country">The country.</param> /// <param name="state">The state.</param> /// <param name="district">The district.</param> /// <returns></returns> public override List <string> GetStreets(string country, string state, string district) { try { string CacheKey = string.Format("{0}{1}_{2}", "STREET_UA_", state, district); const int STREET_HU_CACHE_MINUTES = 60; List <string> lsStreet = HttpRuntime.Cache[CacheKey] as List <string>; if (lsStreet != null) { return(lsStreet); } var proxy = ServiceClientProvider.GetShippingServiceProxy(); var streets = new List <string>(); //check if region2 is not selected, list all the cities if (null == district || string.IsNullOrEmpty(district)) { var provider = ShippingProvider.GetShippingProvider(country); // city is district(region) for Ukraine var lookupResults = provider.GetCitiesForState(country, state); foreach (var lookupResult in lookupResults) { var request = new StreetsForCityRequest_V01 { Country = country, State = state, City = string.IsNullOrEmpty(lookupResult) ? " " : lookupResult }; //Aqui ciclar para recorrer todas las cities apra obtener todos los streets del state var response = proxy.GetStreetsForCity(new GetStreetsForCityRequest(request)).GetStreetsForCityResult as StreetsForCityResponse_V01; if (response != null) { streets.AddRange(from s in response.Streets where !string.IsNullOrEmpty(s) select s); streets.Distinct(); } } } else { var request = new StreetsForCityRequest_V01 { Country = country, State = state, City = string.IsNullOrEmpty(district) ? " " : district }; var response = proxy.GetStreetsForCity(new GetStreetsForCityRequest(request)).GetStreetsForCityResult as StreetsForCityResponse_V01; if (response != null) { streets = (from s in response.Streets where !string.IsNullOrEmpty(s) select s).ToList(); } } HttpRuntime.Cache.Insert(CacheKey, streets, null, DateTime.Now.AddMinutes(STREET_HU_CACHE_MINUTES), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null); return(streets); } catch (Exception ex) { LoggerHelper.Error(string.Format("UA GetStreets error: country: {0}, city: {1} error: {2}", country, state, ex.ToString())); } return(null); }