public PlayerSetupPageViewModel(INavigationService navigationService) { NavigationService = navigationService; PlayersA = new ObservableCollection <PlayerSetupPlayerViewModel>(); PlayersB = new ObservableCollection <PlayerSetupPlayerViewModel>(); CommandStart = ReactiveCommand.Create(async() => { var ptA = PlayersA.Select(a => new PlayerStandalone(Guid.NewGuid(), a.Name, Players.Gender.Unidentified, 170, 65, Players.Hands.Right, a.Color.ToVolleyColor())).ToArray(); var ptB = PlayersB.Select(a => new PlayerStandalone(Guid.NewGuid(), a.Name, Players.Gender.Unidentified, 170, 65, Players.Hands.Right, a.Color.ToVolleyColor())).ToArray(); var teamA = new GenericTeam(ptA, ptA.First(), Guid.NewGuid(), "Team A"); var teamB = new GenericTeam(ptB, ptB.First(), Guid.NewGuid(), "Team B"); RuleSetupParameters rsp = RuleSetupParameters; MatchSetupParameters rp = rsp.RuleParameters; var rule = new MatchRuleStandalone(rp.IsDoubles, rsp.SetCounter.CurrentGameCounter.CurrentPointCounter is FifteenBasedPointCounter fbpc && fbpc.HasDeuce , rp.SetsPerMatch, rp.GamesPerSet, rsp.SetCounter.CurrentGameCounter is TieBreakSetGameCounter tbsgc); var match = new MatchStandalone <GenericTeam>(teamA, teamB, rule, Matches.EnumTeams.TeamA, rsp.SetCounter); var n = new MatchStartParameters(match); var par = new NavigationParameters() { { "P", n } }; await navigationService.NavigateAsync(nameof(MainPage), par); }); }
public AdvantageSetSetupPageViewModel(INavigationService navigationService) { CommandNext = ReactiveCommand.Create(async() => { try { var fpc = FifteenBasedPointCounter.CreateFactory(HasDeuce); var fgc = AdvantageSetGameCounter.CreateFactory(fpc, MatchSetupParameters.GamesPerSet, LeastWinningDifference); var sc = MatchSetupParameters.SetCounterFactory.Create(fgc); var n = new RuleSetupParameters(MatchSetupParameters, sc); var p = new NavigationParameters { { "P", n } }; _ = await navigationService.NavigateAsync(nameof(PlayerSetupPage), p); } catch (Exception e) { Debug.WriteLine(e.ToString()); throw; } }); }