Пример #1
0
        /// <summary>
        /// Effectue une requete POST de maniere aynchrone sur l'API
        /// </summary>
        /// <param name="api">les donnees sur l'api, adresse du serveur etc...</param>
        /// <returns>la reponse de la requete</returns>
        public async Task <string> PostUser(Config.Api api)
        {
            string guid = GetUserGUID(Environment.UserName).ToString("D");

            Log.Info("Requete POST, Annonce de l'utilisateur ayant un GUID: " + guid);

            //Connexion au serveur
            string     addressServer = Server.protocol + @"://" + Server.host + @":" + Server.port + @"/";
            HttpClient httpClient    = ConnectAPI(addressServer); //Connexion a l'api

            // On recupere le GUID de la machine pour recuperer la bonne url
            string url = api.ressource.user + @"/" + guid;

            Log.Debug("Url de la ressource: " + url);
            string responseBody = null;

            try
            {
                var                 data        = "";
                StringContent       queryString = new StringContent(data);
                HttpResponseMessage response    = await httpClient.PostAsync(url, queryString).ConfigureAwait(false);

                response.EnsureSuccessStatusCode();
                responseBody = await response.Content.ReadAsStringAsync();
            }
            catch (Exception e)
            {
                Log.Error("Erreur requete POST: " + e.Message + e.GetType().ToString());
                Context.NotifyUser("ERROR", "Connexion impossible", "Vous n'etes pas connecté au serveur", false);
                return(null);
            }
            return(responseBody);
        }
Пример #2
0
        /// <summary>
        /// Requete GET a l'api pour recuperer la configuration de l'application au format JSON
        /// </summary>
        /// <param name="api">l'API ou faire les requetes</param>
        /// <param name="checksum">le checksum de la conf</param>
        /// <returns>la config de l'application</returns>
        public async Task <Config> GetConfigJson(Config.Api api, string checksum)
        {
            //TODO Voir si je rajout l'ip IPV4 en c# du client
            //Connexion au serveur
            string     addressServer = Server.protocol + @"://" + Server.host + @":" + Server.port + @"/";
            HttpClient httpClient    = ConnectAPI(addressServer); //Connexion a l'api

            // On recupere le GUID de la machine pour recuperer la bonne url
            string url = api.ressource.config + @"?checksum=" + checksum;

            Log.Debug("Url de la ressource: " + url);

            Config config = null;

            try
            {
                // test si l'url est valide
                HttpResponseMessage response = await httpClient.GetAsync(url).ConfigureAwait(false);

                response.EnsureSuccessStatusCode();
                string json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                config = JsonConvert.DeserializeObject <Config>(json);
            }
            catch (Exception e)
            {
                Log.Error("Erreur requete GET: " + e.Message + e.GetType().ToString());
                return(null);
            }
            return(config);
        }
Пример #3
0
        /// <summary>
        /// Effectue une requete GET de maniere aynchrone sur l'API pour recuperer les donnees sur l'utilisateur
        /// </summary>
        /// <param name="api">les donnees sur l'api, adresse du serveur etc...</param>
        /// <returns>l'objet FaxUser</returns>
        public async Task <User> GetUser(Config.Api api)
        {
            string guid = GetUserGUID(Environment.UserName).ToString("D");

            Log.Info("Requete GET Verification de l'authentification de l'utilisateur ayant un GUID:" + guid);
            // Connexion au serveur
            string     addressServer = Server.protocol + @"://" + Server.host + @":" + Server.port + @"/";
            HttpClient httpClient    = ConnectAPI(addressServer); //Connexion a l'api

            // On recupere le GUID de la machine pour recuperer la bonne url
            string url = api.ressource.user + @"/" + guid;

            Log.Debug("Url de la ressource: " + url);
            User user = null;

            try
            {
                // Recuperation du User
                HttpResponseMessage response = await httpClient.GetAsync(url).ConfigureAwait(false);

                response.EnsureSuccessStatusCode();
                string json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

                user = JsonConvert.DeserializeObject <User>(json);
            }
            catch (Exception e)
            {
                Log.Error("Erreur requete GET: " + e.Message + e.GetType().ToString());
                return(null);
            }
            return(user);
        }