ntminer 6 éve
szülő
commit
465fb33b50

+ 1 - 1
src/AppModels/AppStatic.cs

@@ -357,7 +357,7 @@ namespace NTMiner {
             }
         }
 
-        public static IEnumerable<EnumItem<WorkerEventChannel>> WorkerEventChannelEnumItems {
+        public static IEnumerable<EnumItem<WorkerMessageChannel>> WorkerEventChannelEnumItems {
             get {
                 return NTMinerRoot.WorkerEventChannelEnumItems;
             }

+ 2 - 2
src/AppModels/Vms/StartStopMineButtonViewModel.cs

@@ -16,13 +16,13 @@ namespace NTMiner.Vms {
                 Write.Stopwatch.Restart();
 #endif
             this.StartMine = new DelegateCommand(() => {
-                VirtualRoot.WorkerEvent(WorkerEventChannel.This, nameof(StartStopMineButtonViewModel), WorkerEventType.Info, $"开始挖矿");
+                VirtualRoot.WorkerEvent(WorkerMessageChannel.This, nameof(StartStopMineButtonViewModel), WorkerMessageType.Info, $"开始挖矿");
                 this.MinerProfile.IsMining = true;
                 NTMinerRoot.Instance.StartMine();
                 BtnStopText = "正在挖矿";
             });
             this.StopMine = new DelegateCommand(() => {
-                VirtualRoot.WorkerEvent(WorkerEventChannel.This, nameof(StartStopMineButtonViewModel), WorkerEventType.Info, $"停止挖矿");
+                VirtualRoot.WorkerEvent(WorkerMessageChannel.This, nameof(StartStopMineButtonViewModel), WorkerMessageType.Info, $"停止挖矿");
                 if (!NTMinerRoot.Instance.IsMining) {
                     this.MinerProfile.IsMining = false;
                 }

+ 26 - 26
src/AppModels/Vms/WorkerEventViewModel.cs

@@ -4,28 +4,28 @@ using System.Windows;
 using System.Windows.Media;
 
 namespace NTMiner.Vms {
-    public class WorkerEventViewModel : ViewModelBase, IWorkerEvent {
+    public class WorkerEventViewModel : ViewModelBase, IWorkerMessage {
         private static readonly StreamGeometry ErrorIcon = (StreamGeometry)Application.Current.Resources["Icon_Error"];
         private static readonly StreamGeometry WarnIcon = (StreamGeometry)Application.Current.Resources["Icon_Waring"];
         private static readonly StreamGeometry InfoIcon = (StreamGeometry)Application.Current.Resources["Icon_Info"];
         private static readonly SolidColorBrush IconFillColor = (SolidColorBrush)Application.Current.Resources["IconFillColor"];
         private static readonly SolidColorBrush Warn = (SolidColorBrush)Application.Current.Resources["Warn"];
 
-        private readonly IWorkerEvent _data;
-        private readonly WorkerEventChannel _channel;
-        private readonly WorkerEventType _eventType;
+        private readonly IWorkerMessage _data;
+        private readonly WorkerMessageChannel _channel;
+        private readonly WorkerMessageType _eventType;
 
-        public WorkerEventChannel ChannelEnum {
+        public WorkerMessageChannel ChannelEnum {
             get { return _channel; }
         }
 
-        public WorkerEventType EventTypeEnum {
+        public WorkerMessageType MessageTypeEnum {
             get { return _eventType; }
         }
 
-        public WorkerEventViewModel(IWorkerEvent data) {
+        public WorkerEventViewModel(IWorkerMessage data) {
             _data = data;
-            _data.EventType.TryParse(out _eventType);
+            _data.MessageType.TryParse(out _eventType);
             _data.Channel.TryParse(out _channel);
         }
 
@@ -53,38 +53,38 @@ namespace NTMiner.Vms {
 
         public string ChannelText {
             get {
-                if (_channel != WorkerEventChannel.Unspecified) {
+                if (_channel != WorkerMessageChannel.Unspecified) {
                     return _channel.GetDescription();
                 }
                 return "未知";
             }
         }
 
-        public string EventType {
+        public string MessageType {
             get {
-                return _data.EventType;
+                return _data.MessageType;
             }
         }
 
-        public string EventTypeText {
+        public string MessageTypeText {
             get {
-                if (_eventType != WorkerEventType.Undefined) {
+                if (_eventType != WorkerMessageType.Undefined) {
                     return _eventType.GetDescription();
                 }
                 return "未知";
             }
         }
 
-        public StreamGeometry EventTypeIcon {
+        public StreamGeometry MessageTypeIcon {
             get {
                 switch (_eventType) {
-                    case WorkerEventType.Undefined:
+                    case WorkerMessageType.Undefined:
                         return null;
-                    case WorkerEventType.Info:
+                    case WorkerMessageType.Info:
                         return InfoIcon;
-                    case WorkerEventType.Warn:
+                    case WorkerMessageType.Warn:
                         return WarnIcon;
-                    case WorkerEventType.Error:
+                    case WorkerMessageType.Error:
                         return ErrorIcon;
                     default:
                         return null;
@@ -95,13 +95,13 @@ namespace NTMiner.Vms {
         public SolidColorBrush IconFill {
             get {
                 switch (_eventType) {
-                    case WorkerEventType.Undefined:
+                    case WorkerMessageType.Undefined:
                         return Wpf.Util.BlackBrush;
-                    case WorkerEventType.Info:
+                    case WorkerMessageType.Info:
                         return IconFillColor;
-                    case WorkerEventType.Warn:
+                    case WorkerMessageType.Warn:
                         return Warn;
-                    case WorkerEventType.Error:
+                    case WorkerMessageType.Error:
                         return Wpf.Util.RedBrush;
                     default:
                         return Wpf.Util.BlackBrush;
@@ -112,13 +112,13 @@ namespace NTMiner.Vms {
         public SolidColorBrush Foreground {
             get {
                 switch (_eventType) {
-                    case WorkerEventType.Undefined:
+                    case WorkerMessageType.Undefined:
                         return Wpf.Util.BlackBrush;
-                    case WorkerEventType.Info:
+                    case WorkerMessageType.Info:
                         return Wpf.Util.BlackBrush;
-                    case WorkerEventType.Warn:
+                    case WorkerMessageType.Warn:
                         return Warn;
-                    case WorkerEventType.Error:
+                    case WorkerMessageType.Error:
                         return Wpf.Util.RedBrush;
                     default:
                         return Wpf.Util.BlackBrush;

+ 34 - 34
src/AppModels/Vms/WorkerEventsViewModel.cs

@@ -6,7 +6,7 @@
     public class WorkerEventsViewModel : ViewModelBase {
         private readonly ObservableCollection<WorkerEventViewModel> _workerEventVms;
         private ObservableCollection<WorkerEventViewModel> _queyResults;
-        private EnumItem<WorkerEventChannel> _selectedChannel;
+        private EnumItem<WorkerMessageChannel> _selectedChannel;
         private int _errorCount;
         private int _warnCount;
         private int _infoCount;
@@ -16,34 +16,34 @@
             _workerEventVms = new ObservableCollection<WorkerEventViewModel>(data);
             _queyResults = _workerEventVms;
             foreach (var item in _workerEventVms) {
-                switch (item.EventTypeEnum) {
-                    case WorkerEventType.Error:
+                switch (item.MessageTypeEnum) {
+                    case WorkerMessageType.Error:
                         _errorCount++;
                         break;
-                    case WorkerEventType.Warn:
+                    case WorkerMessageType.Warn:
                         _warnCount++;
                         break;
-                    case WorkerEventType.Info:
+                    case WorkerMessageType.Info:
                         _infoCount++;
                         break;
                     default:
                         break;
                 }
             }
-            _selectedChannel = WorkerEventChannel.Unspecified.GetEnumItem();
+            _selectedChannel = WorkerMessageChannel.Unspecified.GetEnumItem();
 
             VirtualRoot.CreateEventPath<WorkerEvent>("发生了挖矿事件后刷新Vm内存", LogEnum.DevConsole,
                 action: message => {
                     var vm = new WorkerEventViewModel(message.Source);
                     _workerEventVms.Insert(0, vm);
-                    switch (vm.EventTypeEnum) {
-                        case WorkerEventType.Error:
+                    switch (vm.MessageTypeEnum) {
+                        case WorkerMessageType.Error:
                             ErrorCount++;
                             break;
-                        case WorkerEventType.Warn:
+                        case WorkerMessageType.Warn:
                             WarnCount++;
                             break;
-                        case WorkerEventType.Info:
+                        case WorkerMessageType.Info:
                             InfoCount++;
                             break;
                         default:
@@ -51,49 +51,49 @@
                     }
 
                     #region 更新QueryResults
-                    bool isCurrentChannel = SelectedChannel.Value == WorkerEventChannel.Unspecified;
-                    bool isEventTypeChecked = IsErrorChecked && IsWarnChecked && IsInfoChecked;
+                    bool isCurrentChannel = SelectedChannel.Value == WorkerMessageChannel.Unspecified;
+                    bool isMessageTypeChecked = IsErrorChecked && IsWarnChecked && IsInfoChecked;
                     if (!isCurrentChannel) {
                         switch (vm.ChannelEnum) {
-                            case WorkerEventChannel.Kernel:
-                                isCurrentChannel = SelectedChannel.Value == WorkerEventChannel.Kernel;
+                            case WorkerMessageChannel.Kernel:
+                                isCurrentChannel = SelectedChannel.Value == WorkerMessageChannel.Kernel;
                                 break;
-                            case WorkerEventChannel.Server:
-                                isCurrentChannel = SelectedChannel.Value == WorkerEventChannel.Server;
+                            case WorkerMessageChannel.Server:
+                                isCurrentChannel = SelectedChannel.Value == WorkerMessageChannel.Server;
                                 break;
-                            case WorkerEventChannel.This:
-                                isCurrentChannel = SelectedChannel.Value == WorkerEventChannel.This;
+                            case WorkerMessageChannel.This:
+                                isCurrentChannel = SelectedChannel.Value == WorkerMessageChannel.This;
                                 break;
-                            case WorkerEventChannel.Unspecified:
+                            case WorkerMessageChannel.Unspecified:
                                 isCurrentChannel = true;
                                 break;
                             default:
                                 break;
                         }
                     }
-                    if (!isEventTypeChecked) {
-                        switch (vm.EventTypeEnum) {
-                            case WorkerEventType.Error:
-                                isEventTypeChecked = IsErrorChecked;
+                    if (!isMessageTypeChecked) {
+                        switch (vm.MessageTypeEnum) {
+                            case WorkerMessageType.Error:
+                                isMessageTypeChecked = IsErrorChecked;
                                 break;
-                            case WorkerEventType.Warn:
-                                isEventTypeChecked = IsWarnChecked;
+                            case WorkerMessageType.Warn:
+                                isMessageTypeChecked = IsWarnChecked;
                                 break;
-                            case WorkerEventType.Info:
-                                isEventTypeChecked = IsInfoChecked;
+                            case WorkerMessageType.Info:
+                                isMessageTypeChecked = IsInfoChecked;
                                 break;
                             default:
                                 break;
                         }
                     }
-                    if (isCurrentChannel && isEventTypeChecked) {
+                    if (isCurrentChannel && isMessageTypeChecked) {
                         _queyResults.Insert(0, vm);
                     }
                     #endregion
                 });
         }
 
-        public EnumItem<WorkerEventChannel> SelectedChannel {
+        public EnumItem<WorkerMessageChannel> SelectedChannel {
             get => _selectedChannel;
             set {
                 if (_selectedChannel != value) {
@@ -189,15 +189,15 @@
 
         private void RefreshQueryResults() {
             var query = _workerEventVms.AsQueryable();
-            if (SelectedChannel.Value != WorkerEventChannel.Unspecified) {
+            if (SelectedChannel.Value != WorkerMessageChannel.Unspecified) {
                 string channel = SelectedChannel.Value.GetName();
                 query = query.Where(a => a.Channel == channel);
             }
             if (!IsErrorChecked || !IsWarnChecked || !IsInfoChecked) {
-                query = query.Where(a => a.EventTypeEnum == WorkerEventType.Undefined
-                    || (a.EventTypeEnum == WorkerEventType.Error && IsErrorChecked)
-                    || (a.EventTypeEnum == WorkerEventType.Warn && IsWarnChecked)
-                    || (a.EventTypeEnum == WorkerEventType.Info && IsInfoChecked));
+                query = query.Where(a => a.MessageTypeEnum == WorkerMessageType.Undefined
+                    || (a.MessageTypeEnum == WorkerMessageType.Error && IsErrorChecked)
+                    || (a.MessageTypeEnum == WorkerMessageType.Warn && IsWarnChecked)
+                    || (a.MessageTypeEnum == WorkerMessageType.Info && IsInfoChecked));
             }
             _queyResults = new ObservableCollection<WorkerEventViewModel>(query);
             OnPropertyChanged(nameof(QueryResults));

+ 1 - 1
src/AppViews0/Ucs/WorkerEvents.xaml

@@ -137,7 +137,7 @@
                             <Path
 						        Width="14"
 						        Height="14"
-						        Data="{Binding EventTypeIcon}"
+						        Data="{Binding MessageTypeIcon}"
 						        Fill="{Binding IconFill}"
 						        Stretch="Fill" />
                         </DataTemplate>

+ 5 - 5
src/MinerClientSelfHost/MinerClientController.cs

@@ -27,7 +27,7 @@ namespace NTMiner {
                 return ResponseBase.InvalidInput("参数错误");
             }
             try {
-                VirtualRoot.WorkerEvent(WorkerEventChannel.This, nameof(MinerClientController), WorkerEventType.Info, $"退出挖矿端");
+                VirtualRoot.WorkerEvent(WorkerMessageChannel.This, nameof(MinerClientController), WorkerMessageType.Info, $"退出挖矿端");
                 TimeSpan.FromMilliseconds(100).Delay().ContinueWith((t) => {
                     VirtualRoot.Execute(new CloseNTMinerCommand());
                 });
@@ -45,7 +45,7 @@ namespace NTMiner {
                 return ResponseBase.InvalidInput("参数错误");
             }
             try {
-                VirtualRoot.WorkerEvent(WorkerEventChannel.This, nameof(MinerClientController), WorkerEventType.Info, $"开始挖矿");
+                VirtualRoot.WorkerEvent(WorkerMessageChannel.This, nameof(MinerClientController), WorkerMessageType.Info, $"开始挖矿");
                 NTMinerRoot.Instance.RestartMine(isWork: request.WorkId != Guid.Empty);
                 return ResponseBase.Ok();
             }
@@ -61,7 +61,7 @@ namespace NTMiner {
                 return ResponseBase.InvalidInput("参数错误");
             }
             try {
-                VirtualRoot.WorkerEvent(WorkerEventChannel.This, nameof(MinerClientController), WorkerEventType.Info, $"停止挖矿");
+                VirtualRoot.WorkerEvent(WorkerMessageChannel.This, nameof(MinerClientController), WorkerMessageType.Info, $"停止挖矿");
                 NTMinerRoot.Instance.StopMineAsync(StopMineReason.RPCUserAction);
                 return ResponseBase.Ok();
             }
@@ -77,7 +77,7 @@ namespace NTMiner {
                 return ResponseBase.InvalidInput("参数错误");
             }
             try {
-                VirtualRoot.WorkerEvent(WorkerEventChannel.This, nameof(MinerClientController), WorkerEventType.Info, $"设置挖矿参数");
+                VirtualRoot.WorkerEvent(WorkerMessageChannel.This, nameof(MinerClientController), WorkerMessageType.Info, $"设置挖矿参数");
                 NTMinerRoot.Instance.MinerProfile.SetMinerProfileProperty(request.PropertyName, request.Value);
                 return ResponseBase.Ok();
             }
@@ -106,7 +106,7 @@ namespace NTMiner {
 
         [HttpPost]
         public void OverClock() {
-            VirtualRoot.WorkerEvent(WorkerEventChannel.This, nameof(MinerClientController), WorkerEventType.Info, $"刷新超频");
+            VirtualRoot.WorkerEvent(WorkerMessageChannel.This, nameof(MinerClientController), WorkerMessageType.Info, $"刷新超频");
             NTMinerRoot.Instance.GpuProfileSet.Refresh();
         }
     }

+ 1 - 1
src/MinerStudioSelfHost/MinerStudioController.cs

@@ -25,7 +25,7 @@ namespace NTMiner {
                 return ResponseBase.InvalidInput("参数错误");
             }
             try {
-                VirtualRoot.WorkerEvent(WorkerEventChannel.This, nameof(MinerStudioController), WorkerEventType.Info, $"退出群控端");
+                VirtualRoot.WorkerEvent(WorkerMessageChannel.This, nameof(MinerStudioController), WorkerMessageType.Info, $"退出群控端");
                 TimeSpan.FromMilliseconds(100).Delay().ContinueWith(t => {
                     VirtualRoot.Execute(new CloseNTMinerCommand());
                 });

+ 2 - 2
src/NTMiner/Core/IKernelOutputKeywordSet.cs

@@ -4,8 +4,8 @@ using System.Collections.Generic;
 
 namespace NTMiner.Core {
     public interface IKernelOutputKeywordSet : IEnumerable<IKernelOutputKeyword> {
-        bool Contains(string keyword);
-        bool Contains(Guid id);
+        bool Contains(Guid kernelOutputId, string keyword);
+        IEnumerable<IKernelOutputKeyword> GetKeywords(Guid kernelOutputId);
         bool TryGetKernelOutputKeyword(Guid id, out IKernelOutputKeyword keyword);
     }
 }

+ 12 - 6
src/NTMiner/Core/Impl/KernelOutputKeywordSet.cs

@@ -20,8 +20,11 @@ namespace NTMiner.Core.Impl {
                     if (_dicById.ContainsKey(message.Input.GetId())) {
                         return;
                     }
+                    if (string.IsNullOrEmpty(message.Input.WorkerMessageType)) {
+                        throw new ValidationException("WorkerMessageType can't be null or empty");
+                    }
                     if (string.IsNullOrEmpty(message.Input.Keyword)) {
-                        throw new ValidationException("EventType name can't be null or empty");
+                        throw new ValidationException("Keyword can't be null or empty");
                     }
                     if (_dicById.Values.Any(a => a.Keyword == message.Input.Keyword && a.Id != message.Input.GetId())) {
                         throw new ValidationException($"关键字{message.Input.Keyword}已存在");
@@ -39,8 +42,11 @@ namespace NTMiner.Core.Impl {
                     if (message == null || message.Input == null || message.Input.GetId() == Guid.Empty) {
                         throw new ArgumentNullException();
                     }
+                    if (string.IsNullOrEmpty(message.Input.WorkerMessageType)) {
+                        throw new ValidationException("WorkerMessageType can't be null or empty");
+                    }
                     if (string.IsNullOrEmpty(message.Input.Keyword)) {
-                        throw new ValidationException("EventType name can't be null or empty");
+                        throw new ValidationException("Keyword can't be null or empty");
                     }
                     if (!_dicById.ContainsKey(message.Input.GetId())) {
                         return;
@@ -100,14 +106,14 @@ namespace NTMiner.Core.Impl {
             }
         }
 
-        public bool Contains(string keyword) {
+        public IEnumerable<IKernelOutputKeyword> GetKeywords(Guid kernelOutputId) {
             InitOnece();
-            return _dicById.Values.Any(a => a.Keyword == keyword);
+            return _dicById.Values.Where(a => a.KernelOutputId == kernelOutputId);
         }
 
-        public bool Contains(Guid id) {
+        public bool Contains(Guid kernelOutputId, string keyword) {
             InitOnece();
-            return _dicById.ContainsKey(id);
+            return _dicById.Values.Any(a => a.KernelOutputId == kernelOutputId && a.Keyword == keyword);
         }
 
         public bool TryGetKernelOutputKeyword(Guid id, out IKernelOutputKeyword keyword) {

+ 1 - 1
src/NTMiner/NTMinerRoot.partials.static.cs

@@ -102,7 +102,7 @@ namespace NTMiner {
 
         public static readonly IEnumerable<EnumItem<MineStatus>> MineStatusEnumItems = MineStatus.All.GetEnumItems();
 
-        public static readonly IEnumerable<EnumItem<WorkerEventChannel>> WorkerEventChannelEnumItems = WorkerEventChannel.Unspecified.GetEnumItems();
+        public static readonly IEnumerable<EnumItem<WorkerMessageChannel>> WorkerEventChannelEnumItems = WorkerMessageChannel.Unspecified.GetEnumItems();
 
         private static LocalJsonDb _localJson;
         public static ILocalJsonDb LocalJson {

+ 2 - 1
src/NTMinerDataObjects/MinerClient/IKernelOutputKeyword.cs

@@ -2,7 +2,8 @@
 
 namespace NTMiner.MinerClient {
     public interface IKernelOutputKeyword : ILevelEntity<Guid> {
-        Guid WorkerEventTypeId { get; }
+        Guid KernelOutputId { get; }
+        string WorkerMessageType { get; }
         string Keyword { get; }
     }
 }

+ 2 - 2
src/NTMinerDataObjects/MinerClient/IWorkerEvent.cs → src/NTMinerDataObjects/MinerClient/IWorkerMessage.cs

@@ -1,14 +1,14 @@
 using System;
 
 namespace NTMiner.MinerClient {
-    public interface IWorkerEvent : IEntity<Guid> {
+    public interface IWorkerMessage : IEntity<Guid> {
         Guid Id { get; }
         /// <summary>
         /// 频道是平的,主题是分层的。开源矿工的挖矿事件没有主题需求。
         /// </summary>
         string Channel { get; }
         string Provider { get; }
-        string EventType { get; }
+        string MessageType { get; }
         string Content { get; }
         DateTime EventOn { get; }
     }

+ 2 - 1
src/NTMinerDataObjects/MinerClient/KernelOutputKeywordData.cs

@@ -16,8 +16,9 @@ namespace NTMiner.MinerClient {
         }
 
         public Guid Id { get; set; }
+        public Guid KernelOutputId { get; set; }
 
-        public Guid WorkerEventTypeId { get; set; }
+        public string WorkerMessageType { get; set; }
 
         public string Keyword { get; set; }
     }

+ 3 - 3
src/NTMinerDataObjects/MinerClient/WorkerEventData.cs → src/NTMinerDataObjects/MinerClient/WorkerMessageData.cs

@@ -1,8 +1,8 @@
 using System;
 
 namespace NTMiner.MinerClient {
-    public class WorkerEventData : IWorkerEvent, IDbEntity<Guid> {
-        public WorkerEventData() { }
+    public class WorkerMessageData : IWorkerMessage, IDbEntity<Guid> {
+        public WorkerMessageData() { }
 
         public Guid GetId() {
             return this.Id;
@@ -14,7 +14,7 @@ namespace NTMiner.MinerClient {
 
         public string Provider { get; set; }
 
-        public string EventType { get; set; }
+        public string MessageType { get; set; }
 
         public string Content { get; set; }
 

+ 4 - 4
src/NTMinerDataObjects/NTMinerDataObjects.csproj

@@ -85,12 +85,12 @@
     <Compile Include="MinerClient\IGpuSpeedData.cs" />
     <Compile Include="MinerClient\ILocalIp.cs" />
     <Compile Include="MinerClient\LocalIpData.cs" />
-    <Compile Include="WorkerEventChannel.cs" />
+    <Compile Include="WorkerMessageChannel.cs" />
     <Compile Include="Profile\GpuProfileExtension.cs" />
     <Compile Include="MinerClient\IKernelOutputKeyword.cs" />
-    <Compile Include="MinerClient\IWorkerEvent.cs" />
+    <Compile Include="MinerClient\IWorkerMessage.cs" />
     <Compile Include="MinerClient\KernelOutputKeywordData.cs" />
-    <Compile Include="MinerClient\WorkerEventData.cs" />
+    <Compile Include="MinerClient\WorkerMessageData.cs" />
     <Compile Include="MinerClient\GpuData.cs" />
     <Compile Include="MinerClient\IGpuStaticData.cs" />
     <Compile Include="MinerServer\AddClientRequest.cs" />
@@ -179,7 +179,7 @@
     <Compile Include="MinerServer\UpdateClientRequest.cs" />
     <Compile Include="UserData.cs" />
     <Compile Include="Core\WalletData.cs" />
-    <Compile Include="WorkerEventType.cs" />
+    <Compile Include="WorkerMessageType.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="packages.config" />

+ 1 - 1
src/NTMinerDataObjects/WorkerEventChannel.cs → src/NTMinerDataObjects/WorkerMessageChannel.cs

@@ -5,7 +5,7 @@ namespace NTMiner {
     /// 频道是平的,主题是分层的。开源矿工的挖矿事件没有主题需求。
     /// </summary>
     /// <remarks>持久层存的是枚举名</remarks>
-    public enum WorkerEventChannel {
+    public enum WorkerMessageChannel {
         [Description("全部频道")]
         Unspecified,
         /// <summary>

+ 1 - 1
src/NTMinerDataObjects/WorkerEventType.cs → src/NTMinerDataObjects/WorkerMessageType.cs

@@ -2,7 +2,7 @@
 
 namespace NTMiner {
     /// <remarks>持久层存的是枚举名</remarks>
-    public enum WorkerEventType {
+    public enum WorkerMessageType {
         [Description("未定义")]
         Undefined,
         [Description("消息")]

+ 9 - 9
src/NTMinerlib/VirtualRoot.cs

@@ -227,7 +227,7 @@ namespace NTMiner {
         }
         #endregion
 
-        public static void WorkerEvent(WorkerEventChannel channel, string provider, WorkerEventType eventType, string content) {
+        public static void WorkerEvent(WorkerMessageChannel channel, string provider, WorkerMessageType eventType, string content) {
             WorkerEvents.Add(channel.GetName(), provider, eventType.GetName(), content);
         }
 
@@ -236,9 +236,9 @@ namespace NTMiner {
         }
 
         #region 内部类
-        public class WorkerEventSet : IEnumerable<IWorkerEvent> {
+        public class WorkerEventSet : IEnumerable<IWorkerMessage> {
             private readonly string _connectionString;
-            private readonly LinkedList<WorkerEventData> _records = new LinkedList<WorkerEventData>();
+            private readonly LinkedList<WorkerMessageData> _records = new LinkedList<WorkerMessageData>();
 
             internal WorkerEventSet() {
                 _connectionString = $"filename={WorkerEventDbFileFullName};journal=false";
@@ -253,11 +253,11 @@ namespace NTMiner {
 
             public void Add(string channel, string provider, string eventType, string content) {
                 InitOnece();
-                var data = new WorkerEventData {
+                var data = new WorkerMessageData {
                     Id = Guid.NewGuid(),
                     Channel = channel,
                     Provider = provider,
-                    EventType = eventType,
+                    MessageType = eventType,
                     Content = content,
                     EventOn = DateTime.Now
                 };
@@ -267,13 +267,13 @@ namespace NTMiner {
                         var toRemove = _records.Last;
                         _records.RemoveLast();
                         using (LiteDatabase db = new LiteDatabase(_connectionString)) {
-                            var col = db.GetCollection<WorkerEventData>();
+                            var col = db.GetCollection<WorkerMessageData>();
                             col.Delete(toRemove.Value.Id);
                         }
                     }
                 }
                 using (LiteDatabase db = new LiteDatabase(_connectionString)) {
-                    var col = db.GetCollection<WorkerEventData>();
+                    var col = db.GetCollection<WorkerMessageData>();
                     col.Insert(data);
                 }
                 Happened(new WorkerEvent(data));
@@ -293,7 +293,7 @@ namespace NTMiner {
                 lock (_locker) {
                     if (!_isInited) {
                         using (LiteDatabase db = new LiteDatabase(_connectionString)) {
-                            var col = db.GetCollection<WorkerEventData>();
+                            var col = db.GetCollection<WorkerMessageData>();
                             foreach (var item in col.FindAll().OrderBy(a => a.EventOn)) {
                                 if (_records.Count < WorkerEventSetCapacity) {
                                     _records.AddFirst(item);
@@ -308,7 +308,7 @@ namespace NTMiner {
                 }
             }
 
-            public IEnumerator<IWorkerEvent> GetEnumerator() {
+            public IEnumerator<IWorkerMessage> GetEnumerator() {
                 InitOnece();
                 return _records.GetEnumerator();
             }

+ 2 - 2
src/NTMinerlib/WorkerEvent.cs

@@ -3,8 +3,8 @@ using NTMiner.MinerClient;
 
 namespace NTMiner {
     [MessageType(description: "发生了矿机事件")]
-    public class WorkerEvent : DomainEvent<IWorkerEvent> {
-        public WorkerEvent(IWorkerEvent source) : base(source) {
+    public class WorkerEvent : DomainEvent<IWorkerMessage> {
+        public WorkerEvent(IWorkerMessage source) : base(source) {
         }
     }
 }

+ 4 - 4
src/UnitTests/WorkerEventTests.cs

@@ -9,9 +9,9 @@ namespace UnitTests {
         public void TestMethod1() {
             File.Delete(VirtualRoot.WorkerEventDbFileFullName);
             Assert.IsTrue(VirtualRoot.WorkerEvents.Count == 0);
-            WorkerEventChannel eventChannel = WorkerEventChannel.This;
+            WorkerMessageChannel eventChannel = WorkerMessageChannel.This;
             string content = "this is a test";
-            VirtualRoot.WorkerEvent(eventChannel, nameof(WorkerEventTests), WorkerEventType.Info, content);
+            VirtualRoot.WorkerEvent(eventChannel, nameof(WorkerEventTests), WorkerMessageType.Info, content);
             Assert.IsTrue(VirtualRoot.WorkerEvents.Count == 1);
             Assert.IsTrue(VirtualRoot.WorkerEvents.Count == 1);
         }
@@ -20,10 +20,10 @@ namespace UnitTests {
         public void BenchmarkTest() {
             File.Delete(VirtualRoot.WorkerEventDbFileFullName);
             int times = 2000;
-            WorkerEventChannel eventChannel = WorkerEventChannel.This;
+            WorkerMessageChannel eventChannel = WorkerMessageChannel.This;
             string content = "this is a test";
             for (int i = 0; i < times; i++) {
-                VirtualRoot.WorkerEvent(eventChannel, nameof(WorkerEventTests), WorkerEventType.Info, content);
+                VirtualRoot.WorkerEvent(eventChannel, nameof(WorkerEventTests), WorkerMessageType.Info, content);
             }
             Assert.IsTrue(VirtualRoot.WorkerEvents.Count == times);
         }