private KernelOutputKeywordViewModels()
            {
#if DEBUG
                Write.Stopwatch.Restart();
#endif
                VirtualRoot.BuildEventPath <ServerContextReInitedEvent>("ServerContext刷新后刷新VM内存", LogEnum.DevConsole,
                                                                        action: message => {
                    _dicById.Clear();
                    _dicByKernelOutputId.Clear();
                    Init();
                });
                AppContextEventPath <KernelOutputKeywordAddedEvent>("添加了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                                    action: message => {
                    if (!_dicById.ContainsKey(message.Source.GetId()))
                    {
                        KernelOutputKeywordViewModel vm = new KernelOutputKeywordViewModel(message.Source);
                        _dicById.Add(vm.Id, vm);
                        if (AppContext.Instance.KernelOutputVms.TryGetKernelOutputVm(vm.KernelOutputId, out KernelOutputViewModel kernelOutputVm))
                        {
                            if (!_dicByKernelOutputId.ContainsKey(vm.KernelOutputId))
                            {
                                _dicByKernelOutputId.Add(vm.KernelOutputId, new List <KernelOutputKeywordViewModel>());
                            }
                            _dicByKernelOutputId[vm.KernelOutputId].Add(vm);
                            kernelOutputVm.OnPropertyChanged(nameof(kernelOutputVm.KernelOutputKeywords));
                        }
                    }
                });
                AppContextEventPath <KernelOutputKeywordUpdatedEvent>("更新了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                                      action: message => {
                    if (_dicById.TryGetValue(message.Source.GetId(), out KernelOutputKeywordViewModel vm))
                    {
                        vm.Update(message.Source);
                    }
                });
                AppContextEventPath <KernelOutputKeywordRemovedEvent>("删除了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                                      action: message => {
                    if (_dicById.TryGetValue(message.Source.GetId(), out KernelOutputKeywordViewModel vm))
                    {
                        _dicById.Remove(vm.Id);
                        _dicByKernelOutputId[vm.KernelOutputId].Remove(vm);
                        if (AppContext.Instance.KernelOutputVms.TryGetKernelOutputVm(vm.KernelOutputId, out KernelOutputViewModel kernelOutputVm))
                        {
                            kernelOutputVm.OnPropertyChanged(nameof(kernelOutputVm.KernelOutputKeywords));
                        }
                    }
                });
                Init();
#if DEBUG
                Write.DevTimeSpan($"耗时{Write.Stopwatch.ElapsedMilliseconds}毫秒 {this.GetType().Name}.ctor");
#endif
            }
コード例 #2
0
 public static void ShowWindow(FormType formType, KernelOutputKeywordViewModel data)
 {
     ContainerWindow.ShowWindow(new ContainerWindowViewModel {
         Title           = $"内核输出关键字({(DevMode.IsDevMode ? "服务器" : "自定义")})",
         IsMaskTheParent = true,
         Width           = 540,
         FormType        = formType,
         CloseVisible    = System.Windows.Visibility.Visible
     }, ucFactory: (window) =>
     {
         KernelOutputKeywordViewModel vm = new KernelOutputKeywordViewModel(data);
         window.AddCloseWindowOnecePath(vm.Id);
         return(new KernelOutputKeywordEdit(vm));
     }, fixedSize: true);
 }
 private void Init()
 {
     foreach (var item in NTMinerRoot.Instance.KernelOutputKeywordSet.AsEnumerable())
     {
         var vm = new KernelOutputKeywordViewModel(item);
         if (!_dicById.ContainsKey(item.GetId()))
         {
             _dicById.Add(item.GetId(), vm);
         }
         if (!_dicByKernelOutputId.ContainsKey(item.KernelOutputId))
         {
             _dicByKernelOutputId.Add(item.KernelOutputId, new List <KernelOutputKeywordViewModel>());
         }
         _dicByKernelOutputId[item.KernelOutputId].Add(vm);
     }
 }
コード例 #4
0
 public static void ShowWindow(FormType formType, KernelOutputKeywordViewModel data)
 {
     ContainerWindow.ShowWindow(new ContainerWindowViewModel {
         Title           = $"内核输出关键字({(DevMode.IsDevMode ? "服务器" : "自定义")})",
         IsMaskTheParent = true,
         Width           = 540,
         FormType        = formType,
         CloseVisible    = System.Windows.Visibility.Visible
     }, ucFactory: (window) =>
     {
         KernelOutputKeywordViewModel vm = new KernelOutputKeywordViewModel(data);
         window.AddOnecePath <CloseWindowCommand>("处理关闭窗口命令", LogEnum.DevConsole, action: message => {
             window.Close();
         }, pathId: vm.Id, location: typeof(KernelOutputKeywordEdit));
         return(new KernelOutputKeywordEdit(vm));
     }, fixedSize: true);
 }
