Esempio n. 1
0
            private CoinGroupViewModels()
            {
#if DEBUG
                VirtualRoot.Stopwatch.Restart();
#endif
                On <ServerContextReInitedEvent>("ServerContext刷新后刷新VM内存", LogEnum.DevConsole,
                                                action: message => {
                    _dicById.Clear();
                    _listByGroupId.Clear();
                    Init();
                });
                On <CoinGroupAddedEvent>("添加了币组后调整VM内存", LogEnum.DevConsole,
                                         action: (message) => {
                    if (!_dicById.ContainsKey(message.Source.GetId()))
                    {
                        CoinGroupViewModel coinGroupVm = new CoinGroupViewModel(message.Source);
                        _dicById.Add(message.Source.GetId(), coinGroupVm);
                        if (!_listByGroupId.ContainsKey(coinGroupVm.GroupId))
                        {
                            _listByGroupId.Add(coinGroupVm.GroupId, new List <CoinGroupViewModel>());
                        }
                        _listByGroupId[coinGroupVm.GroupId].Add(coinGroupVm);
                        OnGroupPropertyChanged(coinGroupVm.GroupId);
                    }
                });
                On <CoinGroupUpdatedEvent>("更新了币组后调整VM内存", LogEnum.DevConsole,
                                           action: (message) => {
                    if (_dicById.ContainsKey(message.Source.GetId()))
                    {
                        CoinGroupViewModel entity = _dicById[message.Source.GetId()];
                        int sortNumber            = entity.SortNumber;
                        entity.Update(message.Source);
                        if (sortNumber != entity.SortNumber)
                        {
                            GroupViewModel groupVm;
                            if (AppContext.Instance.GroupVms.TryGetGroupVm(entity.GroupId, out groupVm))
                            {
                                groupVm.OnPropertyChanged(nameof(groupVm.CoinGroupVms));
                            }
                        }
                    }
                });
                On <CoinGroupRemovedEvent>("删除了币组后调整VM内存", LogEnum.DevConsole,
                                           action: (message) => {
                    if (_dicById.ContainsKey(message.Source.GetId()))
                    {
                        var entity = _dicById[message.Source.GetId()];
                        _dicById.Remove(message.Source.GetId());
                        if (_listByGroupId.ContainsKey(entity.GroupId))
                        {
                            _listByGroupId[entity.GroupId].Remove(entity);
                        }
                        OnGroupPropertyChanged(entity.GroupId);
                    }
                });
                Init();
#if DEBUG
                Write.DevWarn($"耗时{VirtualRoot.Stopwatch.ElapsedMilliseconds}毫秒 {this.GetType().Name}.ctor");
#endif
            }
Esempio n. 2
0
 private void Init()
 {
     foreach (var item in NTMinerRoot.Instance.CoinGroupSet)
     {
         CoinGroupViewModel groupVm = new CoinGroupViewModel(item);
         _dicById.Add(item.GetId(), groupVm);
         if (!_listByGroupId.ContainsKey(item.GroupId))
         {
             _listByGroupId.Add(item.GroupId, new List <CoinGroupViewModel>());
         }
         _listByGroupId[item.GroupId].Add(groupVm);
     }
 }
 private void Init()
 {
     foreach (var item in NTMinerContext.Instance.ServerContext.CoinGroupSet.AsEnumerable().ToArray())
     {
         CoinGroupViewModel groupVm = new CoinGroupViewModel(item);
         _dicById.Add(item.GetId(), groupVm);
         if (!_listByGroupId.ContainsKey(item.GroupId))
         {
             _listByGroupId.Add(item.GroupId, new List <CoinGroupViewModel>());
         }
         _listByGroupId[item.GroupId].Add(groupVm);
     }
 }
