/// <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); }
/// <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); }