LongoMatch.Core.Store.ProjectLongoMatch.CurrentLineup C# (CSharp) Method

CurrentLineup() public method

public CurrentLineup ( Time currentTime, List &homeFieldPlayers, List &homeBenchPlayers, List &awayFieldPlayers, List &awayBenchPlayers ) : void
currentTime Time
homeFieldPlayers List
homeBenchPlayers List
awayFieldPlayers List
awayBenchPlayers List
return void
        public void CurrentLineup(Time currentTime,
		                           out List<PlayerLongoMatch> homeFieldPlayers,
		                           out List<PlayerLongoMatch> homeBenchPlayers,
		                           out List<PlayerLongoMatch> awayFieldPlayers,
		                           out List<PlayerLongoMatch> awayBenchPlayers)
        {
            SportsTeam homeTeam, awayTeam;
            List<PlayerLongoMatch> homeTeamPlayers, awayTeamPlayers;

            homeTeamPlayers = Lineup.HomeStartingPlayers.Concat (Lineup.HomeBenchPlayers).ToList ();
            awayTeamPlayers = Lineup.AwayStartingPlayers.Concat (Lineup.AwayBenchPlayers).ToList ();

            foreach (var ev in Timeline.OfType<SubstitutionEvent> ().
                Where (e => e.EventTime <= currentTime)) {
                if (ev.In != null && ev.Out != null) {
                    if (ev.Teams.Contains (LocalTeamTemplate)) {
                        homeTeamPlayers.Swap (ev.In, ev.Out);
                    } else {
                        awayTeamPlayers.Swap (ev.In, ev.Out);
                    }
                }
            }

            homeTeam = new SportsTeam {
                Formation = LocalTeamTemplate.Formation,
                List = new ObservableCollection<Player> (homeTeamPlayers)
            };
            awayTeam = new SportsTeam {
                Formation = VisitorTeamTemplate.Formation,
                List = new ObservableCollection<Player> (awayTeamPlayers)
            };

            homeFieldPlayers = homeTeam.StartingPlayersList;
            homeBenchPlayers = homeTeam.BenchPlayersList;
            awayFieldPlayers = awayTeam.StartingPlayersList;
            awayBenchPlayers = awayTeam.BenchPlayersList;
        }

Usage Example

        public void LoadSubstitution(ProjectLongoMatch project, SubstitutionEvent substitution)
        {
            List<PlayerLongoMatch> hfp, hbp, afp, abp;

            this.substitution = substitution;
            project.CurrentLineup (substitution.EventTime, out hfp, out hbp, out afp, out abp);
            playershbox.Visible = true;
            tagger.SubstitutionMode = false;
            tagger.ShowSubstitutionButtons = false;
            tagger.SelectionMode = MultiSelectionMode.Single;
            if (substitution.Teams.Contains (project.LocalTeamTemplate)) {
                LoadTeams (project, hfp, hbp, null, null);
            } else {
                LoadTeams (project, null, null, afp, abp);
            }
            SwitchPlayer (substitution.In, substitution.Out);
        }