From 0300ea2598ff79afa45808aaafbe8d89107ecc2d Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 9 Oct 2023 09:32:34 +0800 Subject: [PATCH] =?UTF-8?q?BaseWareHouseService=20=E7=B1=BB=E9=9D=99?= =?UTF-8?q?=E6=80=81=E5=87=BD=E6=95=B0=E6=89=93=E5=9B=9E=E5=8E=9F=E5=BD=A2?= =?UTF-8?q?=EF=BC=8C=E6=94=B9=E4=B8=BA=E5=BB=B6=E8=BF=9F=E5=8A=A0=E8=BD=BD?= =?UTF-8?q?=EF=BC=8C=E4=BB=A5=E9=81=BF=E5=85=8D=E6=9C=AA=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E7=94=A8=E6=88=B7=E6=83=85=E5=86=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Tnb.WarehouseMgr/BaseWareHouseService.cs | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs index 48105be6..73368235 100644 --- a/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs +++ b/WarehouseMgr/Tnb.WarehouseMgr/BaseWareHouseService.cs @@ -54,7 +54,7 @@ namespace Tnb.WarehouseMgr private static Dictionary _storeMap = new(StringComparer.OrdinalIgnoreCase); public OverideVisualDevFunc OverideFuncs { get; } = new OverideVisualDevFunc(); private readonly ChannelWriter _channelWriter; - + public BaseWareHouseService(ChannelWriter? channelWriter = default) @@ -64,17 +64,23 @@ namespace Tnb.WarehouseMgr static BaseWareHouseService() { - var serviceTypes = App.EffectiveTypes.Where(u => u.IsClass && !u.IsInterface && !u.IsAbstract && typeof(IWHStorageService).IsAssignableFrom(u)).ToList(); - foreach (var serviceType in serviceTypes) + _stroageMapLazy = new Lazy>(() => { - var callerName = serviceType.GetCustomAttribute()?.Name ?? string.Empty; - if (!callerName.IsNullOrEmpty()) + Dictionary map = new(); + var serviceTypes = App.EffectiveTypes.Where(u => u.IsClass && !u.IsInterface && !u.IsAbstract && typeof(IWHStorageService).IsAssignableFrom(u)).ToList(); + foreach (var serviceType in serviceTypes) { - var obj = Activator.CreateInstance(serviceType) as IWHStorageService; - if (obj == null) continue; - _storeMap[callerName] = obj; + var callerName = serviceType.GetCustomAttribute()?.Name ?? string.Empty; + if (!callerName.IsNullOrEmpty()) + { + var obj = Activator.CreateInstance(serviceType) as IWHStorageService; + if (obj == null) continue; + map[callerName] = obj; + } } - } + return map; + }); + } protected Task GetUserIdentity(string? asscessToken = null) @@ -140,9 +146,9 @@ namespace Tnb.WarehouseMgr [NonAction] protected async Task DoUpdate(WareHouseUpInput input) { - if (_storeMap.ContainsKey(input.loginType)) + if (_stroageMapLazy.Value.ContainsKey(input.loginType)) { - await _storeMap[input.loginType].Do(input); + await _stroageMapLazy.Value[input.loginType].Do(input); } } [NonAction] @@ -229,7 +235,7 @@ namespace Tnb.WarehouseMgr } } if (0 != ret) - return ; + return; // sample setting. PPLBUtility.B_Set_Originpoint(0, 0); @@ -251,7 +257,7 @@ namespace Tnb.WarehouseMgr PPLBUtility.B_Prn_Text(200, 50, 0, 2, 2, 2, 'N', code); //barcode. PPLBUtility.B_Prn_Barcode(50, 100, 0, "1", 3, 5, 70, 'B', code);//have a counter - // output. + // output. PPLBUtility.B_Print_Out(1);// copy 2. } }