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); } }
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)); }