private async void ExecuteSignInCommand(object obj)
        {
            // Check if service is available
            if (!await BettorClientHelper.IsAvailable(_bettorClient))
            {
                return;
            }

            // Check if nickname exists.
            var nickname = _loginWindowViewModel.Nickname;

            if (nickname == null)
            {
                return;
            }
            var isSuccess = await _bettorClient.IsValidNicknameAsync(nickname);

            if (isSuccess)
            {
                var bettor = await _bettorClient.GetBettorAsync(nickname);

                var menu = new MenuWindowController();
                menu.Initialize(_mainWindow, bettor);
            }
            else
            {
                MessageBox.Show("Der Benutzer ist nicht vorhanden!", "Anmeldung fehlgeschlagen",
                                MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Пример #2
0
        public async void Initialize(MainWindow mainWindow, MenuWindowController menuWindow, Season selectedSeason, Bettor bettor)
        {
            _view           = new MatchesWindow();
            _bettorClient   = new BettorClientServiceClient();
            _mainWindow     = mainWindow;
            _menuWindow     = menuWindow;
            _selectedSeason = selectedSeason;
            _bettor         = bettor;

            #region View and ViewModel
            // Check if service is available
            if (!await BettorClientHelper.IsAvailable(_bettorClient))
            {
                return;
            }
            _viewModel = new MatchesWindowViewModel
            {
                SelectedSeason       = _selectedSeason,
                Matches              = LoadModels(),
                SelectedMatch        = SortedMatches().FirstOrDefault(),
                SelectedMatchCommand = new RelayCommand(ExecuteSelectedMatchCommand),
                BackCommand          = new RelayCommand(ExecuteBackCommand)
            };
            _view.DataContext = _viewModel;
            #endregion

            _mainWindow.Content = _view;
        }
        public async void ExecuteTeamsCommand(object obj)
        {
            // Check if service is available
            if (!await BettorClientHelper.IsAvailable(_bettorClient))
            {
                return;
            }
            var teamRankingWindowController = new TeamRankingWindowController();

            _selectedSeason = _viewModel.SelectedSeason;
            teamRankingWindowController.Initialize(_mainWindow, this, _viewModel.SelectedSeason, _bettor);
        }
Пример #4
0
        public async void Initialize(MainWindow mainWindow, MenuWindowController menuWindow, Season selectedSeason, Bettor bettor)
        {
            _view           = new BettorRankingWindow();
            _bettorClient   = new BettorClientServiceClient();
            _mainWindow     = mainWindow;
            _menuWindow     = menuWindow;
            _selectedSeason = selectedSeason;
            _bettor         = bettor;

            #region View and ViewModel
            // Check if service is available
            if (!await BettorClientHelper.IsAvailable(_bettorClient))
            {
                return;
            }
            var matches = await _bettorClient.GetMatchesAsync(_selectedSeason);

            // get rankedbettors
            var rankedBettors = await _bettorClient.GetAllRankedBettorsAsync(_selectedSeason);

            // set list for match days
            var matchDays = new ObservableCollection <string> {
                "Aktuell"
            };
            if (matches.Any())
            {
                // find max match day
                var max = matches.Max(x => x.MatchDay);
                for (var i = 1; i <= max; i++)
                {
                    matchDays.Add("Spieltag: " + i);
                }
            }
            _viewModel = new BettorRankingWindowViewModel
            {
                Bettors          = rankedBettors.ToList(),
                SelectedMatchDay = matchDays.FirstOrDefault(),
                MatchDays        = matchDays,
                BackCommand      = new RelayCommand(ExecuteBackCommand)
            };
            _viewModel.SelectionMatchDayChanged += UpdateMatchDay;
            // set view of Window
            _view.DataContext = _viewModel;
            #endregion

            _mainWindow.Content = _view;
        }
Пример #5
0
        private async void UpdateMatchDay(object sender, string s)
        {
            // Check if service is available
            if (!await BettorClientHelper.IsAvailable(_bettorClient))
            {
                return;
            }
            var matchday = _view.MatchDayComboBox.SelectedIndex;

            if (matchday == 0)
            {
                var rankedTeams = await _bettorClient.GetAllRankedTeamsAsync(_selectedSeason);

                _viewModel.Teams = rankedTeams.ToList();
            }
            else
            {
                var rankedTeams = await _bettorClient.GetRankedTeamsAsync(_selectedSeason, matchday);

                _viewModel.Teams = rankedTeams.ToList();
            }
        }
Пример #6
0
        public async void ExecuteSelectedMatchCommand(object obj)
        {
            var viewModelSelectedMatch = _viewModel.SelectedMatch;

            if (viewModelSelectedMatch == null)
            {
                MessageBox.Show("Bitte wählen Sie ein Spiel aus!", "Kein Spiel ausgewählt",
                                MessageBoxButton.OK, MessageBoxImage.Warning);
                return;
            }
            var bet = _bettorClient.GetBet(viewModelSelectedMatch, _bettor);
            var detailMatchWindowController = new DetailMatchWindowController
            {
                Match = viewModelSelectedMatch,
                Bet   = bet
            };
            var betState = detailMatchWindowController.ShowMatch();

            // Check if service is available
            if (!await BettorClientHelper.IsAvailable(_bettorClient))
            {
                return;
            }

            if (betState == State.Abort)
            {
                return;
            }
            // At this point we do not know if the bettor still bet for the match, therefore we have to look if it it null or not.
            bool isSuccess = false;

            switch (betState)
            {
            case State.Changed:
                isSuccess = await _bettorClient.ChangeBetAsync(detailMatchWindowController.Bet);

                break;

            case State.Added:
                detailMatchWindowController.Bet.Bettor = _bettor;
                isSuccess = await _bettorClient.AddBetAsync(detailMatchWindowController.Bet);

                break;

            case State.Deleted:
                isSuccess = await _bettorClient.RemoveBetAsync(detailMatchWindowController.Bet);

                break;
            }

            if (!isSuccess)
            {
                MessageBox.Show(
                    "Der Tipp konnte nicht abgegeben werden! Bitte beachten Sie, dass Sie bis spätestens 30 Minuten vor Spielbeginn tippen können!",
                    "Tipp fehlgeschlagen",
                    MessageBoxButton.OK, MessageBoxImage.Error);
                LoadModels();
                return;
            }

            switch (betState)
            {
            case State.Added:
            case State.Changed:
                MessageBox.Show("Der Tipp wurde erfolgreich abgegeben, viel Erfolg!", "Tipp erfolgreich",
                                MessageBoxButton.OK, MessageBoxImage.Information);
                break;

            case State.Deleted:
                MessageBox.Show("Der Tipp wurde erfolgreich gelöscht!", "Tipp erfolgreich",
                                MessageBoxButton.OK, MessageBoxImage.Information);
                break;
            }
            LoadModels();
        }