using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Tiger.Model; using Rhea.Common; using Tiger.Model.SeaStone.Shelf; using System.Threading; using SqlSugar; using Tiger.IBusiness; using Autofac; using System.Data; using System.Linq.Expressions; using Apache.NMS.ActiveMQ.Commands; using Tiger.Model.Sharetronic.Shelf; using Newtonsoft.Json.Linq; using Tiger.Api.iBiz; using System.Net; using System.Reflection; using Swifter.Tools; using Tiger.Model.Entitys.MES.Position; using Microsoft.CodeAnalysis.Options; using System.IO; using System.Runtime.Loader; using MailKit.Search; using Tiger.Model.DigitalTwin; namespace Tiger.Api.Controllers.Test { /// /// 测试控制器 /// public partial class TestController : ControllerBase { /// /// GetAsync /// /// [HttpGet] public IActionResult GetDBSchemaAsync() { return Ok(Biz.Db.DbMaintenance.GetTableInfoList()); } [HttpGet] public IActionResult GetEntitys(string AssemblyName, string NameSpace) { Assembly assembly = Assembly.Load(AssemblyName); Type[] types = assembly.GetTypes(); var entitys = types.Where(q => q.GetInterfaces().Contains(typeof(iEntity)) && q.IsClass).ToList(); var data = entitys.Select(q => new { q.Namespace, q.FullName, Properties = q.GetProperties().Select(p => new { p.Name, Type = p.PropertyType.Name }).ToList() }); return Ok(data); } /// /// GetAsync /// /// [HttpGet] public async Task GetAsync(string param) { //var data = await Biz.Db.Queryable().Where(q => q.PARAM_CODE == param).FirstAsync(); //var data = Cache.SysParam["Blue"]; //var data = Cache.SysParam.Groups; //var data = Cache.CodeRule["X0001"]; //取号测试 //var data = Biz.Db.Queryable().Where(q => q.RULE_CODE == "X0001").IncludesAllFirstLayer().First(); //var key = string.Join("|", data.Details.Where(q => q.DATA_TYPE == BAS_CODE_DTL.DATA_TYPEs.DbCheck.GetValue()).Select(q => q.GenerateValue)); //key = "1|2|3"; //for (int i = 0; i < 10; i++) //{ // var index = i; // Task.Run(() => // { // try // { // var dtl = data.Details.First(q => q.RULE_SEQ == 6); // var sn = Cache.CodeRule.FetchSerialNo(key, dtl, index.ToString(), false); // Console.WriteLine($"{index}: {DateTime.Now:HH:mm:ss.fff} > 取号完成[{sn}]"); // } // catch (Exception ex) // { // Console.WriteLine($"{index}: {DateTime.Now:HH:mm:ss.fff} > 取号失败:{ex.Message}"); // } // }); //} //var data = Cache.CodeRule["X0001"].Generate("PDFG", 5); //var data1 = Cache.CodeRule["X0001"].TryGenerate("PDFG", 6); //条码规则验证 //Expression> predicate = q => true; ////predicate = predicate.And(q => q.RULE_CODE == "X0002" || q.RULE_CODE == "X0001"); //predicate = predicate.And(q => q.RULE_TYPE == 0); ////var data = Cache.CodeRule.Rules.Where(predicate.Compile()); //var data = Cache.CodeRule.Verify("AB23#7930000002010", predicate.Compile()); return Ok(""); } /// /// Get2Async /// /// [HttpGet] public async Task Get2Async(string param) { var auth = new AuthOption() { UserId = "admin", ByOrg = true, ByWh = true }; //var data = await Biz.Db.Queryable().Where(q => q.BILLTYPE == 11) // //.ByAuth("admin", DbAuth.Org | DbAuth.Wh) // .ByAuth(auth) // .ToListAsync(); //data = await Biz.Db.Queryable().ByAuth("admin", DbAuth.Org).Where(q => q.BILLTYPE == 11).ToListAsync(); //var data = await Biz.Db.Queryable().Where(q => q.BILLTYPE == 11).ToListAsync(); //var dtl = await Biz.Db.Queryable().ByAuth("admin", DbAuth.Org | DbAuth.Wh).Where(q => q.BILLCODE == "AH3301-221000108").ToListAsync(); var query = Biz.Db.Queryable().ByAuth("admin", DbAuth.Org | DbAuth.Wh).Where(t => t.SN == "barcode.SN").First();// var data = Biz.Db.Queryable((q, s) => new JoinQueryInfos(JoinType.Inner, q.ORDER_NO == s.WORK_ORDER)) .ByAuth(auth)//.ByAuth("admin", DbAuth.Org | DbAuth.Wh) .Where((q, s) => s.SN == "input.SN" && q.ACT_LINE == "CurLine.LINE_CODE" && (q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Release.GetValue() || q.STATUS == BIZ_MES_WO_BATCH.STATUSs.Working.GetValue())) .Select((q, s) => new { Batch = q, SN = s }).First(); return Ok(data); } /// /// Get3Async /// /// [HttpGet] public async Task Get3Async(string param) { //var b = new Barcode("AA0930230891113222980001#CBF"); //var cutSerial = Convert.ToString(b.ReprintNo ?? 0, 2); //cutSerial = cutSerial == "0" ? "1" : cutSerial; //var orglSn = b.SN.Split("#")[0]; //var nSplitSn = $"{orglSn}#CA{Convert.ToString(Convert.ToInt32(cutSerial + "0", 2), 16).ToUpper()}"; //var nRemainSn = $"{orglSn}#CB{Convert.ToString(Convert.ToInt32(cutSerial + "1", 2), 16).ToUpper()}"; //var data = nSplitSn; //var t = Biz.T("WMS.ProdMReq.ScanItem.LocationIsNull", "dasdsa", "asdasda"); //var data = Biz.WmsItem.Suggest("test12345", "K33084103", "", "", "", "", new() { ByOrg = true, UserId = "admin", }, (decimal)100000); //foreach (var item in data.Data) //{ // //item.Items.First().AddToPool("XCSJ", nameof(BIZ_ERP_PROD_OUT), "test12345", null, 100000, false); //} //var data = 0; //try //{ // data = Biz.Db.Ado.UseStoredProcedure().ExecuteCommand("pkg_ImportItemFromSRM", new SugarParameter("dlvyNo", "BAD202308240443")); //} //catch (System.Exception ex) //{ //} //var data = await Biz.Db.Queryable().Where(q =>1!= 1).ToListAsync(); //foreach (var item in data) //{ // item.UPDATE_TIME = DateTime.Now; // item.UPDATE_USER = "admin"; //} //Biz.Db.Fastest().BulkUpdate(data, new string[] { "ID" }, new string[] { "UPDATE_TIME", "UPDATE_USER" }); //Biz.Db.Insertable(data, "Interface").ExecuteCommand(); var root = new SugarParameter("root", "system01"); var dt = Biz.Db.Ado.UseStoredProcedure().GetDataTable("SP_SYS_GET_MENU", root);//返回dt var data = Biz.Db.Ado.UseStoredProcedure().SqlQuery("SP_SYS_GET_MENU", root);//返回List ; //var data = Biz.Db.Queryable() // .IncludesAllFirstLayer() //c .ToList(); //var data1 = Biz.Db.Queryable().Where(q => q.ROLE_CODE == "administrators") // .IncludesAllFirstLayer() // .ToList(); //var data = Biz.Db.Queryable().Where(q => q.FUNC_CODE == "system01") // .AsNavQueryable().Includes(q1 => q1.Children, q2 => q2.Children, q3 => q3.Children, q4 => q4.Children) // .ToList(); //var data = Biz.Db.Queryable().Where(q => q.BILLCODE == "AH3301-211200047") // .Includes(q => q.Details).First(); //var d9 = data.Details.First(q => q.BILLLINE == 9); //var d10 = d9.Clone(); //d9.QTY = 9; //d10.BILLLINE = 10; //data.Details.Add(d10); ////保存到数据库 //var db = Business.Biz.Db; //var dbTran = db.UseTran(async () => //{ // db.InsertNav(data).Include(q => q.Details, new() { OneToManyIfExistsNoInsert = true }).ExecuteCommand(); //}); //if (!dbTran.IsSuccess) //{ // throw dbTran.ErrorException; //} return Ok(data); } /// /// /// private void TestAsyncSuggest() { var begin = DateTime.Now; var ElapsedTime = 0.0; //Debug.WriteLine($"Async suggest begin at {begin:T}"); var order = ""; var warehouse = ""; var erpwh = ""; var region = ""; var shelf = ""; var option = new AuthOption() { ByOrg = true, UserId = "admin", }; var dic = new Dictionary>>(); //foreach (var item in dic) //{ // var key = item.Key; // Work.DoAsync(() => { // dic[item.Key] = Biz.WmsItem.Suggest(order, item.Key, erpwh, warehouse, region, shelf, option, 1); // }); //} //while (!dic.Any(q => q.Value.IsNormal)) ; ElapsedTime = (DateTime.Now - begin).TotalSeconds; //Debug.WriteLine($"Async suggest end, elapsed total {ElapsedTime} seconds"); } /// /// D1Async /// /// [HttpGet] public async Task D1Async(string param) { Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=01"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 01 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=02"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 02 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=03"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 03 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=04"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 04 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=05"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 05 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=06"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 06 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=07"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 07 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=08"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 08 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=09"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 09 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=10"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 10 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=11"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 11 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=12"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 12 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=13"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 13 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=14"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 14 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=15"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 15 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=16"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 16 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=17"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 17 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=18"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 18 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=19"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 19 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=20"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 20 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=21"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 21 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=22"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 22 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=23"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 23 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=24"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 24 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=25"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 25 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=26"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 26 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=27"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 27 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=28"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 28 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=29"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 29 Finished", ConsoleColor.Blue); }); Work.DoAsync(() => { HttpHelper.GetAsync("http://172.16.80.40:9529/api/_Test/DoSomething?duration=10&code=30"); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - 30 Finished", ConsoleColor.Blue); }); ConsoleExt.WriteLine($"{DateTime.Now:HH:mm:ss.fff} - Send Finished", ConsoleColor.Blue); //Logger.Scheduler.Info("这是一次成功的测试"); //var data = iBiz.Biz.Db.Queryable() // .IncludesAllFirstLayer() // .ToList(); //var data = iBiz.WMS.WmsItem.Get("123"); //var data1 = iBiz.WMS.WmsItem.Get("123"); //var s = "{\"GetChuteInfoResult\":{\"IsSuccess\":true,\"ItemCode\":\"0\",\"ResultValue\":\"{\\\"shelfNo\\\":\\\"A31F\\\",\\\"ledStartIndex\\\":26,\\\"ledNum\\\":1,\\\"ledAddrs\\\":[501],\\\"ledAddressList\\\":[{\\\"ledAddress\\\":501,\\\"isOccupy\\\":true}]}\",\"Type\":\"\"}}"; //JObject jObj = JObject.Parse(s.IsNullOrEmpty("{}")); //var r = JsonConvert.DeserializeObject(jObj.First?.First?.ToString() ?? ""); //var t = JsonConvert.DeserializeObject(""); var data = DI.Resolve().show(); return Ok(data); } [HttpGet] public async Task D2Async(string param) { DI.Resolve().set(param); return Ok($"设置{param}成功"); } [HttpPost] public async Task TestTask([FromBody] ApiAction action) { string msg = ""; await Task.Run(() => { msg = "成功"; }); await Task.Run(() => { Thread.Sleep(10*60*1000); msg = "异步成功"; Logger.Default.Info(msg); }); return Ok(action.GetResponse(msg)); } /// /// CloseShelfAllLight /// /// /// [HttpPost] public async Task CloseShelfAllLightAsync([FromBody] ApiAction action) { var shelfs = action.Data.ToString().Split(new string[]{ "," }, StringSplitOptions.RemoveEmptyEntries).Select(q => q + "F").ToList(); shelfs.AddRange(shelfs.Select(q => q.Substring(0, q.Length - 1) + "R").ToList()); var success = new List(); //foreach (var shelf in shelfs) //{ // var result = await Share.Shelf.DownAll(shelf); // if (result.IsSuccess) // { // success.Add(shelf); // } //} shelfs.RemoveAll(q => success.Contains(q)); return Ok($"{(success.IsNullOrEmpty() ? "" : $"货架[{string.Join(",", success)}]灭灯成功")}{(shelfs.IsNullOrEmpty() ? "" : $"货架[{string.Join(",", shelfs)}]灭灯失败")}"); } } /// /// 测试控制器 /// [ApiController] [Route("api/[controller]/[action]")] public partial class _TestController : ControllerBase { [HttpGet] public async Task DoSomething(int duration, string code) { var begin = DateTime.Now; Work.Do(() => { while ((DateTime.Now - begin).TotalSeconds <= duration) { //Thread.Sleep(1000); var total = (DateTime.Now - begin).TotalSeconds; var percent = total / duration; //ConsoleExt.WriteLine($"Working {begin:mmssfff} ... {(percent > 1 ? 1 : percent):P0} ...", ConsoleColor.Green); } Logger.Default.Info($"{begin:mmssfff} completed"); }); return Ok($"{code.IsNullOrEmpty("", code + ": ")}{begin:mmssfff} completed"); } [HttpPost] public async Task MESSubmitAsync([FromBody] ApiAction action) { var data = action.Data.Data; var act = Biz.Db.Queryable().First(q => q.ID == data); var result = act.OPTION_1?.ToString().JsonToObject>(); return Ok(result?.ToJson()); } [HttpPost] public async Task InterfaceAsync([FromBody] ApiAction action) { var data = action.Data; //var json = new { // SN = "V025720241120000161", // ItemCode = "160305330", // Qty = 1700, // Unit = "PCS", // Supplier = "V0381", // DeliveryDate = DateTime.Now, // ProdDate = DateTime.Now, // BatchNo = "20241120", // ValidityDays = 365, // SerialNo = 161, // ItemName = "L-CW1323GA 两个装彩盒 隔板 材质300g单粉裱YF加强过哑膜 105 mm 85 mm 3 mm 南泰 ", // Warehouse = "W0001", // ItemModel = "材料 零件 商品", //}; //var result = action.GetResponse("GetSnInfo success.", json, true); //var json = new List //{ // new { // OrderNo = "RE202404308721", // Warehouse = "", // Details = new List // { // new { ItemCode = "442500010", ItemName = "长椭圆形卡针 35 x7.3 x0.9mm SUS304H 斯络泰", Qty = 1000 }, // new { ItemCode = "442500011", ItemName = "短椭圆形卡针 35 x7.3 x0.9mm SUS304H 斯络泰", Qty = 500 } // }, // SnDetails = new List // { // new { SN = "V029720240427000069", ItemCode = "442500010", Qty = 500, Carton = "CV029720240427000001", Pallet = "PV029720240427000001" }, // new { SN = "V029720240427000070", ItemCode = "442500010", Qty = 500, Carton = "CV029720240427000001", Pallet = "PV029720240427000001" }, // new { SN = "V029720240427000071", ItemCode = "442500011", Qty = 500, Carton = "CV029720240427000002", Pallet = "PV029720240427000001" }, // }, // } //}; //var result = action.GetResponse("GetInOrder success.", json, true); //var json = new List //{ // new { // OrderNo = "XC5406-231014306", // Warehouse = "XC003", // Details = new List // { // new { ItemCode = "250100420", ItemName = "IC SMD DC-DC 0.6V 单路 1A 1.5MHZ SOT563 TLV62568DRL TI", Qty = 1000 }, // new { ItemCode = "200203670", ItemName = "CAP SMD X5R 0402 6.3V 4.7uF±20%", Qty = 1500 } // }, // } //}; //var result = action.GetResponse("GetOutOrder success.", json, true); var result = action.GetResponse("OutTask success.", true); return Ok(new { result.Timestamp, result.IsSuccessed, result.Message, result.Data }); } [HttpGet] public async Task RefreashPlugin(string path) { var assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == "Tiger.Business.MES"); // 查找指定名称的程序集 //var assembly = Array.Find(assemblies, a => a.GetName().Name == "Tiger.Business.MES"); //var ass = Assembly.LoadFrom(AppDomain.CurrentDomain.BaseDirectory + "\\Tiger.Business.MES1.dll"); var mes1 = new AssemblyLoadContext("mes1", true); var assembly1 = mes1.LoadFromAssemblyPath(AppDomain.CurrentDomain.BaseDirectory + "\\Tiger.Business1.MES.dll"); mes1.Unloading += context => { Console.WriteLine($"当前卸载{context.Name}程序集:" + string.Join(',', context.Assemblies.Select(x => x.FullName))); }; assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == "Tiger.Business.MES"); var mes2 = new AssemblyLoadContext("mes2", true); var assembly2 = mes2.LoadFromAssemblyPath(AppDomain.CurrentDomain.BaseDirectory + "\\Tiger.Business2.MES.dll"); mes2.Unloading += context => { Console.WriteLine($"当前卸载{context.Name}程序集:" + string.Join(',', context.Assemblies.Select(x => x.FullName))); }; assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == "Tiger.Business.MES"); mes1.Unload(); assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == "Tiger.Business.MES"); mes2.Unload(); assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == "Tiger.Business.MES"); //var newBuilder = new ContainerBuilder(); ////AutoFac 配置文件注入 //AutoFacContainer.Init(newBuilder); //newBuilder.RegisterBuildCallback(scope => //{ // AutoFacContainer.Instance = (IContainer)scope; //}); //var newContainer = newBuilder.Build(); //var trans = AutoFacContainer.Instance.Resolve().Init("action.ID", "Request.Host.Value", "action.Data?.USER_CODE", "OQC001"); //var d = trans.GetDefects(); return Ok($""); } } /// /// MQTT测试控制器 /// [ApiController] [Route("api/[controller]/[action]")] public partial class _MqttTestController : ControllerBase { [HttpGet] public async Task DoSomething1(int duration) { var begin = DateTime.Now; return Ok($"{begin:mmssfff} completed"); } /// /// SendMQTTAsync /// /// /// //[HttpPost] //public async Task SendMQTTAsync([FromBody] ApiAction action) //{ // string msg = ""; // await Task.Run(() => // { // msg = action.ID; // MQTTHelper.Send("TestSendMQTT001", new MQTTMessage() // { // Type = "TestSendMQTT001", // Content = "TestSendMQTT001,测试消息!", // Data = "", // DataType = typeof(String).Name, // IsSuccessed = true, // }); // }); // return Ok(MQTTHelper.Send(action.GetResponse(msg))); //} /// /// DeleteMQTTTopicAsync /// /// /// [HttpPost] public async Task DeleteMQTTTopicAsync([FromBody] ApiAction action) { string msg = ""; await Task.Run(() => { //msg = MQTTHelper.DeleteTopic(action.ID) ? "删除Topic成功" : "删除Topic失败"; }); return Ok(action.GetResponse(msg)); } } }