Esempio n. 1
0
        async void MainWindow_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
            case Key.Space:
            case Key.Next:
            {
                _viewModel.StartNextMode();
                break;
            }

            case Key.Escape:
            case Key.B:
            {
                _viewModel.Restart();

                while (Canvas.Children.Count > 0)
                {
                    Canvas.Children.Remove(Canvas.Children[0]);
                }

                break;
            }

            case Key.Enter:
            case Key.PageUp:
            {
                if (_viewModel?.SelectedTile != null)
                {
                    _viewModel.SaveWinnerDetails(_viewModel.SelectedTile, true);
                }

                break;
            }

            case Key.F5:
            {
                Hide();

                // Ask user for an event id
                var dlg = new RequestEventIdDialog();
                if (dlg.ShowDialog() != true)
                {
                    return;
                }

                await _eventValidator.InitAsync(dlg.EventId);

                if (!_eventValidator.IsEventDateToday())
                {
                    if (MessageBox.Show("This event isn't for today. Are you sure you have the correct event id?", "Event not today", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No)
                    {
                        return;
                    }
                }

                Canvas.Children.RemoveRange(0, Canvas.Children.Count);

                _viewModel.BeginUpdate(dlg.EventId);

                Close();

                break;
            }
            }
        }
Esempio n. 2
0
        async void MainWindow_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
            case Key.Space:
            case Key.Next:
            {
                _viewModel.StartNextMode();
                break;
            }

            case Key.Escape:
            case Key.B:
            {
                if (_viewModel?.SelectedTile != null)
                {
                    _viewModel.SelectedTile.IsNoShow = true;
                }

                _viewModel?.Restart();

                while (Canvas.Children.Count > 0)
                {
                    Canvas.Children.Remove(Canvas.Children[0]);
                }

                break;
            }

            case Key.Enter:
            case Key.PageUp:
            {
                if (_viewModel?.SelectedTile != null)
                {
                    _viewModel.SelectedTile.IsWinner = true;

                    // Set the winner image
                    _viewModel.SaveWinnerDetails(_viewModel.SelectedTile, true);
                }

                _viewModel?.Restart();

                while (Canvas.Children.Count > 0)
                {
                    Canvas.Children.Remove(Canvas.Children[0]);
                }

                break;
            }

            case Key.F5:
            {
                Hide();

                // Ask user for an event id
                var requestEventIdViewModel = new RequestEventIdDialogViewModel();
                if (new RequestEventIdDialog(requestEventIdViewModel).ShowDialog() != true)
                {
                    return;
                }

                switch (requestEventIdViewModel.EventType)
                {
                case EventType.Meetup:
                    await _eventValidator.InitAsync(requestEventIdViewModel.EventId);

                    if (!_eventValidator.IsEventDateToday())
                    {
                        if (MessageBox.Show("This event isn't for today. Are you sure you have the correct event id?", "Event not today", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.No)
                        {
                            return;
                        }
                    }

                    // Meetup is an offline update done before the event. This BeginUpdate will pull from Meetup and
                    // write to the file system, then require a relaunch.
                    Canvas.Children.RemoveRange(0, Canvas.Children.Count);
                    _viewModel.BeginUpdate(requestEventIdViewModel.EventId);

                    Close();
                    break;

                case EventType.Zoom:
                    Canvas.Children.RemoveRange(0, Canvas.Children.Count);

                    _viewModel.PopulateTiles(await _tileProviderFactory.CreateZoomTileProvider(requestEventIdViewModel.EventId)
                                             .GetTilesAsync());

                    InitialiseGrid();

                    Show();

                    break;
                }

                break;
            }
            }
        }