示例#1
0
文件: Form1.cs 项目: Redplek/voda_new
        private void getVodokanalErrors()
        {
            //string login = "******";
            //string password = "******";

            string login    = v_options.login;
            string password = v_options.password;

            // Упаковщик в формат JSON
            var serializer = new JavaScriptSerializer();

            // Клиент web-сервиса
            var webClient = new VodokanalService.WebServiceSoapClient("WebServiceSoap");
            // Выполнить проверку логина и пароля
            var loginRequstJson = webClient.LoginEx(login, password);

            // Вывести результат к консоль
            Console.WriteLine(loginRequstJson);

            // Распаковать строку с результатами аутентификации
            var loginRequest = (Dictionary <string, object>)serializer.Deserialize(loginRequstJson, typeof(Dictionary <string, object>));

            // Успешность аутентификации
            bool success = (bool)loginRequest["Success"];


            if (success)
            {
                string ticket     = (string)loginRequest["Ticket"];
                var    JsonAnswer = webClient.ExecuteEx("_ACCXB.GETERRORS", null, ticket);
                //Смотрим что пришло
                var answer = (Dictionary <string, object>)serializer.Deserialize(JsonAnswer, typeof(Dictionary <string, object>));
                foreach (var item in answer)
                {
                    ToConsole(item.ToString());
                }
            }
        }
示例#2
0
文件: Form1.cs 项目: Redplek/voda_new
        private bool SendToVodokanal()
        {
            try
            {
                //string login = "******";
                //string password = "******";

                string login    = v_options.login;
                string password = v_options.password;

                // Упаковщик в формат JSON
                var serializer = new JavaScriptSerializer();

                // Клиент web-сервиса
                var webClient = new VodokanalService.WebServiceSoapClient("WebServiceSoap");
                // Выполнить проверку логина и пароля
                var loginRequstJson = webClient.LoginEx(login, password);

                // Вывести результат к консоль
                Console.WriteLine(loginRequstJson);

                // Распаковать строку с результатами аутентификации
                var loginRequest = (Dictionary <string, object>)serializer.Deserialize(loginRequstJson, typeof(Dictionary <string, object>));

                // Успешность аутентификации
                bool success = (bool)loginRequest["Success"];


                if (success)
                {
                    ToConsole("Аутентификация успешна");
                    // Временный билет
                    string ticket = (string)loginRequest["Ticket"];
                    ToConsole(ticket);

                    //Передадим данные с показаниями на сервер
                    //Для примера я взял данные по двум счетчикам с потолка

                    //Упакуем их в формат JSON
                    //Формат передачи такой: {"jsons":[{"ID":1,"UNIXTIME":234234234,"POKAZ":456.88,"NZAV":"qwr23r2r"},{"ID":2,"UNIXTIME":234254234,"POKAZ":5656.05,"NZAV":"qwr2dswfr2r"}]}
                    var dict = new Dictionary <string, object>();
                    dict.Add("jsons", ToSend);
                    string JsonResult = serializer.Serialize(dict);

                    //Передадим на сервер
                    var JsonAnswer = webClient.ExecuteEx("_ACCXB.ADDCOUNTERVALUES", JsonResult, ticket);

                    //Посмотрим на ответ сервера
                    var answer = (Dictionary <string, object>)serializer.Deserialize(JsonAnswer, typeof(Dictionary <string, object>));

                    //Успешность передачи данных
                    success = (bool)answer["SUCCESS"];

                    if (ErrorsToSend.Count > 0)
                    {
                        var err_dict = new Dictionary <string, object>();
                        err_dict.Add("jsons", ErrorsToSend);
                        string JsonErrorResult = serializer.Serialize(err_dict);
                        var    JsonErrorAnswer = webClient.ExecuteEx("_ACCXB.ADDERRORVALUES", JsonErrorResult, ticket);
                        var    err_answer      = (Dictionary <string, object>)serializer.Deserialize(JsonErrorAnswer, typeof(Dictionary <string, object>));
                        success = (bool)err_answer["SUCCESS"];
                    }
                    return(success);
                }
                else
                {
                    return(false);
                }
            }
            catch (Exception ex) {
                Debug.WriteLine(ex);
                ToConsole(ex.ToString());
                write_to_log(new string[] { ex.ToString() });
                return(false);
            }
        }