public KernelOutputFilterSet(INTMinerRoot root, bool isUseJson) { _root = root; _isUseJson = isUseJson; _root.ServerContextWindow <AddKernelOutputFilterCommand>("添加内核输出过滤器", LogEnum.DevConsole, action: (message) => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(message.Input.RegexPattern)) { throw new ValidationException($"{nameof(message.Input.RegexPattern)} can't be null or empty"); } if (_dicById.ContainsKey(message.Input.GetId())) { return; } KernelOutputFilterData entity = new KernelOutputFilterData().Update(message.Input); _dicById.Add(entity.Id, entity); if (!_dicByKernelOutputId.ContainsKey(entity.KernelOutputId)) { _dicByKernelOutputId.Add(entity.KernelOutputId, new List <KernelOutputFilterData>()); } _dicByKernelOutputId[entity.KernelOutputId].Add(entity); var repository = NTMinerRoot.CreateServerRepository <KernelOutputFilterData>(isUseJson); repository.Add(entity); VirtualRoot.Happened(new KernelOutputFilterAddedEvent(entity)); }); _root.ServerContextWindow <UpdateKernelOutputFilterCommand>("更新内核输出过滤器", LogEnum.DevConsole, action: (message) => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(message.Input.RegexPattern)) { throw new ValidationException($"{nameof(message.Input.RegexPattern)} can't be null or empty"); } if (!_dicById.ContainsKey(message.Input.GetId())) { return; } KernelOutputFilterData entity = _dicById[message.Input.GetId()]; if (ReferenceEquals(entity, message.Input)) { return; } entity.Update(message.Input); var repository = NTMinerRoot.CreateServerRepository <KernelOutputFilterData>(isUseJson); repository.Update(entity); VirtualRoot.Happened(new KernelOutputFilterUpdatedEvent(entity)); }); _root.ServerContextWindow <RemoveKernelOutputFilterCommand>("移除内核输出过滤器", LogEnum.DevConsole, action: (message) => { InitOnece(); if (message == null || message.EntityId == Guid.Empty) { throw new ArgumentNullException(); } if (!_dicById.ContainsKey(message.EntityId)) { return; } KernelOutputFilterData entity = _dicById[message.EntityId]; _dicById.Remove(entity.Id); _dicByKernelOutputId[entity.KernelOutputId].Remove(entity); var repository = NTMinerRoot.CreateServerRepository <KernelOutputFilterData>(isUseJson); repository.Remove(entity.Id); VirtualRoot.Happened(new KernelOutputFilterRemovedEvent(entity)); }); }
public KernelOutputFilterSet(INTMinerRoot root) { _root = root; Global.Access <AddKernelOutputFilterCommand>( Guid.Parse("43c09cc6-456c-4e55-95b1-63b5937c5b11"), "添加内核输出过滤器", LogEnum.Log, action: (message) => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(message.Input.RegexPattern)) { throw new ValidationException("KernelOutputFilter RegexPattern can't be null or empty"); } if (_dicById.ContainsKey(message.Input.GetId())) { return; } KernelOutputFilterData entity = new KernelOutputFilterData().Update(message.Input); _dicById.Add(entity.Id, entity); if (!_dicByKernelId.ContainsKey(entity.KernelId)) { _dicByKernelId.Add(entity.KernelId, new List <KernelOutputFilterData>()); } _dicByKernelId[entity.KernelId].Add(entity); var repository = NTMinerRoot.CreateServerRepository <KernelOutputFilterData>(); repository.Add(entity); Global.Happened(new KernelOutputFilterAddedEvent(entity)); }); Global.Access <UpdateKernelOutputFilterCommand>( Guid.Parse("b449bd25-98d8-4a60-9c75-36a6983c6176"), "更新内核输出过滤器", LogEnum.Log, action: (message) => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(message.Input.RegexPattern)) { throw new ValidationException("KernelOutputFilter RegexPattern can't be null or empty"); } if (!_dicById.ContainsKey(message.Input.GetId())) { return; } KernelOutputFilterData entity = _dicById[message.Input.GetId()]; entity.Update(message.Input); var repository = NTMinerRoot.CreateServerRepository <KernelOutputFilterData>(); repository.Update(entity); Global.Happened(new KernelOutputFilterUpdatedEvent(entity)); }); Global.Access <RemoveKernelOutputFilterCommand>( Guid.Parse("11a3a185-3d2e-463e-bd92-94a0db909d32"), "移除内核输出过滤器", LogEnum.Log, action: (message) => { InitOnece(); if (message == null || message.EntityId == Guid.Empty) { throw new ArgumentNullException(); } if (!_dicById.ContainsKey(message.EntityId)) { return; } KernelOutputFilterData entity = _dicById[message.EntityId]; _dicById.Remove(entity.Id); _dicByKernelId[entity.KernelId].Remove(entity); var repository = NTMinerRoot.CreateServerRepository <KernelOutputFilterData>(); repository.Remove(entity.Id); Global.Happened(new KernelOutputFilterRemovedEvent(entity)); }); BootLog.Log(this.GetType().FullName + "接入总线"); }