|
@@ -21,6 +21,8 @@ using WingInterfaceLibrary.Request.Authentication;
|
|
|
using JsonRpcLite.Services;
|
|
|
using WingInterfaceLibrary.Enum;
|
|
|
using WingCloudServer.Plugin;
|
|
|
+using System.Reflection;
|
|
|
+using CSScriptLib;
|
|
|
|
|
|
namespace WingCloudServer
|
|
|
{
|
|
@@ -114,6 +116,7 @@ namespace WingCloudServer
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //TestCSScript(rpcClientPool);
|
|
|
|
|
|
//Rpc http service load and register to rpc http server
|
|
|
if (ConfigurationManager.IsDistributed)
|
|
@@ -197,6 +200,64 @@ namespace WingCloudServer
|
|
|
|
|
|
}
|
|
|
|
|
|
+ public void TestCSScript(JsonRpcClientPool rpcClientPool)
|
|
|
+ {
|
|
|
+ //接口
|
|
|
+ var eval = CSScript.Evaluator.ReferenceDomainAssemblies(DomainAssemblies.AllStaticNonGAC);
|
|
|
+ var host = ConfigurationManager.Host.Replace("http:", "").Replace(".", "").Replace("/", "");
|
|
|
+ var str = @"
|
|
|
+ using System;
|
|
|
+ using System.Threading.Tasks;
|
|
|
+ using System;
|
|
|
+ using WingServerCommon.Service;
|
|
|
+ using WingInterfaceLibrary.OpLog;
|
|
|
+ using System.Threading.Tasks;
|
|
|
+ using System.Collections.Generic;
|
|
|
+ using JsonRpcLite.Rpc;
|
|
|
+ using WingInterfaceLibrary.Interface.DBInterface;
|
|
|
+ using WingInterfaceLibrary.DB.Request;
|
|
|
+
|
|
|
+ public interface ICSScriptTest"+host+@"
|
|
|
+ {
|
|
|
+ Task<bool> CSScriptTestAsync();
|
|
|
+ }
|
|
|
+ public class CSScriptTestService : JsonRpcService,ICSScriptTest"+host+@"
|
|
|
+ {
|
|
|
+ protected IOpLogDBService OpLogDBService;
|
|
|
+ protected IDeviceInfoDBService deviceInfoDBService;
|
|
|
+ public override void Load(JsonRpcClientPool jsonRpcClientPool)
|
|
|
+ {
|
|
|
+ base.Load(jsonRpcClientPool);
|
|
|
+ OpLogDBService = GetProxy<IOpLogDBService>();
|
|
|
+ deviceInfoDBService = GetProxy<IDeviceInfoDBService>();
|
|
|
+ }
|
|
|
+ public async Task<bool> CSScriptTestAsync()
|
|
|
+ {
|
|
|
+ var res = deviceInfoDBService.FindDictionaryItemsAsync(new FindDictionaryItemsDBRequest()).Result;
|
|
|
+ Console.WriteLine(""flytest""+res.Count);
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ public class Test
|
|
|
+ {
|
|
|
+ public void Test1(JsonRpcClientPool rpcClientPool,JsonRpcServer _rpcHttpServer){
|
|
|
+ var csScriptTestService = new CSScriptTestService();
|
|
|
+ _rpcHttpServer.RegisterService(typeof(ICSScriptTest"+host+@"), csScriptTestService);
|
|
|
+ csScriptTestService.Load(rpcClientPool);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ ";
|
|
|
+
|
|
|
+ Assembly compilecode = eval.CompileCode(str);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ var ps = compilecode.GetType("css_root+Test");
|
|
|
+ var obj = compilecode.CreateInstance("css_root+Test");
|
|
|
+ var mes = ps.GetMethod("Test1");
|
|
|
+ mes.Invoke(obj, new object[] { rpcClientPool, _rpcHttpServer });
|
|
|
+ }
|
|
|
+
|
|
|
void LoadDataAfterRegister()
|
|
|
{
|
|
|
foreach (var service in _rpcServices)
|
|
@@ -281,49 +342,49 @@ namespace WingCloudServer
|
|
|
return resList;
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 初始化AIDiagnosis
|
|
|
- /// </summary>
|
|
|
- private void InitAIDiagnosis()
|
|
|
- {
|
|
|
- try
|
|
|
- {
|
|
|
- var dllsRootPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "AIDiagnosis");
|
|
|
- var destFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Dependencies");
|
|
|
- CopyFilesAndDirs(dllsRootPath, destFolder);
|
|
|
- }
|
|
|
- catch (Exception ex)
|
|
|
+ /// <summary>
|
|
|
+ /// 初始化AIDiagnosis
|
|
|
+ /// </summary>
|
|
|
+ private void InitAIDiagnosis()
|
|
|
{
|
|
|
- Logger.WriteLineError($"InitAIDiagnosis error:{ex}");
|
|
|
+ try
|
|
|
+ {
|
|
|
+ var dllsRootPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "AIDiagnosis");
|
|
|
+ var destFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Dependencies");
|
|
|
+ CopyFilesAndDirs(dllsRootPath, destFolder);
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ Logger.WriteLineError($"InitAIDiagnosis error:{ex}");
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- private void CopyFilesAndDirs(string sourceDir, string destDir)
|
|
|
- {
|
|
|
- if (!Directory.Exists(sourceDir))
|
|
|
- {
|
|
|
- return;
|
|
|
- }
|
|
|
- if (!Directory.Exists(destDir))
|
|
|
- {
|
|
|
- Directory.CreateDirectory(destDir);
|
|
|
- }
|
|
|
- string newPath;
|
|
|
- FileInfo fileInfo;
|
|
|
- string[] files = Directory.GetFiles(sourceDir);
|
|
|
- foreach (string path in files)
|
|
|
+ private void CopyFilesAndDirs(string sourceDir, string destDir)
|
|
|
{
|
|
|
- fileInfo = new FileInfo(path);
|
|
|
- newPath = destDir + "\\" + fileInfo.Name;
|
|
|
- File.Copy(path, newPath, true);
|
|
|
- }
|
|
|
- string[] dirs = Directory.GetDirectories(sourceDir);
|
|
|
- foreach (string path in dirs)
|
|
|
- {
|
|
|
- DirectoryInfo directory = new DirectoryInfo(path);
|
|
|
- string newDir = destDir + "\\" + directory.Name;
|
|
|
- CopyFilesAndDirs(path + "\\", newDir + "\\");
|
|
|
+ if (!Directory.Exists(sourceDir))
|
|
|
+ {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!Directory.Exists(destDir))
|
|
|
+ {
|
|
|
+ Directory.CreateDirectory(destDir);
|
|
|
+ }
|
|
|
+ string newPath;
|
|
|
+ FileInfo fileInfo;
|
|
|
+ string[] files = Directory.GetFiles(sourceDir);
|
|
|
+ foreach (string path in files)
|
|
|
+ {
|
|
|
+ fileInfo = new FileInfo(path);
|
|
|
+ newPath = destDir + "\\" + fileInfo.Name;
|
|
|
+ File.Copy(path, newPath, true);
|
|
|
+ }
|
|
|
+ string[] dirs = Directory.GetDirectories(sourceDir);
|
|
|
+ foreach (string path in dirs)
|
|
|
+ {
|
|
|
+ DirectoryInfo directory = new DirectoryInfo(path);
|
|
|
+ string newDir = destDir + "\\" + directory.Name;
|
|
|
+ CopyFilesAndDirs(path + "\\", newDir + "\\");
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
-}
|
|
|
}
|