Former-commit-id: bd21725dced04f3f9837a7e7ecae9e7159044118
TangShanKaiPing
wanggang 5 years ago
parent 83ae7421cd
commit 1c0e835914

@ -11,7 +11,7 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="DynamicExpresso.Core" Version="2.3.1" />
<PackageReference Include="Jint" Version="2.11.58" />
<PackageReference Include="Microsoft.CodeAnalysis.FxCopAnalyzers" Version="3.0.0">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>

@ -1,15 +1,15 @@
using Application.Domain.Entities;
using Cronos;
using CSScriptLib;
using Infrastructure.Data;
using Infrastructure.Extensions;
using Jint;
using Jint.Native;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
namespace IoT.Shared.Areas.Admin.Controlls
@ -264,12 +264,17 @@ namespace IoT.Shared.Areas.Admin.Controlls
try
{
var data = this._dataRepo.ReadOnlyTable().FirstOrDefault(o => o.Id == dataId);
var methodText = $"bool Valid(string name,string key,{data.Type.ToString().ToLower()} value,string description){{ return {condition};}}";
Debug.WriteLine(methodText);
dynamic method = CSScript.Evaluator.LoadMethod(methodText);
dynamic value = data.GetValue();
var result = method.Valid(data.Name, data.Key, value, data.Description);
return new JsonResult(true);
var value = data.Value;
var engine = new Engine().Execute($"function valid(value){{return {condition};}}");
var result = engine.Invoke("valid", value);
if (result == JsValue.True || result == JsValue.False)
{
return new JsonResult(true);
}
else
{
return new JsonResult($"±í´ïʽÔËËã½á¹ûÎÞЧ£º{result}");
}
}
catch (Exception ex)
{

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

@ -3,7 +3,7 @@
var name = settingSerice.GetSetting("name").Value;
var logo = settingSerice.GetSetting("logo").Value;
var copyright = settingSerice.GetSetting("copyright").Value;
var iosAppUrl = settingSerice.GetSetting("iosAppUrl").Value;
//var iosAppUrl = settingSerice.GetSetting("iosAppUrl").Value;
}
<!DOCTYPE html>
<html>

@ -1,14 +1,14 @@
using Application.Domain.Entities;
using CSScriptLib;
using Hangfire;
using Infrastructure.Application.Entites.Settings;
using Infrastructure.Events;
using Infrastructure.Extensions;
using IoT.Shared.Services;
using IoTNode.DeviceServices.Onvif;
using Jint;
using Jint.Native;
using Microsoft.Extensions.Logging;
using System;
using System.Threading.Tasks;
using Microsoft.Extensions.Logging;
namespace IoTNode.Services
{
@ -77,22 +77,19 @@ namespace IoTNode.Services
{
try
{
this._logger.LogInformation($"Debug>call tigger handler when data update at {DateTime.Now.ToLongDateString()} ");
foreach (var tigger in this._sceneTiggerService.GetSceneTiggers())
{
var data = message.Data;
if (tigger.DataId == data.Id)
{
this._logger.LogInformation($"Debug>match tigger at {DateTime.Now.ToLongDateString()} ");
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._logger.LogInformation($"Debug>match contdation at {DateTime.Now.ToLongDateString()} ");
this._job.TiggerHandle(tigger.Id);
}
}

@ -1,4 +1,4 @@
using System.Reflection;
[assembly: AssemblyVersion("1.0.0.*")]
[assembly: AssemblyInformationalVersion("1.0.0.509")]
[assembly: AssemblyInformationalVersion("1.0.0.510")]
Loading…
Cancel
Save