Ejemplo n.º 1
0
 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);
     });
 }
Ejemplo n.º 2
0
 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;
         }
     });
 }