///
$(document).ready(function () {
// Разрешаем кроссдоменное взаимодействие (cross-domain, XCC - Cross-site scripting) по технологии CORS (Cross-origin resource sharing)
jQuery.support.cors = true;
// Отправляем запрос на вход в систему
SendLoginRequest('demo', 'demo');
});
function ReceivedLoginResponse(data) {
///
/// Обработчик события успешного входа в систему
///
// Данные получаемые от сервера содержатся в свойстве d
data = data.d;
// Если есть ошибка, выводим её, иначе отправляем запрос на получение списка точек учета
if (data.IsError)
alert(data.ErrorMessage);
else
SendGetMeasurePointListRequest();
}
function ReceivedMeasurePointListResponse(data) {
///
/// Обработчик события получения списка точек учета
///
// Данные получаемые от сервера содержатся в свойстве d
data = data.d;
// Если список точек учета не пустой отправляем запрос на получение потребления по первой точке учета из списка
if (data.MeasurePointList.length > 0)
SendGetMeasurePointConsumptionRequest(data.MeasurePointList[0].Id);
}
function ReceivedMeasurePointConsumptionResponse(data) {
///
/// Обработчик события получение потребления по точке учета
///
// Данные получаемые от сервера содержатся в свойстве d
data = data.d;
// Если есть данные потребления, выводим сообщение со значением T_in за первую метку времени
if (data.Data.length > 0)
{
var jsonDate = data.Data[0].DateTime
var dataDate = new Date(parseInt(jsonDate.substr(6)));
var T_in = data.Data[0].T_in;
alert(dataDate.toString() + ': ' + T_in.toString());
}
else
alert('По точке учета нет данных потребления.');
// Получаем список объектов учета с расширенной информацией
SendGetNodeListExtendedRequest();
}
function ReceivedNodeListExtendedResponse(data)
///
/// Обработчик события получение списка объектов учета
///
{
// Данные получаемые от сервера содержатся в свойстве d
data = data.d;
}
function SendLoginRequest(userName, password) {
///
/// Отправляет запрос на вход в систему ЛЭРС УЧЕТ
///
$.ajax({
type: "POST",
url: "http://localhost:54025/Api.asmx/Login",
contentType: "application/json; charset=utf-8",
dataType: "json",
xhrFields: { withCredentials: true },
crossDomain: true,
data: "{ 'userName':'" + userName + "','password':'" + password + "' }",
success: ReceivedLoginResponse,
error: function (jqXHR, textStatus, errorThrown) {
console.error("jqXHR: %s \r\ntextStatus: %s \r\nerrorThrown:%s", jqXHR.responseText, textStatus, errorThrown);
alert('Не удалось войти в систему.');
}
});
}
function SendGetMeasurePointListRequest() {
///
/// Отправляет запрос на получение списка точек учета
///
$.ajax({
type: "POST",
url: "http://localhost:54025/Api.asmx/GetMeasurePointList",
contentType: "application/json; charset=utf-8",
dataType: "json",
xhrFields: { withCredentials: true },
crossDomain: true,
data: "",
success: ReceivedMeasurePointListResponse,
error: function (jqXHR, textStatus, errorThrown) {
alert('Не удалось получить список точек учета.');
}
});
}
function SendGetNodeListExtendedRequest() {
///
/// Отправляет запрос на получение списка объектов учета
///
$.ajax({
type: "POST",
url: "http://localhost:54025/Api.asmx/GetNodeListExtended",
contentType: "application/json; charset=utf-8",
dataType: "json",
xhrFields: { withCredentials: true },
crossDomain: true,
data: "{ 'flags':" + 1024 + "}", // Запрашиваем помещения
success: ReceivedNodeListExtendedResponse,
error: function (jqXHR, textStatus, errorThrown) {
alert('Не удалось получить список объектов учета.');
}
});
}
function SendGetMeasurePointConsumptionRequest(measurePointId) {
///
/// Отправляет запрос на получение потребления за текущий месяц
///
var nowDate = new Date();
var currentStartDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), 1);
var currentEndDate = new Date(nowDate.getFullYear(), nowDate.getMonth(), nowDate.getDate());
$.ajax({
type: "POST",
url: "http://localhost:54025/Api.asmx/GetMeasurePointConsumption",
contentType: "application/json; charset=utf-8",
dataType: "json",
xhrFields: { withCredentials: true },
crossDomain: true,
data: "{ 'measurePointId':" + measurePointId + ", 'startDate':'" + currentStartDate.toJSON() + "','endDate':'" + currentEndDate.toJSON() + "', 'dataType': 'Day' }",
success: ReceivedMeasurePointConsumptionResponse,
error: function (jqXHR, textStatus, errorThrown) {
alert('Не удалось получить данные потребления по точке учета.');
}
});
}