Exemplo n.º 1
0
 private MineWorkViewModels()
 {
     if (WpfUtil.IsInDesignMode)
     {
         return;
     }
     foreach (var item in NTMinerContext.MinerStudioContext.MineWorkSet.AsEnumerable())
     {
         if (!_dicById.ContainsKey(item.Id))
         {
             _dicById.Add(item.Id, new MineWorkViewModel(item));
         }
     }
     AppRoot.BuildEventPath <MineWorkSetInitedEvent>("作业集初始化后初始化Vm内存", LogEnum.DevConsole, path: message => {
         _dicById.Clear();
         foreach (var item in NTMinerContext.MinerStudioContext.MineWorkSet.AsEnumerable())
         {
             if (!_dicById.ContainsKey(item.Id))
             {
                 _dicById.Add(item.Id, new MineWorkViewModel(item));
             }
         }
         OnPropertyChangeds();
         MinerClientsWindowViewModel.Instance.RefreshMinerClientsSelectedMineWork(MinerClientsWindowViewModel.Instance.MinerClients.ToArray());
     }, this.GetType());
     this.Add = new DelegateCommand(() => {
         new MineWorkViewModel(Guid.NewGuid()).Edit.Execute(FormType.Add);
     });
     AppRoot.BuildEventPath <MineWorkAddedEvent>("添加作业后刷新VM内存", LogEnum.DevConsole,
                                                 path: message => {
         if (!_dicById.TryGetValue(message.Source.GetId(), out MineWorkViewModel vm))
         {
             vm = new MineWorkViewModel(message.Source);
             _dicById.Add(message.Source.GetId(), vm);
             OnPropertyChangeds();
             if (message.Source.GetId() == MinerClientsWindowVm.SelectedMineWork.GetId())
             {
                 MinerClientsWindowVm.SelectedMineWork = MineWorkViewModel.PleaseSelect;
             }
         }
     }, location: this.GetType());
     AppRoot.BuildEventPath <MineWorkUpdatedEvent>("添加作业后刷新VM内存", LogEnum.DevConsole,
                                                   path: message => {
         if (_dicById.TryGetValue(message.Source.GetId(), out MineWorkViewModel vm))
         {
             vm.Update(message.Source);
         }
     }, location: this.GetType());
     AppRoot.BuildEventPath <MineWorkRemovedEvent>("移除了作业后刷新Vm内存", LogEnum.DevConsole, path: message => {
         if (_dicById.TryGetValue(message.Source.Id, out MineWorkViewModel vm))
         {
             _dicById.Remove(vm.Id);
             OnPropertyChangeds();
             if (vm.Id == MinerClientsWindowVm.SelectedMineWork.GetId())
             {
                 MinerClientsWindowVm.SelectedMineWork = MineWorkViewModel.PleaseSelect;
             }
         }
     }, this.GetType());
 }
Exemplo n.º 2
0
        private void MenuItemWork_Click(object sender, RoutedEventArgs e)
        {
            var popup = PopupMineWork;
            MineWorkViewModel selected = null;

            if (Vm.SelectedMinerClients.Length == 1)
            {
                selected = Vm.SelectedMinerClients[0].SelectedMineWork;
            }
            if (popup.Child == null)
            {
                popup.Child = new MineWorkSelect(new MineWorkSelectViewModel("为选中的矿机分配作业", selected, selectedResult => {
                    foreach (var item in Vm.SelectedMinerClients)
                    {
                        item.SelectedMineWork = selectedResult;
                    }
                    popup.IsOpen = false;
                    MenuItemMineWork.Visibility = Visibility.Visible;
                })
                {
                    HideView = new DelegateCommand(() => {
                        popup.IsOpen = false;
                        MenuItemMineWork.Visibility = Visibility.Visible;
                    })
                });
            }
            else
            {
                ((MineWorkSelect)popup.Child).Vm.SelectedResult = selected;
            }
            popup.IsOpen = true;
        }
Exemplo n.º 3
0
 public bool TryGetMineWorkVm(Guid id, out MineWorkViewModel mineWorkVm)
 {
     if (id.IsSelfMineWorkId())
     {
         mineWorkVm = MineWorkViewModel.SelfMineWork;
         return(true);
     }
     return(_dicById.TryGetValue(id, out mineWorkVm));
 }