Esempio n. 4
0
            private CoinGroupViewModels()
            {
                if (WpfUtil.IsInDesignMode)
                {
                    return;
                }
#if DEBUG
                NTStopwatch.Start();
#endif
                VirtualRoot.AddEventPath <ServerContextReInitedEvent>("ServerContext刷新后刷新VM内存", LogEnum.DevConsole,
                                                                      action: message => {
                    _dicById.Clear();
                    _listByGroupId.Clear();
                    Init();
                }, location: this.GetType());
                AddEventPath <CoinGroupAddedEvent>("添加了币组后调整VM内存", LogEnum.DevConsole,
                                                   action: (message) => {
                    if (!_dicById.ContainsKey(message.Source.GetId()))
                    {
                        CoinGroupViewModel coinGroupVm = new CoinGroupViewModel(message.Source);
                        _dicById.Add(message.Source.GetId(), coinGroupVm);
                        if (!_listByGroupId.ContainsKey(coinGroupVm.GroupId))
                        {
                            _listByGroupId.Add(coinGroupVm.GroupId, new List <CoinGroupViewModel>());
                        }
                        _listByGroupId[coinGroupVm.GroupId].Add(coinGroupVm);
                        OnGroupPropertyChanged(coinGroupVm.GroupId);
                    }
                }, location: this.GetType());
                AddEventPath <CoinGroupRemovedEvent>("删除了币组后调整VM内存", LogEnum.DevConsole,
                                                     action: (message) => {
                    if (_dicById.ContainsKey(message.Source.GetId()))
                    {
                        var entity = _dicById[message.Source.GetId()];
                        _dicById.Remove(message.Source.GetId());
                        if (_listByGroupId.ContainsKey(entity.GroupId))
                        {
                            _listByGroupId[entity.GroupId].Remove(entity);
                        }
                        OnGroupPropertyChanged(entity.GroupId);
                    }
                }, location: this.GetType());
                Init();
#if DEBUG
                var elapsedMilliseconds = NTStopwatch.Stop();
                if (elapsedMilliseconds.ElapsedMilliseconds > NTStopwatch.ElapsedMilliseconds)
                {
                    Write.DevTimeSpan($"耗时{elapsedMilliseconds} {this.GetType().Name}.ctor");
                }
#endif
            }
Esempio n. 5
0
 private CoinGroupViewModels()
 {
     if (WpfUtil.IsInDesignMode)
     {
         return;
     }
     VirtualRoot.AddEventPath <ServerContextReInitedEvent>("ServerContext刷新后刷新VM内存", LogEnum.DevConsole,
                                                           action: message => {
         _dicById.Clear();
         _listByGroupId.Clear();
         Init();
     }, location: this.GetType());
     VirtualRoot.AddEventPath <ServerContextReInitedEventHandledEvent>("ServerContext的VM集刷新后刷新视图界面", LogEnum.DevConsole,
                                                                       action: message => {
         // 什么也不做,因为该集合没有什么属性
     }, location: this.GetType());
     AddEventPath <CoinGroupAddedEvent>("添加了币组后调整VM内存", LogEnum.DevConsole,
                                        action: (message) => {
         if (!_dicById.ContainsKey(message.Source.GetId()))
         {
             CoinGroupViewModel coinGroupVm = new CoinGroupViewModel(message.Source);
             _dicById.Add(message.Source.GetId(), coinGroupVm);
             if (!_listByGroupId.ContainsKey(coinGroupVm.GroupId))
             {
                 _listByGroupId.Add(coinGroupVm.GroupId, new List <CoinGroupViewModel>());
             }
             _listByGroupId[coinGroupVm.GroupId].Add(coinGroupVm);
             OnGroupPropertyChanged(coinGroupVm.GroupId);
         }
     }, location: this.GetType());
     AddEventPath <CoinGroupRemovedEvent>("删除了币组后调整VM内存", LogEnum.DevConsole,
                                          action: (message) => {
         if (_dicById.ContainsKey(message.Source.GetId()))
         {
             var entity = _dicById[message.Source.GetId()];
             _dicById.Remove(message.Source.GetId());
             if (_listByGroupId.ContainsKey(entity.GroupId))
             {
                 _listByGroupId[entity.GroupId].Remove(entity);
             }
             OnGroupPropertyChanged(entity.GroupId);
         }
     }, location: this.GetType());
     Init();
 }
Esempio n. 6
0
 public bool TryGetGroupVm(Guid coinGroupId, out CoinGroupViewModel groupVm)
 {
     return(_dicById.TryGetValue(coinGroupId, out groupVm));
 }