Beispiel #1
0
        private void SetToolbaritems()
        {
            ToolbarItems.Clear();
            var infoItem  = new ToolbarItem("Info", "info.png", () => ShowInfo());
            var scoreItem = TabView.SelectedIndex > 1
                ? new ToolbarItem("Score", "todo.png", () => ShowToDo())
                : new ToolbarItem("Score", "score.png", () => ShowScore());
            var finishItem = new ToolbarItem("Finish", "finish.png", async() => await _vm.Finish());

            ToolbarItems.Add(infoItem);
            ToolbarItems.Add(scoreItem);

            if (DomainBase.IsEmpty(_vm.Game.Game.FinishedAt))
            {
                ToolbarItems.Add(finishItem);
            }
        }
Beispiel #2
0
        public async Task LoadAsync(string gameId)
        {
            var gameDto = await DataService.GetPlayGame(gameId);

            Tees = new ObservableCollection <TeeDto>(gameDto.Tees.OrderBy(x => x.Number));
            foreach (var teeDto in Tees)
            {
                teeDto.Scores = new ObservableCollection <ScoreDto>(gameDto.Scores.Where(x => x.TeeId == teeDto.Id).OrderBy(x => x.PlayerAbbreviation));
            }

            var scores = gameDto.Scores.OrderBy(x => x.PlayerId).ToList();

            foreach (var scoreDto in scores)
            {
                scoreDto.Player    = gameDto.Players.First(x => x.Id == scoreDto.PlayerId);
                scoreDto.TeeNumber = gameDto.Tees.First(x => x.Id == scoreDto.TeeId).Number;
            }

            TotalScores = new ObservableCollection <TotalScoreDto>();
            foreach (var player in gameDto.Players.OrderBy(x => x.Abbreviation))
            {
                TotalScores.Add(new TotalScoreDto
                {
                    PlayerId   = player.Id,
                    TotalPutts = scores.Where(x => x.PlayerId == player.Id).Sum(x => x.Putts),
                });
            }

            Scores = new ObservableCollection <ScoreDto>(scores.OrderBy(x => x.TeeNumber).ThenBy(x => x.PlayerAbbreviation));
            Game   = gameDto;

            CurrentScore = Scores[Game.Game.CurrentTee];
            CurrentScore.ScoreChanged += CurrentScore_ScoreChanged;
            CurrentTee       = Tees.First(x => x.Id == CurrentScore.TeeId);
            IsBackEnabled    = false;
            IsNextEnabled    = true;
            ScoringIsEnabled = DomainBase.IsEmpty(Game.Game.FinishedAt);
            Title            = $"{Game.Game.GameType} @ {Game.Venue.Name}";

            RaisePropertyChanged(nameof(GameStartTime));
            RaisePropertyChanged(nameof(GameFinishedTime));
        }