public SysDicSet(IServerContext context) { _context = context; context.AddCmdPath <AddSysDicCommand>(LogEnum.DevConsole, action: message => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(message.Input.Code)) { throw new ValidationException("dic code can't be null or empty"); } if (_dicById.ContainsKey(message.Input.GetId())) { return; } if (_dicByCode.ContainsKey(message.Input.Code)) { throw new ValidationException("编码重复"); } SysDicData entity = new SysDicData().Update(message.Input); _dicById.Add(entity.Id, entity); _dicByCode.Add(entity.Code, entity); var repository = context.CreateServerRepository <SysDicData>(); repository.Add(entity); VirtualRoot.RaiseEvent(new SysDicAddedEvent(message.MessageId, entity)); }, location: this.GetType()); context.AddCmdPath <UpdateSysDicCommand>(LogEnum.DevConsole, action: message => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(message.Input.Code)) { throw new ValidationException("sysDic code can't be null or empty"); } if (!_dicById.TryGetValue(message.Input.GetId(), out SysDicData entity)) { return; } if (ReferenceEquals(entity, message.Input)) { return; } entity.Update(message.Input); var repository = context.CreateServerRepository <SysDicData>(); repository.Update(entity); VirtualRoot.RaiseEvent(new SysDicUpdatedEvent(message.MessageId, entity)); }, location: this.GetType()); context.AddCmdPath <RemoveSysDicCommand>(LogEnum.DevConsole, action: message => { InitOnece(); if (message == null || message.EntityId == Guid.Empty) { throw new ArgumentNullException(); } if (!_dicById.ContainsKey(message.EntityId)) { return; } SysDicData entity = _dicById[message.EntityId]; List <Guid> toRemoves = context.SysDicItemSet.GetSysDicItems(entity.Code).Select(a => a.GetId()).ToList(); foreach (var id in toRemoves) { VirtualRoot.Execute(new RemoveSysDicItemCommand(id)); } _dicById.Remove(entity.Id); if (_dicByCode.ContainsKey(entity.Code)) { _dicByCode.Remove(entity.Code); } var repository = context.CreateServerRepository <SysDicData>(); repository.Remove(entity.Id); VirtualRoot.RaiseEvent(new SysDicRemovedEvent(message.MessageId, entity)); }, location: this.GetType()); }
public SysDicSet(INTMinerRoot root, bool isUseJson) { _root = root; _isUseJson = isUseJson; _root.ServerContextWindow <AddSysDicCommand>("添加系统字典", LogEnum.DevConsole, action: message => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(message.Input.Code)) { throw new ValidationException("dic code can't be null or empty"); } if (_dicById.ContainsKey(message.Input.GetId())) { return; } if (_dicByCode.ContainsKey(message.Input.Code)) { throw new ValidationException("编码重复"); } SysDicData entity = new SysDicData().Update(message.Input); _dicById.Add(entity.Id, entity); _dicByCode.Add(entity.Code, entity); var repository = NTMinerRoot.CreateServerRepository <SysDicData>(isUseJson); repository.Add(entity); VirtualRoot.Happened(new SysDicAddedEvent(entity)); }); _root.ServerContextWindow <UpdateSysDicCommand>("更新系统字典", LogEnum.DevConsole, action: message => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(message.Input.Code)) { throw new ValidationException("sysDic code can't be null or empty"); } if (!_dicById.ContainsKey(message.Input.GetId())) { return; } SysDicData entity = _dicById[message.Input.GetId()]; if (ReferenceEquals(entity, message.Input)) { return; } entity.Update(message.Input); var repository = NTMinerRoot.CreateServerRepository <SysDicData>(isUseJson); repository.Update(entity); VirtualRoot.Happened(new SysDicUpdatedEvent(entity)); }); _root.ServerContextWindow <RemoveSysDicCommand>("移除系统字典", LogEnum.DevConsole, action: message => { InitOnece(); if (message == null || message.EntityId == Guid.Empty) { throw new ArgumentNullException(); } if (!_dicById.ContainsKey(message.EntityId)) { return; } SysDicData entity = _dicById[message.EntityId]; List <Guid> toRemoves = root.SysDicItemSet.GetSysDicItems(entity.Code).Select(a => a.GetId()).ToList(); foreach (var id in toRemoves) { VirtualRoot.Execute(new RemoveSysDicItemCommand(id)); } _dicById.Remove(entity.Id); if (_dicByCode.ContainsKey(entity.Code)) { _dicByCode.Remove(entity.Code); } var repository = NTMinerRoot.CreateServerRepository <SysDicData>(isUseJson); repository.Remove(entity.Id); VirtualRoot.Happened(new SysDicRemovedEvent(entity)); }); }