public PlayerViewModel(PersistedSettings settings, IMessageHub Server, ContestantsViewModel contestantsViewModel) { _logger = MainWindow.LogFactory.CreateLogger <PlayerViewModel>(); _finalJeopardyAnswer = string.Empty; _contestantsViewModel = contestantsViewModel; Settings = settings; GameboardCategories = new List <PlayerCategoryViewModel> { new("Placeholder", 200), new("Placeholder", 200), new("Placeholder", 200), new("Placeholder", 200), new("Placeholder", 200), new("Placeholder", 200) }; ActiveQuestion = "No question selected"; FinalJeopardyCategory = string.Empty; BuzzInCommand = new BuzzIn(settings.Guid, Server); SubmitWager = new SubmitWager(this, Server); SubmitFinalJeopardy = new SubmitFinalJeopardy(this, Server); PropertyChanged += (sender, args) => { _logger.Trace($"{sender}: PropertyName: \"{args.PropertyName}\""); }; }
public HostViewModel(IMessageHub server, ContestantsViewModel contestants, ILoggerFactory loggerFactory) { try { Categories = new List <CategoryViewModel> { CategoryViewModel.CreateRandom() ?? CategoryViewModel.GenerateNonsense(), CategoryViewModel.CreateRandom() ?? CategoryViewModel.GenerateNonsense(), CategoryViewModel.CreateRandom() ?? CategoryViewModel.GenerateNonsense(), CategoryViewModel.CreateRandom() ?? CategoryViewModel.GenerateNonsense(), CategoryViewModel.CreateRandom() ?? CategoryViewModel.GenerateNonsense(), CategoryViewModel.CreateRandom() ?? CategoryViewModel.GenerateNonsense() }; } catch { Categories = new List <CategoryViewModel> { CategoryViewModel.GenerateNonsense(), CategoryViewModel.GenerateNonsense(), CategoryViewModel.GenerateNonsense(), CategoryViewModel.GenerateNonsense(), CategoryViewModel.GenerateNonsense(), CategoryViewModel.GenerateNonsense() }; } GameManager = new GameManager(server, this, contestants, loggerFactory); GameManager.PropertyChanged += (sender, args) => { if (args.PropertyName == nameof(GameManager.LastCorrectPlayer)) { OnPropertyChanged(nameof(BoardController)); } }; contestants.Contestants.CollectionChanged += (sender, args) => { if (args.Action == NotifyCollectionChangedAction.Add) { OnPropertyChanged(nameof(BoardController)); } }; }