예제 #1
0
 public SingleGameTeamLineupEditorViewModel(TeamViewModel teamViewModel, bool sortLineup = true)
 {
     SwitchInLineupCommand = new DelegateCommand(SwitchInLineup, CanSwitchInLineup);
     MoveDownCommand       = new DelegateCommand(MoveDown, CanMoveDown);
     MoveUpCommand         = new DelegateCommand(MoveUp, CanMoveUp);
     Team = teamViewModel;
     if (sortLineup)
     {
         Team.Lineup.Order(b => b.OnBasePlusSlugging, true);
         var order = 0;
         foreach (var batter in Team.Lineup)
         {
             batter.CurrentGameLineupIndex = order;
             order++;
         }
     }
     SelectedLineupBatter = Team.Lineup.ElementAt(0);
     if (Team.Bench.Any())
     {
         SelectedBenchBatter = Team.Bench.ElementAt(0);
     }
     IsGameStarted = false;
 }
        private TeamViewModel SetupHistoricalTeamViewModel(Team team)
        {
            var batters  = team.PlayerStints.Where(p => p.PitchingStint == null).Select(b => new BatterViewModel(b)).ToList();
            var pitchers = team.PlayerStints.Where(p => p.PitchingStint != null).Select(p => new PitcherViewModel(p)).ToList();

            var teamViewModel = new TeamViewModel();

            teamViewModel.Catcher = batters.Where(b => b.PlayerStint.FieldingStints.Any(f => f.PositionType == PositionType.Catcher))
                                    .OrderByDescending(b => b.PlayerStint.FieldingStints.SingleOrDefault(f => f.PositionType == PositionType.Catcher).Games).First();
            batters.Remove(teamViewModel.Catcher);

            teamViewModel.Shortstop = batters.Where(b => b.PlayerStint.FieldingStints.Any(f => f.PositionType == PositionType.Shortstop))
                                      .OrderByDescending(b => b.PlayerStint.FieldingStints.SingleOrDefault(f => f.PositionType == PositionType.Shortstop).Games).First();
            batters.Remove(teamViewModel.Shortstop);

            teamViewModel.SecondBaseman = batters.Where(b => b.PlayerStint.FieldingStints.Any(f => f.PositionType == PositionType.SecondBaseman))
                                          .OrderByDescending(b => b.PlayerStint.FieldingStints.SingleOrDefault(f => f.PositionType == PositionType.SecondBaseman).Games).First();
            batters.Remove(teamViewModel.SecondBaseman);

            teamViewModel.ThirdBaseman = batters.Where(b => b.PlayerStint.FieldingStints.Any(f => f.PositionType == PositionType.ThirdBaseman))
                                         .OrderByDescending(b => b.PlayerStint.FieldingStints.SingleOrDefault(f => f.PositionType == PositionType.ThirdBaseman).Games).First();
            batters.Remove(teamViewModel.ThirdBaseman);

            teamViewModel.FirstBaseman = batters.Where(b => b.PlayerStint.FieldingStints.Any(f => f.PositionType == PositionType.FirstBaseman))
                                         .OrderByDescending(b => b.PlayerStint.FieldingStints.SingleOrDefault(f => f.PositionType == PositionType.FirstBaseman).Games).First();
            batters.Remove(teamViewModel.FirstBaseman);

            teamViewModel.CenterFielder = batters.Where(b => b.PlayerStint.FieldingStints.Any(f => f.PositionType == PositionType.CenterFielder))
                                          .OrderByDescending(b => b.PlayerStint.FieldingStints.SingleOrDefault(f => f.PositionType == PositionType.CenterFielder).Games)?.FirstOrDefault();
            if (teamViewModel.CenterFielder == null)
            {
                teamViewModel.CenterFielder = batters.Where(b => b.PlayerStint.FieldingStints.Any(f => f.PositionType == PositionType.OutFielder))
                                              .OrderByDescending(b => b.PlayerStint.FieldingStints.SingleOrDefault(f => f.PositionType == PositionType.OutFielder).Games)?.FirstOrDefault();
            }
            batters.Remove(teamViewModel.CenterFielder);

            teamViewModel.RightFielder = batters.Where(b => b.PlayerStint.FieldingStints.Any(f => f.PositionType == PositionType.RightFielder))
                                         .OrderByDescending(b => b.PlayerStint.FieldingStints.SingleOrDefault(f => f.PositionType == PositionType.RightFielder).Games)?.FirstOrDefault();
            if (teamViewModel.RightFielder == null)
            {
                teamViewModel.RightFielder = batters.Where(b => b.PlayerStint.FieldingStints.Any(f => f.PositionType == PositionType.OutFielder))
                                             .OrderByDescending(b => b.PlayerStint.FieldingStints.SingleOrDefault(f => f.PositionType == PositionType.OutFielder).Games)?.FirstOrDefault();
            }
            batters.Remove(teamViewModel.RightFielder);


            teamViewModel.LeftFielder = batters.Where(b => b.PlayerStint.FieldingStints.Any(f => f.PositionType == PositionType.LeftFielder))
                                        .OrderByDescending(b => b.PlayerStint.FieldingStints.SingleOrDefault(f => f.PositionType == PositionType.LeftFielder).Games)?.FirstOrDefault();
            if (teamViewModel.LeftFielder == null)
            {
                teamViewModel.LeftFielder = batters.Where(b => b.PlayerStint.FieldingStints.Any(f => f.PositionType == PositionType.OutFielder))
                                            .OrderByDescending(b => b.PlayerStint.FieldingStints.SingleOrDefault(f => f.PositionType == PositionType.OutFielder).Games)?.FirstOrDefault();
            }
            batters.Remove(teamViewModel.LeftFielder);

            teamViewModel.DesignatedHitter = batters.OrderByDescending(b => b.PlayerStint.BattingStint.Games).First();
            batters.Remove(teamViewModel.DesignatedHitter);

            teamViewModel.BenchPlayer1 = batters.OrderByDescending(b => b.PlayerStint.BattingStint.Games)?.FirstOrDefault();
            if (teamViewModel.BenchPlayer1 != null)
            {
                batters.Remove(teamViewModel.BenchPlayer1);
                teamViewModel.BenchPlayer2 = batters.OrderByDescending(b => b.PlayerStint.BattingStint.Games)?.FirstOrDefault();
                if (teamViewModel.BenchPlayer2 != null)
                {
                    batters.Remove(teamViewModel.BenchPlayer2);
                    teamViewModel.BenchPlayer3 = batters.OrderByDescending(b => b.PlayerStint.BattingStint.Games)?.FirstOrDefault();
                    if (teamViewModel.BenchPlayer3 != null)
                    {
                        batters.Remove(teamViewModel.BenchPlayer3);
                        teamViewModel.BenchPlayer4 = batters.OrderByDescending(b => b.PlayerStint.BattingStint.Games)?.FirstOrDefault();
                        if (teamViewModel.BenchPlayer4 != null)
                        {
                            batters.Remove(teamViewModel.BenchPlayer4);
                        }
                    }
                }
            }

            teamViewModel.StartingPitcher1 = pitchers.OrderByDescending(p => p.GamesStarted).First();
            pitchers.Remove(teamViewModel.StartingPitcher1);
            teamViewModel.StartingPitcher2 = pitchers.OrderByDescending(p => p.GamesStarted)?.FirstOrDefault();
            if (teamViewModel.StartingPitcher2 != null)
            {
                pitchers.Remove(teamViewModel.StartingPitcher2);
                teamViewModel.StartingPitcher3 = pitchers.OrderByDescending(p => p.GamesStarted)?.FirstOrDefault();
                if (teamViewModel.StartingPitcher3 != null)
                {
                    pitchers.Remove(teamViewModel.StartingPitcher3);
                    teamViewModel.StartingPitcher4 = pitchers.OrderByDescending(p => p.GamesStarted)?.FirstOrDefault();
                    if (teamViewModel.StartingPitcher4 != null)
                    {
                        pitchers.Remove(teamViewModel.StartingPitcher4);
                        teamViewModel.StartingPitcher5 = pitchers.OrderByDescending(p => p.GamesStarted)?.FirstOrDefault();
                        if (teamViewModel.StartingPitcher5 != null)
                        {
                            pitchers.Remove(teamViewModel.StartingPitcher5);
                        }
                    }
                }
            }

            teamViewModel.ReliefPitcher1 = pitchers.OrderByDescending(p => p.Games)?.FirstOrDefault();
            if (teamViewModel.ReliefPitcher1 != null)
            {
                pitchers.Remove(teamViewModel.ReliefPitcher1);
                teamViewModel.ReliefPitcher2 = pitchers.OrderByDescending(p => p.Games)?.FirstOrDefault();
                if (teamViewModel.ReliefPitcher2 != null)
                {
                    pitchers.Remove(teamViewModel.ReliefPitcher2);
                    teamViewModel.ReliefPitcher3 = pitchers.OrderByDescending(p => p.Games)?.FirstOrDefault();
                    if (teamViewModel.ReliefPitcher3 != null)
                    {
                        pitchers.Remove(teamViewModel.ReliefPitcher3);
                        teamViewModel.ReliefPitcher4 = pitchers.OrderByDescending(p => p.Games)?.FirstOrDefault();
                        if (teamViewModel.ReliefPitcher4 != null)
                        {
                            pitchers.Remove(teamViewModel.ReliefPitcher4);
                            teamViewModel.ReliefPitcher5 = pitchers.OrderByDescending(p => p.Games)?.FirstOrDefault();
                            if (teamViewModel.ReliefPitcher5 != null)
                            {
                                pitchers.Remove(teamViewModel.ReliefPitcher5);
                                teamViewModel.ReliefPitcher6 = pitchers.OrderByDescending(p => p.Games)?.FirstOrDefault();
                                if (teamViewModel.ReliefPitcher6 != null)
                                {
                                    pitchers.Remove(teamViewModel.ReliefPitcher6);
                                    teamViewModel.ReliefPitcher7 = pitchers.OrderByDescending(p => p.Games)?.FirstOrDefault();
                                    if (teamViewModel.ReliefPitcher7 != null)
                                    {
                                        pitchers.Remove(teamViewModel.ReliefPitcher7);
                                    }
                                }
                            }
                        }
                    }
                }
            }

            return(teamViewModel);
        }
