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()); } } }
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); } }