Esempio n. 1
0
        /// <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);
 }
Esempio n. 4
0
        /// <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);
        }