Example #1
0
        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));
            });
        }
Example #2
0
        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 + "接入总线");
        }