コード例 #5
0
ファイル: Messages.cs プロジェクト: wind959/ntminer
 public KernelOutputKeywordEditCommand(FormType formType, KernelOutputKeywordViewModel source)
 {
     this.FormType = formType;
     this.Source   = source;
 }
コード例 #6
0
 public KernelOutputKeywordEdit(KernelOutputKeywordViewModel vm)
 {
     this.DataContext = vm;
     InitializeComponent();
 }
            private KernelOutputKeywordViewModels()
            {
#if DEBUG
                NTStopwatch.Start();
#endif
                AddEventPath <KernelOutputKeywordLoadedEvent>("从服务器加载了内核输入关键字后刷新Vm集", LogEnum.DevConsole,
                                                              action: message => {
                    KernelOutputKeywordViewModel[] toRemoves = _dicById.Where(a => a.Value.GetDataLevel() == DataLevel.Global).Select(a => a.Value).ToArray();
                    foreach (var item in toRemoves)
                    {
                        _dicById.Remove(item.Id);
                    }
                    foreach (var kv in _dicByKernelOutputId)
                    {
                        foreach (var toRemove in toRemoves.Where(a => a.KernelOutputId == kv.Key))
                        {
                            kv.Value.Remove(toRemove);
                        }
                    }
                    if (message.Data != null && message.Data.Count != 0)
                    {
                        foreach (var item in message.Data)
                        {
                            var vm = new KernelOutputKeywordViewModel(item);
                            if (!_dicById.ContainsKey(item.Id))
                            {
                                _dicById.Add(item.Id, vm);
                            }
                            if (!_dicByKernelOutputId.ContainsKey(item.KernelOutputId))
                            {
                                _dicByKernelOutputId.Add(item.KernelOutputId, new List <KernelOutputKeywordViewModel>());
                            }
                            _dicByKernelOutputId[item.KernelOutputId].Add(vm);
                        }
                    }
                    if (NTMinerRoot.Instance.CurrentMineContext != null)
                    {
                        if (AppContext.Instance.KernelOutputVms.TryGetKernelOutputVm(NTMinerRoot.Instance.CurrentMineContext.KernelOutput.GetId(), out KernelOutputViewModel kernelOutputVm))
                        {
                            kernelOutputVm.OnPropertyChanged(nameof(kernelOutputVm.KernelOutputKeywords));
                        }
                    }
                }, location: this.GetType());
                AddEventPath <UserKernelOutputKeywordAddedEvent>("添加了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                                 action: message => {
                    if (!_dicById.ContainsKey(message.Target.GetId()))
                    {
                        KernelOutputKeywordViewModel vm = new KernelOutputKeywordViewModel(message.Target);
                        _dicById.Add(vm.Id, vm);
                        if (AppContext.Instance.KernelOutputVms.TryGetKernelOutputVm(vm.KernelOutputId, out KernelOutputViewModel kernelOutputVm))
                        {
                            if (!_dicByKernelOutputId.ContainsKey(vm.KernelOutputId))
                            {
                                _dicByKernelOutputId.Add(vm.KernelOutputId, new List <KernelOutputKeywordViewModel>());
                            }
                            _dicByKernelOutputId[vm.KernelOutputId].Add(vm);
                            kernelOutputVm.OnPropertyChanged(nameof(kernelOutputVm.KernelOutputKeywords));
                        }
                    }
                }, location: this.GetType());
                AddEventPath <UserKernelOutputKeywordUpdatedEvent>("更新了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                                   action: message => {
                    if (_dicById.TryGetValue(message.Target.GetId(), out KernelOutputKeywordViewModel vm))
                    {
                        vm.Update(message.Target);
                    }
                }, location: this.GetType());
                AddEventPath <UserKernelOutputKeywordRemovedEvent>("删除了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                                   action: message => {
                    if (_dicById.TryGetValue(message.Target.GetId(), out KernelOutputKeywordViewModel vm))
                    {
                        _dicById.Remove(vm.Id);
                        _dicByKernelOutputId[vm.KernelOutputId].Remove(vm);
                        if (AppContext.Instance.KernelOutputVms.TryGetKernelOutputVm(vm.KernelOutputId, out KernelOutputViewModel kernelOutputVm))
                        {
                            kernelOutputVm.OnPropertyChanged(nameof(kernelOutputVm.KernelOutputKeywords));
                        }
                    }
                }, location: this.GetType());
                Init();