Exemplo n.º 4
0
 public static void ShowEditWindow(MineWorkViewModel source)
 {
     ContainerWindow.ShowWindow(new ContainerWindowViewModel {
         IsDialogWindow = true,
         CloseVisible   = System.Windows.Visibility.Visible,
         IconName       = "Icon_MineWork"
     }, ucFactory: (window) =>
     {
         MineWorkViewModel vm = new MineWorkViewModel(source);
         vm.CloseWindow       = () => window.Close();
         return(new MineWorkEdit(vm));
     }, fixedSize: true);
 }
Exemplo n.º 5
0
 public static void ShowWindow(FormType formType, MineWorkViewModel source)
 {
     ContainerWindow.ShowWindow(new ContainerWindowViewModel {
         Title           = "矿工",
         FormType        = formType,
         IsMaskTheParent = true,
         Width           = 900,
         CloseVisible    = System.Windows.Visibility.Visible,
         FooterVisible   = System.Windows.Visibility.Collapsed,
         IconName        = "Icon_MineWork"
     }, ucFactory: (window) => {
         MineWorkViewModel vm = new MineWorkViewModel(source);
         window.Closed       += (sender, e) => {
             vm.Save.Execute(null);
         };
         return(new MineWorkEdit(vm));
     }, fixedSize: true);
 }
Exemplo n.º 6
0
 public static void ShowWindow(FormType formType, MineWorkViewModel source)
 {
     ContainerWindow.ShowWindow(new ContainerWindowViewModel {
         FormType       = formType,
         IsDialogWindow = true,
         CloseVisible   = System.Windows.Visibility.Visible,
         FooterVisible  = System.Windows.Visibility.Collapsed,
         IconName       = "Icon_MineWork",
         OnClose        = (uc) => {
             MineWorkViewModel vm = (MineWorkViewModel)uc.DataContext;
             vm.Save.Execute(null);
         }
     }, ucFactory: (window) =>
     {
         MineWorkViewModel vm = new MineWorkViewModel(source);
         return(new MineWorkEdit(vm));
     }, fixedSize: true);
 }
Exemplo n.º 7
0
        public static void ShowEditWindow(MineWorkViewModel source)
        {
            string title;

            if (!DevMode.IsDevMode)
            {
                title = "作业详情";
            }
            else
            {
                if (NTMinerRoot.Current.MineWorkSet.Contains(source.Id))
                {
                    title = "编辑作业";
                }
                else
                {
                    title = "添加作业";
                }
            }
            ContainerWindow.ShowWindow(new ContainerWindowViewModel {
                Title          = title,
                IsDialogWindow = true,
                SaveVisible    = System.Windows.Visibility.Visible,
                CloseVisible   = System.Windows.Visibility.Visible,
                IconName       = "Icon_MineWork",
                OnOk           = (uc) => {
                    MineWorkViewModel vm = ((MineWorkEdit)uc).Vm;
                    if (NTMinerRoot.Current.MineWorkSet.Contains(source.Id))
                    {
                        Global.Execute(new UpdateMineWorkCommand(vm));
                    }
                    else
                    {
                        Global.Execute(new AddMineWorkCommand(vm));
                    }
                    return(true);
                }
            }, ucFactory: (window) =>
            {
                MineWorkViewModel vm = new MineWorkViewModel(source.Id).Update(source);
                return(new MineWorkEdit(vm));
            }, fixedSize: true);
        }
Exemplo n.º 8
0
 public static void ShowWindow(FormType formType, MineWorkViewModel source)
 {
     ContainerWindow.ShowWindow(new ContainerWindowViewModel {
         Title           = "挖矿作业 — 作业通常用于让不同的矿工执行同样的挖矿任务",
         FormType        = formType,
         IsMaskTheParent = true,
         Width           = 1000,
         Height          = 600,
         CloseVisible    = System.Windows.Visibility.Visible,
         FooterVisible   = System.Windows.Visibility.Collapsed,
         IconName        = "Icon_MineWork"
     }, ucFactory: (window) => {
         MineWorkViewModel vm = new MineWorkViewModel(source);
         window.Closed       += (sender, e) => {
             vm.Save.Execute(null);
         };
         NotiCenterWindow.Bind(window);
         return(new MineWorkEdit(vm));
     }, beforeShow: (window, uc) => {
         NTMinerContext.RefreshArgsAssembly.Invoke("打开编辑挖矿作业页面时");
     }, fixedSize: false);
 }
