/// <summary> /// Gets a list of street types for a locality. /// </summary> /// <param name="country">Country code.</param> /// <param name="city">City name.</param> /// <param name="locality">Locality name.</param> /// <returns>List of street types.</returns> public List <string> GetStreetTypeForCity(string country, string city, string locality) { try { var proxy = ServiceClientProvider.GetShippingServiceProxy(); StreetsForCityRequest_V01 request = new StreetsForCityRequest_V01(); request.Country = country; request.State = city; request.City = locality; StreetsForCityResponse_V01 response = proxy.GetStreetsForCity(new GetStreetsForCityRequest(request)).GetStreetsForCityResult as StreetsForCityResponse_V01; List <string> streetTypes = new List <string>(); foreach (var street in response.Streets) { var info = street.Split('|'); if (info.Length == 2 && !streetTypes.Contains(info[0])) { streetTypes.Add(info[0]); } } return(streetTypes); } catch (Exception ex) { LoggerHelper.Error(string.Format("GetStreetTypeForCity error: Country {0}, error: {1}", country, ex.ToString())); } return(null); }
public List <string> GetStreetType(string country, string city, string suburb, string district, string street) { try { // Using the street field from database to store the street name/street type if (valueContains(suburb) || suburb.Equals(Dashes)) { suburb = string.Empty; } if (valueContains(district)) { district = string.Empty; } string CacheKey = string.Format("{0}{1}_{2}_{3}_{4}", "STREETTYPE_HU_", city, suburb, district, street); const int STREETTYPE_HU_CACHE_MINUTES = 60; var types = HttpRuntime.Cache[CacheKey] as List <string>; if (types != null) { return(types); } var proxy = ServiceClientProvider.GetShippingServiceProxy(); var request = new StreetsForCityRequest_V01 { Country = country, State = city, City = string.Format("{0}|{1}", suburb, district) }; var response = proxy.GetStreetsForCity(new GetStreetsForCityRequest(request)).GetStreetsForCityResult as StreetsForCityResponse_V01; if (response != null) { types = (from s in response.Streets where !string.IsNullOrEmpty(s) && s.StartsWith(string.Format("{0}|", street)) select s.Split('|')[1]).Distinct().Where(s => !string.IsNullOrEmpty(s)).ToList(); if (response.Streets.Contains("^")) { types.Add("^"); types.Sort(); } HttpRuntime.Cache.Insert(CacheKey, types, null, DateTime.Now.AddMinutes(STREETTYPE_HU_CACHE_MINUTES), Cache.NoSlidingExpiration, CacheItemPriority.Normal, null); } return(types); } catch (Exception ex) { LoggerHelper.Error(string.Format("GetStreetType error: country: {0}, city: {1} error: {2}", country, city, ex.ToString())); } return(null); }
public virtual List <string> GetStreetsForCity(string country, string state, string city) { try { var proxy = ServiceClientProvider.GetShippingServiceProxy(); var request = new StreetsForCityRequest_V01(); request.Country = country; request.State = state; request.City = city; var response = proxy.GetStreetsForCity(new GetStreetsForCityRequest(request)); var result = response.GetStreetsForCityResult as StreetsForCityResponse_V01; return(result.Streets); } catch (Exception ex) { LoggerHelper.Error(string.Format("GetStreetsForCity error: Country {0}, error: {1}", country, ex.ToString())); } return(null); }
/// <summary> /// Gets a list of cities from a street type /// </summary> /// <param name="country">Country code.</param> /// <param name="city">City name.</param> /// <param name="locality">Locality name.,</param> /// <param name="type">Street type.</param> /// <returns>List of streets.</returns> public List <string> GetStreetForCityByType(string country, string city, string locality, string type) { try { var proxy = ServiceClientProvider.GetShippingServiceProxy(); StreetsForCityRequest_V01 request = new StreetsForCityRequest_V01(); request.Country = country; request.State = city; request.City = locality; StreetsForCityResponse_V01 response = proxy.GetStreetsForCity(new GetStreetsForCityRequest(request)).GetStreetsForCityResult as StreetsForCityResponse_V01; type = string.Format("{0}|", type); var byType = response.Streets.Where(s => s.StartsWith(type)); var streets = byType.Select(s => s.Replace(type, string.Empty)).OrderBy(c => c); return(streets.ToList()); } catch (Exception ex) { LoggerHelper.Error(string.Format("GetStreetForCityByType error: Country {0}, error: {1}", country, ex.ToString())); } return(null); }
public List <string> GetStreets(string country, string city, string suburb, string district) { try { if (valueContains(suburb) || suburb.Equals(Dashes)) { suburb = string.Empty; } if (valueContains(district)) { district = string.Empty; } string CacheKey = string.Format("{0}{1}_{2}_{3}", "STREET_HU_", city, suburb, district); const int STREET_HU_CACHE_MINUTES = 60; List <string> lsStreet = HttpRuntime.Cache[CacheKey] as List <string>; if (lsStreet != null) { return(lsStreet); } if (suburb == string.Empty && district == string.Empty) { List <string> cites = new List <string> { "Debrecen", "Győr", "Miskolc", "Szeged", "Pécs" }; if (!cites.Contains(city)) { return(new List <string>()); } } // Using the street field from database to store the street name/street type var proxy = ServiceClientProvider.GetShippingServiceProxy(); var request = new StreetsForCityRequest_V01 { Country = country, State = city, City = string.Format("{0}|{1}", suburb, district) }; var response = proxy.GetStreetsForCity(new GetStreetsForCityRequest(request)).GetStreetsForCityResult as StreetsForCityResponse_V01; var streets = new List <string>(); if (response != null) { CacheKey = string.Format("{0}{1}_{2}_{3}", "STREET_HU_", city, suburb, district); streets = (from s in response.Streets where !string.IsNullOrEmpty(s) && s.Contains("|") select s.Split('|')[0]).Distinct().Where(s => !string.IsNullOrEmpty(s)).ToList(); if (response.Streets.Contains("^")) { streets.Add("^"); streets.Sort(); } 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("GetStreets error: country: {0}, city: {1} error: {2}", country, city, 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); }