Пример #1
0
        /// <summary>
        /// Obtenir la liste d'éléments via le type d'élément.
        /// </summary>
        /// <typeparam name="T">Type de retour.</typeparam>
        /// <param name="urlBase">Url de base.</param>
        /// <param name="parametres">Paramètres d'envoie.</param>
        /// <returns>Liste d'éléments.</returns>
        public IEnumerable <IFeatureSet <T> > Obtenir <T>(string urlBase, IParametresRequete parametres)
        {
            // Variables de travail.
            var listeU = new List <FeatureSet <T> >();

            try
            {
                var reponse = _clientHttp.GetStringAsync(ConstruireUriObtenir(urlBase, parametres)).Result;

                dynamic json = JsonConvert.DeserializeObject(reponse);

                if (null != json)
                {
                    // Itérer dans les réponses.
                    foreach (dynamic feature in json.features)
                    {
                        var temp = new FeatureSet <T>();

                        // Remplir la géométrie.
                        if (parametres.RetournerGeometrie && null != feature.geometry)
                        {
                            temp.geometry = JsonConvert.DeserializeObject <Point>(feature.geometry.ToString());
                        }

                        temp.attributes = JsonConvert.DeserializeObject <T>(feature.attributes.ToString());

                        listeU.Add(temp);
                    }
                }
            }
            catch { }

            return(listeU);
        }
Пример #2
0
 /// <summary>
 /// Obtenir l'uri de la requête.
 /// </summary>
 /// <param name="urlBase">Url d'appel de base.</param>
 /// <param name="parametres">Paramètres pour la recherche.</param>
 /// <returns>Url complète.</returns>
 private Uri ConstruireUriObtenir(string urlBase, IParametresRequete parametres)
 {
     // Construction de l'url.
     _constructeurUrl.Debuter(urlBase);
     _constructeurUrl.AjouterParametres(parametres);
     return(_constructeurUrl.Finaliser());
 }
Пример #3
0
        /// <summary>
        /// Ajouter les paramètres dans la chaîne (query string).
        /// </summary>
        /// <param name="parametres">Paramètres.</param>
        public void AjouterParametres(IParametresRequete parametres)
        {
            // On s'assure que la liste de paramètres est vide.
            _parametres.Clear();

            var siVide = new Func <object, bool>((item) => item == null);

            if (!siVide(parametres.Where))
            {
                _parametres.Add(@"where", WebUtility.UrlEncode(parametres.Where));
            }

            if (!siVide(parametres.Point))
            {
                _parametres.Add(@"geometry", WebUtility.UrlEncode(parametres.Point.ToString()));
                _parametres.Add(@"geometryType", "esriGeometryPoint");      // Point.
                _parametres.Add(@"inSR", WebUtility.UrlEncode(parametres.Point.SRID.ToString()));
            }

            _parametres.Add(@"returnGeometry", parametres.RetournerGeometrie.ToString().ToLower());

            if (parametres.AfficherTousLesChamps)
            {
                _parametres.Add(@"outFields", @"*");
            }
            else if (0 < parametres.ChampsSorties?.Count())
            {
                _parametres.Add(@"outFields", string.Join(",", parametres.ChampsSorties));
            }

            // À la toute fin, on s'assure que c'est en json!
            _parametres.Add(@"f", "json");
        }
Пример #4
0
 /// <summary>
 /// Obtenir toutes les instances de la requête.
 /// </summary>
 /// <typeparam name="T">Type de retour de la requête via le service web.</typeparam>
 /// <param name="urlBase">Url d'appel de base.</param>
 /// <param name="parametres">Paramètres pour la recherche.</param>
 /// <returns>Résultat.</returns>
 private IEnumerable <IFeatureSet <T> > _Obtenir <T>(string urlBase, IParametresRequete parametres)
 => _repoFeatureClass.Obtenir <T>(urlBase, parametres);
Пример #5
0
 /// <summary>
 /// Obtenir les valeurs des couches ESRI en la convertissant avec le type T.
 /// </summary>
 /// <typeparam name="T">Type de retour.</typeparam>
 /// <param name="urlBase">Url d'appel de base.</param>
 /// <param name="parametres">Paramètres.</param>
 /// <returns>Liste d'éléments convertis.</returns>
 public IEnumerable <IFeatureSet <T> > Obtenir <T>(string urlBase, IParametresRequete parametres) => _Obtenir <T>(urlBase, parametres);