|
|
|
@ -1,11 +1,12 @@
|
|
|
|
|
using Application.Domain.Entities;
|
|
|
|
|
using Application.Models;
|
|
|
|
|
using CSScriptLib;
|
|
|
|
|
using Infrastructure.Data;
|
|
|
|
|
using Infrastructure.Events;
|
|
|
|
|
using Infrastructure.Extensions;
|
|
|
|
|
using IoT.Shared.Services.IoTCenter;
|
|
|
|
|
using IoTCenter.Application.Domain;
|
|
|
|
|
using Jint;
|
|
|
|
|
using Jint.Native;
|
|
|
|
|
using Microsoft.AspNetCore.SignalR;
|
|
|
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
|
using Microsoft.Extensions.Configuration;
|
|
|
|
@ -274,27 +275,27 @@ namespace IoTCenter.Services
|
|
|
|
|
var data = message.Data;
|
|
|
|
|
if (tigger.DataId == data.Id)
|
|
|
|
|
{
|
|
|
|
|
var methodText = $"bool Valid(string name,string key,{data.Type.ToString().ToLower()} value,string description){{ return {tigger.Condition};}}";
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
dynamic method = CSScript.Evaluator.LoadMethod(methodText);
|
|
|
|
|
dynamic value = data.GetValue();
|
|
|
|
|
var result = method.Valid(data.Name, data.Key, value, data.Description);
|
|
|
|
|
if (result)
|
|
|
|
|
var condition = tigger.Condition;
|
|
|
|
|
var value = data.Value;
|
|
|
|
|
var engine = new Engine().Execute($"function valid(value){{return {condition};}}");
|
|
|
|
|
var result = engine.Invoke("valid", value);
|
|
|
|
|
if (result == JsValue.True)
|
|
|
|
|
{
|
|
|
|
|
this.TiggerHandle(tigger.Id);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
ex.PrintStack();
|
|
|
|
|
this._logger.LogError(ex.ToString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
ex.PrintStack();
|
|
|
|
|
this._logger.LogError(ex.ToString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -392,11 +393,12 @@ namespace IoTCenter.Services
|
|
|
|
|
public void Handle(NodeClientConnectedEvent message)
|
|
|
|
|
{
|
|
|
|
|
var organ = this._organRepo.Table().FirstOrDefault(o => o.Number == message.OrganNumber);
|
|
|
|
|
if(organ==null)
|
|
|
|
|
if (organ == null)
|
|
|
|
|
{
|
|
|
|
|
organ = new Organ {
|
|
|
|
|
Name=message.OrganNumber,
|
|
|
|
|
Number= message.OrganNumber,
|
|
|
|
|
organ = new Organ
|
|
|
|
|
{
|
|
|
|
|
Name = message.OrganNumber,
|
|
|
|
|
Number = message.OrganNumber,
|
|
|
|
|
Image = "/images/classroom.png"
|
|
|
|
|
};
|
|
|
|
|
this._organRepo.Add(organ);
|
|
|
|
@ -407,7 +409,7 @@ namespace IoTCenter.Services
|
|
|
|
|
var node = this._nodeRepo.Table().FirstOrDefault(o => o.Number == message.NodeNumber);
|
|
|
|
|
if (node != null)
|
|
|
|
|
{
|
|
|
|
|
this._organNodeRepo.Add(new OrganNode { NodeId=node.Id,OrganId=organ.Id });
|
|
|
|
|
this._organNodeRepo.Add(new OrganNode { NodeId = node.Id, OrganId = organ.Id });
|
|
|
|
|
this._organNodeRepo.SaveChanges();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|