public FileWriterSet(IServerContext context) { context.BuildCmdPath <AddFileWriterCommand>("添加文件书写器", LogEnum.DevConsole, action: (message) => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (_dicById.ContainsKey(message.Input.GetId())) { return; } if (string.IsNullOrEmpty(message.Input.FileUrl) || string.IsNullOrEmpty(message.Input.Body)) { throw new ValidationException("FileWriter name and body can't be null or empty"); } FileWriterData entity = new FileWriterData().Update(message.Input); _dicById.Add(entity.Id, entity); var repository = NTMinerRoot.CreateServerRepository <FileWriterData>(); repository.Add(entity); VirtualRoot.RaiseEvent(new FileWriterAddedEvent(message.Id, entity)); }); context.BuildCmdPath <UpdateFileWriterCommand>("更新文件书写器", LogEnum.DevConsole, action: (message) => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(message.Input.FileUrl) || string.IsNullOrEmpty(message.Input.Body)) { throw new ValidationException("FileWriter name and body can't be null or empty"); } if (!_dicById.ContainsKey(message.Input.GetId())) { return; } FileWriterData entity = _dicById[message.Input.GetId()]; if (ReferenceEquals(entity, message.Input)) { return; } entity.Update(message.Input); var repository = NTMinerRoot.CreateServerRepository <FileWriterData>(); repository.Update(entity); VirtualRoot.RaiseEvent(new FileWriterUpdatedEvent(message.Id, entity)); }); context.BuildCmdPath <RemoveFileWriterCommand>("移除文件书写器", LogEnum.DevConsole, action: (message) => { InitOnece(); if (message == null || message.EntityId == Guid.Empty) { throw new ArgumentNullException(); } if (!_dicById.ContainsKey(message.EntityId)) { return; } FileWriterData entity = _dicById[message.EntityId]; _dicById.Remove(entity.GetId()); var repository = NTMinerRoot.CreateServerRepository <FileWriterData>(); repository.Remove(message.EntityId); VirtualRoot.RaiseEvent(new FileWriterRemovedEvent(message.Id, entity)); }); }
public FileWriterSet(INTMinerRoot root, bool isUseJson) { _isUseJson = isUseJson; _root = root; _root.ServerContextWindow <AddFileWriterCommand>("添加文件书写器", LogEnum.DevConsole, action: (message) => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (_dicById.ContainsKey(message.Input.GetId())) { return; } if (string.IsNullOrEmpty(message.Input.FileUrl) || string.IsNullOrEmpty(message.Input.Body)) { throw new ValidationException("FileWriter name and body can't be null or empty"); } FileWriterData entity = new FileWriterData().Update(message.Input); _dicById.Add(entity.Id, entity); var repository = NTMinerRoot.CreateServerRepository <FileWriterData>(isUseJson); repository.Add(entity); VirtualRoot.Happened(new FileWriterAddedEvent(entity)); }); _root.ServerContextWindow <UpdateFileWriterCommand>("更新文件书写器", LogEnum.DevConsole, action: (message) => { InitOnece(); if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) { throw new ArgumentNullException(); } if (string.IsNullOrEmpty(message.Input.FileUrl) || string.IsNullOrEmpty(message.Input.Body)) { throw new ValidationException("FileWriter name and body can't be null or empty"); } if (!_dicById.ContainsKey(message.Input.GetId())) { return; } FileWriterData entity = _dicById[message.Input.GetId()]; if (ReferenceEquals(entity, message.Input)) { return; } entity.Update(message.Input); var repository = NTMinerRoot.CreateServerRepository <FileWriterData>(isUseJson); repository.Update(entity); VirtualRoot.Happened(new FileWriterUpdatedEvent(entity)); }); _root.ServerContextWindow <RemoveFileWriterCommand>("移除组", LogEnum.DevConsole, action: (message) => { InitOnece(); if (message == null || message.EntityId == Guid.Empty) { throw new ArgumentNullException(); } if (!_dicById.ContainsKey(message.EntityId)) { return; } FileWriterData entity = _dicById[message.EntityId]; // TODO:移除内核对文件书写器的引用关系 _dicById.Remove(entity.GetId()); var repository = NTMinerRoot.CreateServerRepository <FileWriterData>(isUseJson); repository.Remove(message.EntityId); VirtualRoot.Happened(new FileWriterRemovedEvent(entity)); }); }