예제 #3
0
        private void SetDefaultTeamCollections(TeamViewModel team)
        {
            team.Lineup.Add(team.Catcher);
            team.Lineup.Add(team.FirstBaseman);
            team.Lineup.Add(team.SecondBaseman);
            team.Lineup.Add(team.ThirdBaseman);
            team.Lineup.Add(team.Shortstop);
            team.Lineup.Add(team.LeftFielder);
            team.Lineup.Add(team.CenterFielder);
            team.Lineup.Add(team.RightFielder);
            team.Lineup.Add(team.DesignatedHitter);

            if (team.BenchPlayer1 != null)
            {
                team.Bench.Add(team.BenchPlayer1);
            }
            if (team.BenchPlayer2 != null)
            {
                team.Bench.Add(team.BenchPlayer2);
            }
            if (team.BenchPlayer3 != null)
            {
                team.Bench.Add(team.BenchPlayer3);
            }
            if (team.BenchPlayer4 != null)
            {
                team.Bench.Add(team.BenchPlayer4);
            }

            team.CurrentPitcher = team.StartingPitcher1;

            if (team.StartingPitcher2 != null)
            {
                team.Bullpen.Add(team.StartingPitcher2);
            }
            if (team.StartingPitcher3 != null)
            {
                team.Bullpen.Add(team.StartingPitcher3);
            }
            if (team.StartingPitcher4 != null)
            {
                team.Bullpen.Add(team.StartingPitcher4);
            }
            if (team.StartingPitcher5 != null)
            {
                team.Bullpen.Add(team.StartingPitcher5);
            }
            if (team.ReliefPitcher1 != null)
            {
                team.Bullpen.Add(team.ReliefPitcher1);
            }
            if (team.ReliefPitcher2 != null)
            {
                team.Bullpen.Add(team.ReliefPitcher2);
            }
            if (team.ReliefPitcher3 != null)
            {
                team.Bullpen.Add(team.ReliefPitcher3);
            }
            if (team.ReliefPitcher4 != null)
            {
                team.Bullpen.Add(team.ReliefPitcher4);
            }
            if (team.ReliefPitcher5 != null)
            {
                team.Bullpen.Add(team.ReliefPitcher5);
            }
            if (team.ReliefPitcher6 != null)
            {
                team.Bullpen.Add(team.ReliefPitcher6);
            }
            if (team.ReliefPitcher7 != null)
            {
                team.Bullpen.Add(team.ReliefPitcher7);
            }

            var count = 0;

            foreach (var batter in team.Lineup)
            {
                batter.CurrentGameLineupIndex = count;
                count++;
            }

            count = 0;
            foreach (var batter in team.Bench)
            {
                batter.CurrentGameBenchIndex = count;
                count++;
            }

            count = 0;
            foreach (var pitcher in team.Bullpen)
            {
                pitcher.BullpenIndex = count;
                count++;
            }
        }
        public IEnumerable <TeamViewModel> GenerateRandomTeams(bool hallOfFamer = false, bool allStar = false)
        {
            var homeTeam = new TeamViewModel();
            var awayTeam = new TeamViewModel();

            homeTeam.TeamName         = "Home Team";
            awayTeam.TeamName         = "Away Team";
            homeTeam.Catcher          = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.Catcher, true, hallOfFamer, allStar));
            awayTeam.Catcher          = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.Catcher, true, hallOfFamer, allStar));
            homeTeam.FirstBaseman     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.FirstBaseman, true, hallOfFamer, allStar));
            awayTeam.FirstBaseman     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.FirstBaseman, true, hallOfFamer, allStar));
            homeTeam.SecondBaseman    = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.SecondBaseman, true, hallOfFamer, allStar));
            awayTeam.SecondBaseman    = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.SecondBaseman, true, hallOfFamer, allStar));
            homeTeam.ThirdBaseman     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.ThirdBaseman, true, hallOfFamer, allStar));
            awayTeam.ThirdBaseman     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.ThirdBaseman, true, hallOfFamer, allStar));
            homeTeam.Shortstop        = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.Shortstop, true, hallOfFamer, allStar));
            awayTeam.Shortstop        = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.Shortstop, true, hallOfFamer, allStar));
            homeTeam.LeftFielder      = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.LeftFielder, true, hallOfFamer, allStar));
            awayTeam.LeftFielder      = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.LeftFielder, true, hallOfFamer, allStar));
            homeTeam.CenterFielder    = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.CenterFielder, true, hallOfFamer, allStar));
            awayTeam.CenterFielder    = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.CenterFielder, true, hallOfFamer, allStar));
            homeTeam.RightFielder     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.RightFielder, true, hallOfFamer, allStar));
            awayTeam.RightFielder     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.RightFielder, true, hallOfFamer, allStar));
            homeTeam.DesignatedHitter = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.DesignatedHitter, true, hallOfFamer, allStar));
            awayTeam.DesignatedHitter = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.DesignatedHitter, true, hallOfFamer, allStar));
            homeTeam.BenchPlayer1     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.Catcher, false, hallOfFamer, allStar));
            awayTeam.BenchPlayer1     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.Catcher, false, hallOfFamer, allStar));
            homeTeam.BenchPlayer2     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.CornerInfielder, false, hallOfFamer, allStar));
            awayTeam.BenchPlayer2     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.CornerInfielder, false, hallOfFamer, allStar));
            homeTeam.BenchPlayer3     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.MiddleInfielder, false, hallOfFamer, allStar));
            awayTeam.BenchPlayer3     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.MiddleInfielder, false, hallOfFamer, allStar));
            homeTeam.BenchPlayer4     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.OutFielder, false, hallOfFamer, allStar));
            awayTeam.BenchPlayer4     = new BatterViewModel(RandomPlayerSelectorService.SelectRandomBatter(PositionType.OutFielder, false, hallOfFamer, allStar));
            homeTeam.StartingPitcher1 = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(true, hallOfFamer, allStar));
            awayTeam.StartingPitcher1 = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(true, hallOfFamer, allStar));
            homeTeam.StartingPitcher2 = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(true, hallOfFamer, allStar));
            awayTeam.StartingPitcher2 = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(true, hallOfFamer, allStar));
            homeTeam.StartingPitcher3 = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(true, hallOfFamer, allStar));
            awayTeam.StartingPitcher3 = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(true, hallOfFamer, allStar));
            homeTeam.StartingPitcher4 = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(true, hallOfFamer, allStar));
            awayTeam.StartingPitcher4 = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(true, hallOfFamer, allStar));
            homeTeam.StartingPitcher5 = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(true, hallOfFamer, allStar));
            awayTeam.StartingPitcher5 = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(true, hallOfFamer, allStar));
            homeTeam.ReliefPitcher1   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            awayTeam.ReliefPitcher1   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            homeTeam.ReliefPitcher2   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            awayTeam.ReliefPitcher2   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            homeTeam.ReliefPitcher3   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            awayTeam.ReliefPitcher3   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            homeTeam.ReliefPitcher4   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            awayTeam.ReliefPitcher4   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            homeTeam.ReliefPitcher5   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            awayTeam.ReliefPitcher5   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            homeTeam.ReliefPitcher6   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            awayTeam.ReliefPitcher6   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            homeTeam.ReliefPitcher7   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));
            awayTeam.ReliefPitcher7   = new PitcherViewModel(RandomPlayerSelectorService.SelectRandomPitcher(false, hallOfFamer, allStar));

            return(new List <TeamViewModel> {
                homeTeam, awayTeam
            });
        }