예제 #1
0
        private void SaveChanges(object sender, System.Windows.RoutedEventArgs e)
        {
            var client  = new RestClient("http://localhost:62140/Token");
            var request = new RestRequest(Method.POST);

            request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
            request.AddParameter("grant_type", "password");
            request.AddParameter("username", textBoxEmail.Text);
            request.AddParameter("password", textBoxPassword.Password);
            IRestResponse response = client.Execute(request);

            if (response.StatusCode == HttpStatusCode.OK)
            {
                Dictionary <string, string> tokenDictionary = JsonConvert.DeserializeObject <Dictionary <string, string> >(response.Content);
                string accessToken = tokenDictionary["access_token"];
                var    clientAddNobreakToAccount  = new RestClient("http://localhost:62140/api/");
                var    requestAddNobreakToAccount = new RestRequest("Nobreaks/PostAddNobreakToAccount", Method.POST);


                requestAddNobreakToAccount.AddHeader("content-type", "application/x-www-form-urlencoded");
                requestAddNobreakToAccount.AddHeader("Authorization", "Bearer " + accessToken);
                requestAddNobreakToAccount.AddHeader("token_type", "bearer");

                INobreakServiceChannel ch = App.Channel;

                //var informacoesNobreak = ch.InformationInquiry();

                var nobreak = new Nobreak()
                {
                    Serial = textBoxSerial.Text,
                    Label  = textBoxNobreakNickname.Text,
                    //nobreak.UPSModel = informacoesNobreak.Modelo;
                    //nobreak.Version = informacoesNobreak.Versao;
                    CompanyName = "TS Shara"
                };
                var nbJson = JsonConvert.SerializeObject(nobreak);

                requestAddNobreakToAccount.AddParameter("text/json", nbJson, ParameterType.RequestBody);
                requestAddNobreakToAccount.RequestFormat = RestSharp.DataFormat.Json;

                response = clientAddNobreakToAccount.Execute(requestAddNobreakToAccount);

                var settingsWorkQuery = new SettingsWorkQuery();
                var currentSettings   = settingsWorkQuery.FindFirstData();
                currentSettings.UserEmail = textBoxEmail.Text;
                currentSettings.UserToken = accessToken;

                settingsWorkQuery.UpdateData(currentSettings);

                //MessageBox.Show(response.Content);
                NotifierHelper.ShowInformation(response.Content, 1);
            }
            else
            {
                Dictionary <string, string> responseError = JsonConvert.DeserializeObject <Dictionary <string, string> >(response.Content);

                NotifierHelper.ShowInformation(responseError["error_description"], 2);
            }
        }
예제 #2
0
        /// <summary>
        /// Conecta o cliente ao serviço windows (local ou remoto)
        /// </summary>
        private void Connect()
        {
            while (!_isConnected)
            {
                try
                {
                    NetTcpBinding binding = new NetTcpBinding();
                    binding.Security.Mode = SecurityMode.None;
                    string ip = Properties.Settings.Default.IpNobreak;
                    ip = "127.0.0.1";

                    DuplexChannelFactory <INobreakServiceChannel> channelFactory = new DuplexChannelFactory <INobreakServiceChannel>(
                        new InstanceContext(this),
                        binding,
                        new EndpointAddress("net.tcp://" + ip + ":9999/powernt-service"));

                    _channel = channelFactory.CreateChannel();
                    _channel.Connect();

                    _isConnected = true;
                    App.Channel  = _channel;
                }
                catch (Exception ex)
                {
                    Conexao        = new TranslateToCurrentLanguage().GetCurrentLanguageDictionary("LabelUnavailableService");
                    RedeLabel      = "";
                    App.UPSData    = null;
                    App.StatusInfo = null;
                    Debug.WriteLine("Falha ao tentar conectar o canal: " + ex.Message);
                    _isConnected = false;
                    log.Error("Problema ao estabelecer conexão com serviço", ex);
                }

                Thread.Sleep(2000);
            }
        }