| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 | 
							- using NTMiner.Core;
 
- using NTMiner.Vms;
 
- using System;
 
- using System.Collections.Generic;
 
- using System.Linq;
 
- using System.Windows.Input;
 
- namespace NTMiner {
 
-     public partial class AppContext {
 
-         public class GroupViewModels : ViewModelBase {
 
-             public static readonly GroupViewModels Instance = new GroupViewModels();
 
-             private readonly Dictionary<Guid, GroupViewModel> _dicById = new Dictionary<Guid, GroupViewModel>();
 
-             public ICommand Add { get; private set; }
 
-             private GroupViewModels() {
 
- #if DEBUG
 
-                 Write.Stopwatch.Start();
 
- #endif
 
-                 this.Add = new DelegateCommand(() => {
 
-                     new GroupViewModel(Guid.NewGuid()) {
 
-                         SortNumber = Count + 1
 
-                     }.Edit.Execute(FormType.Add);
 
-                 });
 
-                 VirtualRoot.BuildEventPath<ServerContextReInitedEvent>("ServerContext刷新后刷新VM内存", LogEnum.DevConsole,
 
-                     action: message => {
 
-                         _dicById.Clear();
 
-                         Init();
 
-                     });
 
-                 VirtualRoot.BuildEventPath<ServerContextVmsReInitedEvent>("ServerContext的VM集刷新后刷新视图界面", LogEnum.DevConsole,
 
-                     action: message => {
 
-                         OnPropertyChangeds();
 
-                     });
 
-                 BuildEventPath<GroupAddedEvent>("添加了组后调整VM内存", LogEnum.DevConsole,
 
-                     action: (message) => {
 
-                         if (!_dicById.ContainsKey(message.Source.GetId())) {
 
-                             GroupViewModel groupVm = new GroupViewModel(message.Source);
 
-                             _dicById.Add(message.Source.GetId(), groupVm);
 
-                             OnPropertyChangeds();
 
-                         }
 
-                     });
 
-                 BuildEventPath<GroupUpdatedEvent>("更新了组后调整VM内存", LogEnum.DevConsole,
 
-                     action: (message) => {
 
-                         if (_dicById.ContainsKey(message.Source.GetId())) {
 
-                             GroupViewModel entity = _dicById[message.Source.GetId()];
 
-                             int sortNumber = entity.SortNumber;
 
-                             entity.Update(message.Source);
 
-                             if (sortNumber != entity.SortNumber) {
 
-                                 this.OnPropertyChanged(nameof(List));
 
-                                 OnPropertyChanged(nameof(SelectionOptions));
 
-                             }
 
-                         }
 
-                     });
 
-                 BuildEventPath<GroupRemovedEvent>("删除了组后调整VM内存", LogEnum.DevConsole,
 
-                     action: (message) => {
 
-                         _dicById.Remove(message.Source.GetId());
 
-                         OnPropertyChangeds();
 
-                     });
 
-                 Init();
 
- #if DEBUG
 
-                 var elapsedMilliseconds = Write.Stopwatch.Stop();
 
-                 if (elapsedMilliseconds.ElapsedMilliseconds > NTStopwatch.ElapsedMilliseconds) {
 
-                     Write.DevTimeSpan($"耗时{elapsedMilliseconds} {this.GetType().Name}.ctor");
 
-                 }
 
- #endif
 
-             }
 
-             private void Init() {
 
-                 foreach (var item in NTMinerRoot.Instance.ServerContext.GroupSet.AsEnumerable()) {
 
-                     GroupViewModel groupVm = new GroupViewModel(item);
 
-                     _dicById.Add(item.GetId(), groupVm);
 
-                 }
 
-             }
 
-             private void OnPropertyChangeds() {
 
-                 OnPropertyChanged(nameof(List));
 
-                 OnPropertyChanged(nameof(SelectionOptions));
 
-                 OnPropertyChanged(nameof(Count));
 
-             }
 
-             public bool TryGetGroupVm(Guid groupId, out GroupViewModel groupVm) {
 
-                 return _dicById.TryGetValue(groupId, out groupVm);
 
-             }
 
-             public int Count {
 
-                 get {
 
-                     return _dicById.Count;
 
-                 }
 
-             }
 
-             public List<GroupViewModel> List {
 
-                 get {
 
-                     return _dicById.Values.OrderBy(a => a.SortNumber).ToList();
 
-                 }
 
-             }
 
-             public GroupViewModel GetNextOne(int sortNumber) {
 
-                 return List.OrderBy(a => a.SortNumber).FirstOrDefault(a => a.SortNumber > sortNumber);
 
-             }
 
-             public GroupViewModel GetUpOne(int sortNumber) {
 
-                 return List.OrderByDescending(a => a.SortNumber).FirstOrDefault(a => a.SortNumber < sortNumber);
 
-             }
 
-             private IEnumerable<GroupViewModel> GetSelectionItems() {
 
-                 yield return GroupViewModel.PleaseSelect;
 
-                 foreach (var item in _dicById.Values.OrderBy(a => a.SortNumber)) {
 
-                     yield return item;
 
-                 }
 
-             }
 
-             public List<GroupViewModel> SelectionOptions {
 
-                 get {
 
-                     return GetSelectionItems().ToList();
 
-                 }
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |