コード例 #1
0
ファイル: Utilities.cs プロジェクト: elewaa7med/baitkmApi
        public static string StringBuilderModel(AnnouncementLocateModel model)
        {
            StringBuilder sb = new StringBuilder();

            if (model.BuildingNumber != null)
            {
                sb.Append(model.BuildingNumber + " ");
            }
            if (model.StreetName != null)
            {
                sb.Append(model.StreetName + ", ");
            }
            if (model.Borough != null)
            {
                sb.Append(model.Borough + ", ");
            }
            if (model.City != null)
            {
                sb.Append(model.City + ", ");
            }
            if (model.Country != null)
            {
                sb.Append(model.Country);
            }
            return(sb.ToString());
        }
コード例 #2
0
ファイル: Utilities.cs プロジェクト: elewaa7med/baitkmApi
        public static async Task <AnnouncementLocateModel> GetAddressFromGoogle(decimal lat, decimal lng, Language language)
        {
            var result = new AnnouncementLocateModel();

            Uri addressUri = null;

            if (language == Language.English)
            {
                addressUri = new Uri(
                    $"https://maps.googleapis.com/maps/api/geocode/json?latlng={lat},{lng}{ConstValues.GoogleLocateKey}&language=en");
            }
            else
            {
                addressUri = new Uri(
                    $"https://maps.googleapis.com/maps/api/geocode/json?latlng={lat},{lng}{ConstValues.GoogleLocateKey}&language=ar");
            }
            using (var client = new HttpClient())
            {
                var resp = await client.GetAsync(addressUri);

                var json = await resp.Content.ReadAsStringAsync();

                var token        = JToken.Parse(json);
                var array        = token.SelectToken("results");
                var deserialized = JsonConvert.DeserializeObject <List <UserLocationParsingBase> >(array.ToString());
                //var item = deserialized.FirstOrDefault();

                result.Lat            = lat;
                result.Lng            = lng;
                result.BuildingNumber = deserialized.SelectMany(s => s.AddressComponents)
                                        .Where(x => x.Types.Contains("street_number")).Select(ac => ac.Name).FirstOrDefault();
                result.StreetName = deserialized.SelectMany(s => s.AddressComponents)
                                    .Where(x => x.Types.Contains("route")).Select(ac => ac.Name).FirstOrDefault();
                result.City = deserialized.SelectMany(s => s.AddressComponents)
                              .Where(x => x.Types.Contains("locality")).Select(ac => ac.Name).FirstOrDefault();
                result.Country = deserialized.SelectMany(s => s.AddressComponents)
                                 .Where(x => x.Types.Contains("country")).Select(ac => ac.Name).FirstOrDefault();
                result.PostalCode = deserialized.SelectMany(s => s.AddressComponents)
                                    .Where(x => x.Types.Contains("postal_code")).Select(ac => ac.Name).FirstOrDefault();
                //Test
                //var BuildingNumber = deserialized.SelectMany(s => s.AddressComponents)
                //    .Where(x => x.Types.Contains("street_number")).Select(ac => ac.Name).FirstOrDefault();
                //var StreetName = deserialized.SelectMany(s => s.AddressComponents)
                //    .Where(x => x.Types.Contains("route")).Select(ac => ac.Name).FirstOrDefault();
                //var City = deserialized.SelectMany(s => s.AddressComponents)
                //    .Where(x => x.Types.Contains("locality")).Select(ac => ac.Name).FirstOrDefault();
                //var Country = deserialized.SelectMany(s => s.AddressComponents)
                //    .Where(x => x.Types.Contains("country")).Select(ac => ac.Name).FirstOrDefault();
                //var PostalCode = deserialized.SelectMany(s => s.AddressComponents)
                //    .Where(x => x.Types.Contains("postal_code")).Select(ac => ac.Name).FirstOrDefault();
                //Test
            }
            return(result);
        }