public PlayerDeckTrackerView( PlayerDeckTrackerViewModel viewModel) { InitializeComponent(); Owner = MainWindowView.Window; Point?windowLocation = GlobalConfigurationSource.Instance.GetSettings().TrackerWindowLocation; if (windowLocation.HasValue) { Left = windowLocation.Value.X; Top = windowLocation.Value.Y; } Size?windowSize = GlobalConfigurationSource.Instance.GetSettings().TrackerWindowSize; if (windowSize.HasValue) { Width = windowSize.Value.Width; Height = windowSize.Value.Height; } DataContext = viewModel; }
void IPlayerDeckTrackerInterface.TrackDeck( Models.Client.Decklist decklist) { Reset(); IEventDispatcher eventDispatcher = _eventDispatcherFactory.Create(); _viewModel = new PlayerDeckTrackerViewModel( _cardInfoProvider, _configurationSource, eventDispatcher, _viewEventDispatcher, decklist); _cancellation = new CancellationTokenSource(); Task.Run( async() => { using (IEventStream eventStream = _eventStreamFactory.Create()) { while (true) { object @event = await eventStream.ReadNext(_cancellation.Token); if (@event == null) { return; } eventDispatcher.DispatchEvent(@event); } } }); _view = new PlayerDeckTrackerView(_viewModel); _view.Show(); }