private void Init() { VirtualRoot.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); } }).AddToCollection(NTMinerRoot.Current.ContextHandlers); VirtualRoot.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 (GroupViewModels.Current.TryGetGroupVm(entity.GroupId, out groupVm)) { groupVm.OnPropertyChanged(nameof(groupVm.CoinGroupVms)); } } } }).AddToCollection(NTMinerRoot.Current.ContextHandlers); VirtualRoot.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); } }).AddToCollection(NTMinerRoot.Current.ContextHandlers); foreach (var item in NTMinerRoot.Current.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 CoinGroupViewModels() { foreach (var item in NTMinerRoot.Current.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); } Global.Access<CoinGroupAddedEvent>( Guid.Parse("e0476d29-0115-405e-81d1-c7fb65051c83"), "添加了币组后调整VM内存", LogEnum.Log, 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); GroupViewModel groupVm; if (GroupViewModels.Current.TryGetGroupVm(coinGroupVm.GroupId, out groupVm)) { groupVm.OnPropertyChanged(nameof(groupVm.CoinVms)); groupVm.OnPropertyChanged(nameof(groupVm.DualCoinVms)); groupVm.OnPropertyChanged(nameof(groupVm.CoinGroupVms)); } } }); Global.Access<CoinGroupUpdatedEvent>( Guid.Parse("c600d33a-21e3-45ad-b9b3-cfd5578885f4"), "更新了币组后调整VM内存", LogEnum.Log, 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 (GroupViewModels.Current.TryGetGroupVm(entity.GroupId, out groupVm)) { groupVm.OnPropertyChanged(nameof(groupVm.CoinGroupVms)); } } } }); Global.Access<CoinGroupRemovedEvent>( Guid.Parse("76842ab6-c1a3-4eee-b951-f25be25ec35a"), "删除了币组后调整VM内存", LogEnum.Log, 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); } GroupViewModel groupVm; if (GroupViewModels.Current.TryGetGroupVm(entity.GroupId, out groupVm)) { groupVm.OnPropertyChanged(nameof(groupVm.CoinVms)); groupVm.OnPropertyChanged(nameof(groupVm.DualCoinVms)); groupVm.OnPropertyChanged(nameof(groupVm.CoinGroupVms)); } } }); }