Ejemplo n.º 1
0
        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}\"");
            };
        }
Ejemplo n.º 2
0
        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));
                }
            };
        }