Exemplo n.º 9
0
 public bool TryGetMineWorkVm(Guid id, out MineWorkViewModel mineWorkVm)
 {
     return(_dicById.TryGetValue(id, out mineWorkVm));
 }
Exemplo n.º 10
0
 public MineWorkEdit(MineWorkViewModel vm)
 {
     this.DataContext = vm;
     InitializeComponent();
 }
Exemplo n.º 11
0
 public MineWorkEditCommand(FormType formType, MineWorkViewModel source)
 {
     this.FormType = formType;
     this.Source   = source;
 }
Exemplo n.º 12
0
 public MineWorkEdit(MineWorkViewModel vm)
 {
     this.DataContext = vm;
     InitializeComponent();
     ResourceDictionarySet.Instance.FillResourceDic(this, this.Resources);
 }
            private MineWorkViewModels()
            {
#if DEBUG
                NTStopwatch.Start();
#endif
                if (WpfUtil.IsInDesignMode)
                {
                    return;
                }
                foreach (var item in NTMinerContext.Instance.MinerStudioContext.MineWorkSet.AsEnumerable())
                {
                    if (!_dicById.ContainsKey(item.Id))
                    {
                        _dicById.Add(item.Id, new MineWorkViewModel(item));
                    }
                }
                if (RpcRoot.IsOuterNet)
                {
                    AppRoot.AddEventPath <MineWorkSetInitedEvent>("作业集初始化后初始化Vm内存", LogEnum.DevConsole, action: message => {
                        foreach (var item in NTMinerContext.Instance.MinerStudioContext.MineWorkSet.AsEnumerable())
                        {
                            if (!_dicById.ContainsKey(item.Id))
                            {
                                _dicById.Add(item.Id, new MineWorkViewModel(item));
                            }
                        }
                        OnPropertyChangeds();
                        MinerClientsWindowViewModel.Instance.RefreshMinerClientsSelectedMineWork(MinerClientsWindowViewModel.Instance.MinerClients.ToArray());
                    }, this.GetType());
                }
                this.Add = new DelegateCommand(() => {
                    new MineWorkViewModel(Guid.NewGuid()).Edit.Execute(FormType.Add);
                });
                AppRoot.AddEventPath <MineWorkAddedEvent>("添加作业后刷新VM内存", LogEnum.DevConsole,
                                                          action: message => {
                    if (!_dicById.TryGetValue(message.Source.GetId(), out MineWorkViewModel vm))
                    {
                        vm = new MineWorkViewModel(message.Source);
                        _dicById.Add(message.Source.GetId(), vm);
                        OnPropertyChangeds();
                        if (message.Source.GetId() == MinerClientsWindowVm.SelectedMineWork.GetId())
                        {
                            MinerClientsWindowVm.SelectedMineWork = MineWorkViewModel.PleaseSelect;
                        }
                    }
                }, location: this.GetType());
                AppRoot.AddEventPath <MineWorkUpdatedEvent>("添加作业后刷新VM内存", LogEnum.DevConsole,
                                                            action: message => {
                    if (_dicById.TryGetValue(message.Source.GetId(), out MineWorkViewModel vm))
                    {
                        vm.Update(message.Source);
                    }
                }, location: this.GetType());
                AppRoot.AddEventPath <MineWorkRemovedEvent>("移除了作业后刷新Vm内存", LogEnum.DevConsole, action: message => {
                    if (_dicById.TryGetValue(message.Source.Id, out MineWorkViewModel vm))
                    {
                        _dicById.Remove(vm.Id);
                        OnPropertyChangeds();
                        if (vm.Id == MinerClientsWindowVm.SelectedMineWork.GetId())
                        {
                            MinerClientsWindowVm.SelectedMineWork = MineWorkViewModel.PleaseSelect;
                        }
                    }
                }, this.GetType());
#if DEBUG
                var elapsedMilliseconds = NTStopwatch.Stop();
                if (elapsedMilliseconds.ElapsedMilliseconds > NTStopwatch.ElapsedMilliseconds)
                {
                    Write.DevTimeSpan($"耗时{elapsedMilliseconds} {this.GetType().Name}.ctor");
                }
#endif
            }