refactor:完成重构设备的添加,删除,更新。
This commit is contained in:
@@ -31,7 +31,7 @@ namespace DMS.Infrastructure.Repositories
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(AlarmHistory entity)
|
||||
{
|
||||
return await base.DeleteAsync(new List<AlarmHistory> { entity });
|
||||
return await base.DeleteAsync( entity);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -83,6 +83,16 @@ public abstract class BaseRepository<TEntity>
|
||||
_logger.LogInformation($"DeleteAsync Batch {typeof(TEntity).Name}, Count: {entities.Count}, 耗时:{stopwatch.ElapsedMilliseconds}ms");
|
||||
return result;
|
||||
}
|
||||
/// <summary>
|
||||
/// 异步批量删除实体。
|
||||
/// </summary>
|
||||
/// <param name="entities">要删除的实体列表。</param>
|
||||
/// <returns>返回受影响的行数。</returns>
|
||||
public virtual async Task<int> DeleteAsync(TEntity entity)
|
||||
{
|
||||
return await _dbContext.GetInstance().Deleteable(entity)
|
||||
.ExecuteCommandAsync(); ;
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
@@ -171,18 +181,12 @@ public abstract class BaseRepository<TEntity>
|
||||
|
||||
public async Task<List<TEntity>> AddAsync(List<TEntity> entities)
|
||||
{
|
||||
var stopwatch = new Stopwatch();
|
||||
stopwatch.Start();
|
||||
var retrunEntities = new List<TEntity>();
|
||||
foreach (var entity in entities)
|
||||
{
|
||||
var result = await _dbContext.GetInstance().Insertable(entity).ExecuteReturnEntityAsync();
|
||||
retrunEntities.Add(result);
|
||||
}
|
||||
|
||||
stopwatch.Stop();
|
||||
_logger.LogInformation($"AddBatchAsync {typeof(TEntity).Name}耗时:{stopwatch.ElapsedMilliseconds}ms");
|
||||
|
||||
|
||||
return retrunEntities;
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ public class DeviceRepository : BaseRepository<DbDevice>, IDeviceRepository
|
||||
/// </summary>
|
||||
/// <param name="model">要删除的设备实体。</param>
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(Device model) => await base.DeleteAsync(new List<DbDevice> { _mapper.Map<DbDevice>(model) });
|
||||
public async Task<int> DeleteAsync(Device model) => await base.DeleteAsync(_mapper.Map<DbDevice>(model));
|
||||
|
||||
|
||||
public async Task<List<Device>> AddAsync(List<Device> entities)
|
||||
|
||||
@@ -29,20 +29,6 @@ public class MenuRepository : BaseRepository<DbMenu>, IMenuRepository
|
||||
_mapper = mapper;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步获取所有菜单树结构。
|
||||
/// </summary>
|
||||
/// <returns>包含所有菜单树结构的列表。</returns>
|
||||
public async Task<List<MenuBean>> GetMenuTreesAsync()
|
||||
{
|
||||
var stopwatch = new Stopwatch();
|
||||
stopwatch.Start();
|
||||
var dbMenuTree = await _dbContext.GetInstance().Queryable<DbMenu>()
|
||||
.ToTreeAsync(dm => dm.Childrens, dm => dm.ParentId, 0);
|
||||
stopwatch.Stop();
|
||||
_logger.LogInformation($"获取菜单树耗时:{stopwatch.ElapsedMilliseconds}ms");
|
||||
return _mapper.Map<List<MenuBean>>(dbMenuTree);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步根据ID获取单个菜单。
|
||||
@@ -88,64 +74,21 @@ public class MenuRepository : BaseRepository<DbMenu>, IMenuRepository
|
||||
/// </summary>
|
||||
/// <param name="entity">要删除的菜单实体。</param>
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(MenuBean entity) => await base.DeleteAsync(new List<DbMenu> { _mapper.Map<DbMenu>(entity) });
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 异步根据菜单ID删除菜单树(包括子菜单)。
|
||||
/// </summary>
|
||||
/// <param name="id">要删除菜单树的根菜单ID。</param>
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteMenuTreeByIdAsync(int id)
|
||||
public async Task<int> DeleteAsync(MenuBean entity)
|
||||
{
|
||||
var stopwatch = new Stopwatch();
|
||||
stopwatch.Start();
|
||||
int delConut = 0;
|
||||
var childList = await _dbContext.GetInstance().Queryable<DbMenu>()
|
||||
.ToChildListAsync(c => c.ParentId, id);
|
||||
delConut = await _dbContext.GetInstance().Deleteable<DbMenu>(childList)
|
||||
.ExecuteCommandAsync();
|
||||
delConut += await _dbContext.GetInstance().Deleteable<DbMenu>()
|
||||
.Where(m => m.Id == id)
|
||||
.ExecuteCommandAsync();
|
||||
stopwatch.Stop();
|
||||
_logger.LogInformation($"Delete {typeof(DbMenu)},ID={id},耗时:{stopwatch.ElapsedMilliseconds}ms");
|
||||
return delConut;
|
||||
var menuToDeleteList =new List<MenuBean>();
|
||||
foreach (var item in entity.Children)
|
||||
{
|
||||
menuToDeleteList.Add(item);
|
||||
foreach (var menu in item.Children)
|
||||
{
|
||||
menuToDeleteList.Add(menu);
|
||||
}
|
||||
}
|
||||
menuToDeleteList.Add(entity);
|
||||
return await base.DeleteAsync( _mapper.Map<List<DbMenu>>(menuToDeleteList) );
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步根据菜单类型和目标ID删除菜单树。
|
||||
/// </summary>
|
||||
/// <param name="menuType">菜单类型。</param>
|
||||
/// <param name="targetId">目标ID。</param>
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteMenuTreeByTargetIdAsync(MenuType menuType, int targetId)
|
||||
{
|
||||
var stopwatch = new Stopwatch();
|
||||
stopwatch.Start();
|
||||
var menu = await _dbContext.GetInstance().Queryable<DbMenu>().FirstAsync(m => m.MenuType == menuType && m.TargetId == targetId);
|
||||
if (menu == null) return 0;
|
||||
var childList = await _dbContext.GetInstance().Queryable<DbMenu>()
|
||||
.ToChildListAsync(c => c.ParentId, menu.Id);
|
||||
var delConut = await _dbContext.GetInstance().Deleteable<DbMenu>(childList)
|
||||
.ExecuteCommandAsync();
|
||||
stopwatch.Stop();
|
||||
_logger.LogInformation($"Delete {typeof(DbMenu)},TargetId={targetId},耗时:{stopwatch.ElapsedMilliseconds}ms");
|
||||
return delConut;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 异步根据菜单类型和目标ID获取菜单。
|
||||
/// </summary>
|
||||
/// <param name="menuType">菜单类型。</param>
|
||||
/// <param name="targetId">目标ID。</param>
|
||||
/// <returns>对应的菜单实体,如果不存在则为null。</returns>
|
||||
public async Task<MenuBean> GetMenuByTargetIdAsync(MenuType menuType, int targetId)
|
||||
{
|
||||
var dbMenu = await _dbContext.GetInstance().Queryable<DbMenu>().FirstAsync(m => m.MenuType == menuType && m.TargetId == targetId);
|
||||
return _mapper.Map<MenuBean>(dbMenu);
|
||||
}
|
||||
|
||||
|
||||
public async Task<List<MenuBean>> AddAsync(List<MenuBean> entities)
|
||||
@@ -165,7 +108,7 @@ public class MenuRepository : BaseRepository<DbMenu>, IMenuRepository
|
||||
var dbEntities = _mapper.Map<List<DbMenu>>(entities);
|
||||
return await base.UpdateAsync(dbEntities);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 异步根据实体列表批量删除菜单。
|
||||
@@ -174,6 +117,8 @@ public class MenuRepository : BaseRepository<DbMenu>, IMenuRepository
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(List<MenuBean> entities)
|
||||
{
|
||||
var deleteList = entities.SelectMany(c => c.Children).ToList();
|
||||
deleteList.AddRange(entities);
|
||||
var dbEntities = _mapper.Map<List<DbMenu>>(entities);
|
||||
return await base.DeleteAsync(dbEntities);
|
||||
}
|
||||
|
||||
@@ -75,7 +75,7 @@ public class MqttAliasRepository : BaseRepository<DbMqttAlias>, IMqttAliasReposi
|
||||
/// </summary>
|
||||
/// <param name="entity">要删除的变量与MQTT别名关联实体。</param>
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(MqttAlias entity) => await base.DeleteAsync(new List<DbMqttAlias> { _mapper.Map<DbMqttAlias>(entity) });
|
||||
public async Task<int> DeleteAsync(MqttAlias entity) => await base.DeleteAsync(_mapper.Map<DbMqttAlias>(entity));
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -72,7 +72,7 @@ public class MqttServerRepository : BaseRepository<DbMqttServer>, IMqttServerRep
|
||||
/// </summary>
|
||||
/// <param name="entity">要删除的MQTT服务器实体。</param>
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(MqttServer entity) => await base.DeleteAsync(new List<DbMqttServer> { _mapper.Map<DbMqttServer>(entity) });
|
||||
public async Task<int> DeleteAsync(MqttServer entity) => await base.DeleteAsync(_mapper.Map<DbMqttServer>(entity));
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -97,7 +97,7 @@ public class NlogRepository : BaseRepository<DbNlog>, INlogRepository
|
||||
public new async Task<int> DeleteAsync(Core.Models.Nlog entity)
|
||||
{
|
||||
var dbEntity = _mapper.Map<DbNlog>(entity);
|
||||
return await base.DeleteAsync(new List<DbNlog> { dbEntity });
|
||||
return await base.DeleteAsync(dbEntity);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ namespace DMS.Infrastructure.Repositories
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(Trigger entity)
|
||||
{
|
||||
return await base.DeleteAsync(new List<DbTrigger> { _mapper.Map<DbTrigger>(entity) });
|
||||
return await base.DeleteAsync(_mapper.Map<DbTrigger>(entity));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ public class TriggerVariableRepository : BaseRepository<DbTriggerVariable>, ITri
|
||||
/// </summary>
|
||||
/// <param name="entity">要删除的触发器与变量关联实体。</param>
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(TriggerVariable entity) => await base.DeleteAsync(new List<DbTriggerVariable> { _mapper.Map<DbTriggerVariable>(entity) });
|
||||
public async Task<int> DeleteAsync(TriggerVariable entity) => await base.DeleteAsync(_mapper.Map<DbTriggerVariable>(entity));
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ public class UserRepository : BaseRepository<DbUser>, IUserRepository
|
||||
/// </summary>
|
||||
/// <param name="entity">要删除的用户实体。</param>
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(User entity) => await base.DeleteAsync(new List<DbUser> { _mapper.Map<DbUser>(entity) });
|
||||
public async Task<int> DeleteAsync(User entity) => await base.DeleteAsync(_mapper.Map<DbUser>(entity));
|
||||
|
||||
public async Task<int> UpdateAsync(List<User> entities)
|
||||
{
|
||||
|
||||
@@ -74,7 +74,7 @@ public class VariableHistoryRepository : BaseRepository<DbVariableHistory>, IVar
|
||||
/// </summary>
|
||||
/// <param name="entity">要删除的变量历史实体。</param>
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(VariableHistory entity) => await base.DeleteAsync(new List<DbVariableHistory> { _mapper.Map<DbVariableHistory>(entity) });
|
||||
public async Task<int> DeleteAsync(VariableHistory entity) => await base.DeleteAsync(_mapper.Map<DbVariableHistory>(entity));
|
||||
|
||||
public async Task<int> UpdateAsync(List<VariableHistory> entities)
|
||||
{
|
||||
|
||||
@@ -73,7 +73,7 @@ public class VariableRepository : BaseRepository<DbVariable>, IVariableRepositor
|
||||
/// </summary>
|
||||
/// <param name="entity">要删除的变量实体。</param>
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(Variable entity) => await base.DeleteAsync(new List<DbVariable> { _mapper.Map<DbVariable>(entity) });
|
||||
public async Task<int> DeleteAsync(Variable entity) => await base.DeleteAsync(_mapper.Map<DbVariable>(entity));
|
||||
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -93,13 +93,12 @@ public class VariableTableRepository : BaseRepository<DbVariableTable>, IVariabl
|
||||
public async Task<int> DeleteAsync(VariableTable entity)
|
||||
{
|
||||
//删除变量表中的所有变量
|
||||
await _variableRepository.DeleteByVariableTableIdAsync(entity.Id);
|
||||
await _variableRepository.DeleteAsync(entity.Variables);
|
||||
//删除变量表
|
||||
return await base.DeleteAsync(new List<DbVariableTable> { _mapper.Map<DbVariableTable>(entity) });
|
||||
return await base.DeleteAsync( _mapper.Map<DbVariableTable>(entity));
|
||||
}
|
||||
|
||||
|
||||
|
||||
public async Task<List<VariableTable>> AddAsync(List<VariableTable> entities)
|
||||
{
|
||||
var dbEntities = _mapper.Map<List<DbVariableTable>>(entities);
|
||||
@@ -127,6 +126,18 @@ public class VariableTableRepository : BaseRepository<DbVariableTable>, IVariabl
|
||||
/// <returns>受影响的行数。</returns>
|
||||
public async Task<int> DeleteAsync(List<VariableTable> entities)
|
||||
{
|
||||
//删除所有变量
|
||||
List<Variable> deleteVariableList = new List<Variable>();
|
||||
foreach (var table in entities)
|
||||
{
|
||||
foreach (var variable in table.Variables)
|
||||
{
|
||||
deleteVariableList.Add(variable);
|
||||
}
|
||||
|
||||
}
|
||||
await _variableRepository.DeleteAsync(deleteVariableList);
|
||||
|
||||
var dbEntities = _mapper.Map<List<DbVariableTable>>(entities);
|
||||
return await base.DeleteAsync(dbEntities);
|
||||
}
|
||||
|
||||
@@ -17,7 +17,7 @@ namespace DMS.Infrastructure.Services.Mqtt
|
||||
private readonly ILogger<MqttBackgroundService> _logger;
|
||||
private readonly IMqttServiceManager _mqttServiceManager;
|
||||
private readonly IEventService _eventService;
|
||||
private readonly IAppStorageService _appStorageService;
|
||||
private readonly IAppDataService _appDataService;
|
||||
private readonly IAppCenterService _appCenterService;
|
||||
private readonly ConcurrentDictionary<int, MqttServer> _mqttServers;
|
||||
private readonly SemaphoreSlim _reloadSemaphore = new(0);
|
||||
@@ -26,13 +26,13 @@ namespace DMS.Infrastructure.Services.Mqtt
|
||||
ILogger<MqttBackgroundService> logger,
|
||||
IMqttServiceManager mqttServiceManager,
|
||||
IEventService eventService,
|
||||
IAppStorageService appStorageService,
|
||||
IAppDataService appStorageService,
|
||||
IAppCenterService appCenterService)
|
||||
{
|
||||
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
||||
_mqttServiceManager = mqttServiceManager ?? throw new ArgumentNullException(nameof(mqttServiceManager));
|
||||
_eventService = eventService;
|
||||
_appStorageService = appStorageService;
|
||||
_appDataService = appStorageService;
|
||||
_appCenterService = appCenterService ?? throw new ArgumentNullException(nameof(appCenterService));
|
||||
_mqttServers = new ConcurrentDictionary<int, MqttServer>();
|
||||
|
||||
@@ -186,7 +186,7 @@ namespace DMS.Infrastructure.Services.Mqtt
|
||||
_mqttServers.Clear();
|
||||
|
||||
// 从数据服务中心获取所有激活的MQTT服务器
|
||||
var mqttServers = _appStorageService.MqttServers.Values.ToList();
|
||||
var mqttServers = _appDataService.MqttServers.Values.ToList();
|
||||
|
||||
foreach (var mqttServer in mqttServers)
|
||||
{
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace DMS.Infrastructure.Services.OpcUa
|
||||
public class OptimizedOpcUaBackgroundService : BackgroundService
|
||||
{
|
||||
private readonly IAppCenterService _appCenterService;
|
||||
private readonly IAppStorageService _appStorageService;
|
||||
private readonly IAppDataService _appDataService;
|
||||
private readonly IEventService _eventService;
|
||||
private readonly IOpcUaServiceManager _opcUaServiceManager;
|
||||
private readonly ILogger<OptimizedOpcUaBackgroundService> _logger;
|
||||
@@ -23,13 +23,13 @@ namespace DMS.Infrastructure.Services.OpcUa
|
||||
|
||||
public OptimizedOpcUaBackgroundService(
|
||||
IAppCenterService appCenterService,
|
||||
IAppStorageService appStorageService,
|
||||
IAppDataService appStorageService,
|
||||
IEventService eventService,
|
||||
IOpcUaServiceManager opcUaServiceManager,
|
||||
ILogger<OptimizedOpcUaBackgroundService> logger)
|
||||
{
|
||||
_appCenterService = appCenterService ?? throw new ArgumentNullException(nameof(appCenterService));
|
||||
_appStorageService = appStorageService;
|
||||
_appDataService = appStorageService;
|
||||
_opcUaServiceManager = opcUaServiceManager ?? throw new ArgumentNullException(nameof(opcUaServiceManager));
|
||||
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
||||
_eventService = eventService;
|
||||
@@ -60,7 +60,7 @@ namespace DMS.Infrastructure.Services.OpcUa
|
||||
if (stoppingToken.IsCancellationRequested)
|
||||
break;
|
||||
|
||||
if (_appStorageService.Devices.IsEmpty)
|
||||
if (_appDataService.Devices.IsEmpty)
|
||||
{
|
||||
_logger.LogInformation("没有可用的OPC UA设备,等待设备列表更新...");
|
||||
continue;
|
||||
@@ -96,7 +96,7 @@ namespace DMS.Infrastructure.Services.OpcUa
|
||||
try
|
||||
{
|
||||
// 获取所有活动的OPC UA设备
|
||||
var opcUaDevices = _appStorageService.Devices.Values
|
||||
var opcUaDevices = _appDataService.Devices.Values
|
||||
.Where(d => d.Protocol == ProtocolType.OpcUa )
|
||||
.ToList();
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace DMS.Infrastructure.Services.S7;
|
||||
public class OptimizedS7BackgroundService : BackgroundService
|
||||
{
|
||||
private readonly IAppCenterService _appCenterService;
|
||||
private readonly IAppStorageService _appStorageService;
|
||||
private readonly IAppDataService _appDataService;
|
||||
private readonly IEventService _eventService;
|
||||
private readonly IDataProcessingService _dataProcessingService;
|
||||
private readonly IS7ServiceManager _s7ServiceManager;
|
||||
@@ -39,14 +39,14 @@ public class OptimizedS7BackgroundService : BackgroundService
|
||||
/// </summary>
|
||||
public OptimizedS7BackgroundService(
|
||||
IAppCenterService appCenterService,
|
||||
IAppStorageService appStorageService,
|
||||
IAppDataService appStorageService,
|
||||
IEventService eventService,
|
||||
IDataProcessingService dataProcessingService,
|
||||
IS7ServiceManager s7ServiceManager,
|
||||
ILogger<OptimizedS7BackgroundService> logger)
|
||||
{
|
||||
_appCenterService = appCenterService;
|
||||
_appStorageService = appStorageService;
|
||||
_appDataService = appStorageService;
|
||||
_eventService = eventService;
|
||||
_dataProcessingService = dataProcessingService;
|
||||
_s7ServiceManager = s7ServiceManager;
|
||||
@@ -76,7 +76,7 @@ public class OptimizedS7BackgroundService : BackgroundService
|
||||
break;
|
||||
}
|
||||
|
||||
if (_appStorageService.Devices.IsEmpty)
|
||||
if (_appDataService.Devices.IsEmpty)
|
||||
{
|
||||
_logger.LogInformation("没有可用的S7设备,等待设备列表更新...");
|
||||
continue;
|
||||
@@ -124,7 +124,7 @@ public class OptimizedS7BackgroundService : BackgroundService
|
||||
_variablesByPollingInterval.Clear();
|
||||
_logger.LogInformation("开始加载S7变量....");
|
||||
|
||||
var s7Devices = _appStorageService
|
||||
var s7Devices = _appDataService
|
||||
.Devices.Values.Where(d => d.Protocol == ProtocolType.S7 && d.IsActive == true)
|
||||
.ToList();
|
||||
|
||||
@@ -161,7 +161,7 @@ public class OptimizedS7BackgroundService : BackgroundService
|
||||
/// </summary>
|
||||
private async Task ConnectS7ServiceAsync(CancellationToken stoppingToken)
|
||||
{
|
||||
var s7Devices = _appStorageService
|
||||
var s7Devices = _appDataService
|
||||
.Devices.Values.Where(d => d.Protocol == ProtocolType.S7 && d.IsActive == true)
|
||||
.ToList();
|
||||
|
||||
@@ -207,7 +207,7 @@ public class OptimizedS7BackgroundService : BackgroundService
|
||||
private async Task PollVariablesForDeviceAsync(S7DeviceContext context, List<Variable> variables,
|
||||
CancellationToken stoppingToken)
|
||||
{
|
||||
if (!_appStorageService.Devices.TryGetValue(context.Device.Id, out var device))
|
||||
if (!_appDataService.Devices.TryGetValue(context.Device.Id, out var device))
|
||||
{
|
||||
_logger.LogWarning($"轮询时没有找到设备ID:{context.Device.Id}");
|
||||
return;
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace DMS.Infrastructure.Services.S7
|
||||
private readonly IEventService _eventService;
|
||||
private readonly IDataProcessingService _dataProcessingService;
|
||||
private readonly IAppCenterService _appCenterService;
|
||||
private readonly IAppStorageService _appStorageService;
|
||||
private readonly IAppDataService _appDataService;
|
||||
private readonly IS7ServiceFactory _s7ServiceFactory;
|
||||
private readonly ConcurrentDictionary<int, S7DeviceContext> _deviceContexts;
|
||||
private readonly SemaphoreSlim _semaphore;
|
||||
@@ -31,7 +31,7 @@ namespace DMS.Infrastructure.Services.S7
|
||||
IEventService eventService,
|
||||
IDataProcessingService dataProcessingService,
|
||||
IAppCenterService appCenterService,
|
||||
IAppStorageService appStorageService,
|
||||
IAppDataService appStorageService,
|
||||
IS7ServiceFactory s7ServiceFactory)
|
||||
{
|
||||
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
|
||||
@@ -40,7 +40,7 @@ namespace DMS.Infrastructure.Services.S7
|
||||
= dataProcessingService ?? throw new ArgumentNullException(nameof(dataProcessingService));
|
||||
_appCenterService
|
||||
= appCenterService ?? throw new ArgumentNullException(nameof(appCenterService));
|
||||
_appStorageService = appStorageService;
|
||||
_appDataService = appStorageService;
|
||||
_s7ServiceFactory = s7ServiceFactory ?? throw new ArgumentNullException(nameof(s7ServiceFactory));
|
||||
_deviceContexts = new ConcurrentDictionary<int, S7DeviceContext>();
|
||||
_semaphore = new SemaphoreSlim(10, 10); // 默认最大并发连接数为10
|
||||
@@ -54,7 +54,7 @@ namespace DMS.Infrastructure.Services.S7
|
||||
// if (_deviceContexts.TryGetValue(e.DeviceId, out var s7DeviceContext))
|
||||
// {
|
||||
|
||||
// var variables = _appStorageService.Variables.Values.Where(v => e.VariableIds.Contains(v.Id))
|
||||
// var variables = _appDataService.Variables.Values.Where(v => e.VariableIds.Contains(v.Id))
|
||||
// .ToList();
|
||||
// foreach (var variable in variables)
|
||||
// {
|
||||
|
||||
Reference in New Issue
Block a user