#if DEBUG
                var elapsedMilliseconds = NTStopwatch.Stop();
                if (elapsedMilliseconds.ElapsedMilliseconds > NTStopwatch.ElapsedMilliseconds)
                {
                    Write.DevTimeSpan($"耗时{elapsedMilliseconds} {this.GetType().Name}.ctor");
                }
#endif
            }
コード例 #8
0
 private KernelOutputKeywordViewModels()
 {
     if (WpfUtil.IsInDesignMode)
     {
         return;
     }
     BuildEventPath <KernelOutputKeywordLoadedEvent>("从服务器加载了内核输入关键字后刷新Vm集", LogEnum.DevConsole,
                                                     path: message => {
         KernelOutputKeywordViewModel[] toRemoves = _dicById.Where(a => a.Value.GetDataLevel() == DataLevel.Global).Select(a => a.Value).ToArray();
         foreach (var item in toRemoves)
         {
             _dicById.Remove(item.Id);
         }
         foreach (var kv in _dicByKernelOutputId)
         {
             foreach (var toRemove in toRemoves.Where(a => a.KernelOutputId == kv.Key))
             {
                 kv.Value.Remove(toRemove);
             }
         }
         if (message.Data != null && message.Data.Count != 0)
         {
             foreach (var item in message.Data)
             {
                 var vm = new KernelOutputKeywordViewModel(item);
                 if (!_dicById.ContainsKey(item.Id))
                 {
                     _dicById.Add(item.Id, vm);
                 }
                 if (!_dicByKernelOutputId.ContainsKey(item.KernelOutputId))
                 {
                     _dicByKernelOutputId.Add(item.KernelOutputId, new List <KernelOutputKeywordViewModel>());
                 }
                 _dicByKernelOutputId[item.KernelOutputId].Add(vm);
             }
         }
         if (NTMinerContext.Instance.CurrentMineContext != null)
         {
             if (KernelOutputVms.TryGetKernelOutputVm(NTMinerContext.Instance.CurrentMineContext.KernelOutput.GetId(), out KernelOutputViewModel kernelOutputVm))
             {
                 kernelOutputVm.OnPropertyChanged(nameof(kernelOutputVm.KernelOutputKeywords));
             }
         }
     }, location: this.GetType());
     BuildEventPath <UserKernelOutputKeywordAddedEvent>("添加了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                        path: message => {
         if (!_dicById.ContainsKey(message.Source.GetId()))
         {
             KernelOutputKeywordViewModel vm = new KernelOutputKeywordViewModel(message.Source);
             _dicById.Add(vm.Id, vm);
             if (KernelOutputVms.TryGetKernelOutputVm(vm.KernelOutputId, out KernelOutputViewModel kernelOutputVm))
             {
                 if (!_dicByKernelOutputId.ContainsKey(vm.KernelOutputId))
                 {
                     _dicByKernelOutputId.Add(vm.KernelOutputId, new List <KernelOutputKeywordViewModel>());
                 }
                 _dicByKernelOutputId[vm.KernelOutputId].Add(vm);
                 kernelOutputVm.OnPropertyChanged(nameof(kernelOutputVm.KernelOutputKeywords));
             }
         }
     }, location: this.GetType());
     BuildEventPath <UserKernelOutputKeywordUpdatedEvent>("更新了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                          path: message => {
         if (_dicById.TryGetValue(message.Source.GetId(), out KernelOutputKeywordViewModel vm))
         {
             vm.Update(message.Source);
         }
     }, location: this.GetType());
     BuildEventPath <UserKernelOutputKeywordRemovedEvent>("删除了内核输出过滤器后刷新VM内存", LogEnum.DevConsole,
                                                          path: message => {
         if (_dicById.TryGetValue(message.Source.GetId(), out KernelOutputKeywordViewModel vm))
         {
             _dicById.Remove(vm.Id);
             _dicByKernelOutputId[vm.KernelOutputId].Remove(vm);
             if (KernelOutputVms.TryGetKernelOutputVm(vm.KernelOutputId, out KernelOutputViewModel kernelOutputVm))
             {
                 kernelOutputVm.OnPropertyChanged(nameof(kernelOutputVm.KernelOutputKeywords));
             }
         }
     }, location: this.GetType());
     Init();
 }