Для изменения размера нажмите или перетащите

Серверный сценарий

Серверный сценарий выполняется в контексте службы управления и позволяет получить любые данные со стороны сервера или же отправить на него управляющие воздействия.

Окружение серверного сценария

Серверный сценарий пишется на языке C# и имеет в своем окружении доступ к переменной args, содержащей входные аргументы для выполнения. Сценарий должен возвращать динамический объект new {} с полями для анализа на клиенте или null

Пример серверного сценария с наименованием getData.

C#
// Получение ячейки ПС и ее коммутационного аппарата
var cubicle = Cubicle.Find((int)args["cubicle"]);
var cubicleSwitchBoard = cubicle?.AttributeElectricSwitchboard;
// Определение состояния КА
var state = cubicleSwitchBoard?.GetSwitchboardState();

// Формирование текста подсказки для отображения на клиенте
var hintValue = "Нет данных о состоянии";
bool? stateValue = null;
if (state?.State != null)
{
      stateValue = state.State.Value;
    var valueHintList = new List<string>();
    valueHintList.Add(state.State.Value ? "Включено" : "Выключено");
    var valueDt = state.LastSwitchDate;
    if (valueDt.HasValue)
        valueHintList.Add(string.Format("Переключение {0:dd.MM.yy HH:mm:ss}", valueDt.Value));
      hintValue = string.Join("\n", valueHintList);
}
// Возвращаемое значение для анализа на клиенте
return new { value = stateValue, hint = hintValue, assigned = cubicle != null };

Особенностью работы с серверным сценарием является асинхронная парадигма его исполнения. Пример вызова приведенного выше серверного сценария в общем клиентском сценарии.

JavaScript
...
this.getData(
  { 
    cubicle: this.cubicle ? this.cubicle.id : 0,
  }, 
  rs => {
    if (rs.value != null){
      colorToFill = rs.value ? this.colorOn : this.colorOff;
    };

    rectNode.style.fill = colorToFill;
    rectNode.style.fillOpacity = colorToFill ? 1 : 0;

    let hintNode = this._node.querySelector('title');
    hintNode.textContent = rs.hint;
  },
  err => {
    console.error(err);    
  }
);
См. также

Другие ресурсы

Мнемосхемы