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

Получение событий по устройству

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

Пример серверного сценария (с наименованием getEvents) предоставления событий по устройству.

C#
var meter = ElectricityMeter.Find((int)args["meterId"]);
var startDt = (DateTime)args["startDt"];
var endDt = (DateTime)args["endDt"];
    var events = meter == null 
  ? null 
  // Получение событий по прибору учета электроэнергии
  : meter.ReceiveEventsWithDescription(
    // null - все события
    null,
    new DayIntervalData
    { 
        StartDt = startDt, 
        EndDt = endDt 
    });

var eventsArr = events == null ? null : events
    .Select(x => new
    { 
        eventType = x.EventInfo.EventType, 
        eventDt = x.EventInfo.EventDt,
        eventDesc = x.Description
    })
    .ToArray();
return new { events = eventsArr };

Пример клиентского сценария получения архива событий точки учета.

JavaScript
// запрос архива событий по прибору учета
// за интервал между датами календарей datePicker и datePicker2
this.getEvents(
{ 
    meterId: this.meter ? this.meter.id : 0,
    startDt: this.datePicker.value,
    endDt: this.datePicker2.value
}, 
rs => {
    let eventLines = rs.values.map(x => x.eventType + '(' + x.eventDt + ')' + ', ' + x.eventDesc).join('\n');
    this.multilineText.value = eventLines;
    this.multilineText.scOnInit();
},
err => {
    console.error(err);    
});
См. также