public ServerMonitorBansViewModel(ServerInfoDto serverInfo, IEventAggregator eventAggregator, IServerInfoRepository infoRepository, IBanHelper banHelper, ISettingsStoreSource settingsStoreSource) : base( new ActionCommand(() => SendCommand(eventAggregator, serverInfo.Id, CommandType.Bans)), new BanViewComparer()) { _serverInfoId = serverInfo.Id; _eventAggregator = eventAggregator; _helper = banHelper; AvailibleBans = new BanView[0]; SyncBans = new ActionCommand(() => { var bans = SelectedAvailibleBans; if (bans != null) { Task.Factory.StartNew(async() => { await _helper.BanGUIDOfflineAsync(_serverInfoId, bans.ToArray(), true); }, TaskCreationOptions.LongRunning); } }); CustomBan = new ActionCommand(() => { var w = new BanPlayerWindow(_serverInfoId, _helper, null, false, null, null, infoRepository, settingsStoreSource); w.ShowDialog(); }); RefreshAvailiableCommand = new ActionCommand(async() => { AvailibleBans = await GetAvailibleBans(); RaisePropertyChanged(nameof(AvailibleBans)); RaisePropertyChanged(nameof(AvailibleBansCount)); }); _eventAggregator.GetEvent <BEMessageEvent <BEItemsMessage <Ban> > >() .Subscribe(async e => { if (_serverInfoId == e.ServerId) { await SetDataAsync(e.Items); WaitingForEvent = false; } }); }
public ServerMonitorBansViewModel(ILog log, ServerInfo serverInfo, IEventAggregator eventAggregator, IBanHelper banHelper) : base( new ActionCommand(() => SendCommand(eventAggregator, serverInfo.Id, CommandType.Bans)), new BanViewComparer()) { _log = log; _serverInfoId = serverInfo.Id; _eventAggregator = eventAggregator; _helper = banHelper; SyncBans = new ActionCommand(() => { var bans = SelectedAvailibleBans; if (bans != null) { Task.Factory.StartNew(() => { _helper.BanGUIDOffline(_serverInfoId, bans.ToArray(), true); }, TaskCreationOptions.LongRunning); } }); CustomBan = new ActionCommand(() => { var w = new BanPlayerWindow(_serverInfoId, _helper, null, false, null, null); w.ShowDialog(); }); _eventAggregator.GetEvent <BEMessageEvent <BEItemsMessage <Ban> > >() .Subscribe(e => { if (_serverInfoId == e.ServerId) { SetData(e.Items); WaitingForEvent = false; } }); }