public PlayerDisplay(TeamMatchesDataPlayer player, TeamMatchesData TeamMatchData) { Player = player; this.TeamMatchData = TeamMatchData; InitializeComponent(); DataContainer.DataContext = Player; using (var ms = new MemoryStream()) { if (player.PlayerImage != null) { Player.PlayerImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png); ms.Position = 0; var bi = new BitmapImage(); bi.BeginInit(); bi.CacheOption = BitmapCacheOption.OnLoad; bi.StreamSource = ms; bi.EndInit(); PlayerImage.ImageSource = bi; } else { PlayerImage.ImageSource = new BitmapImage(new Uri("../../../PlayerImages/defaultplayer.png", UriKind.Relative)); } } }
private void FetchTeamofPlayersForRankings(TeamMatchesData MatchesData, string TeamCode, IDictionary <string, PlayerForRankings> PlayersForRankings) { IEnumerable <TeamMatchesDataPlayer> players; TeamEvent[] events; if (MatchesData.HomeTeam.Code == TeamCode) { players = MatchesData.HomeTeamStatistics.StartingEleven.Union(MatchesData.HomeTeamStatistics.Substitutes); foreach (var player in players) { if (PlayersForRankings.ContainsKey(player.Name)) { PlayersForRankings[player.Name].Appearances++; } else { PlayersForRankings[player.Name] = new PlayerForRankings() { Name = player.Name, Image = player.PlayerImage }; PlayersForRankings[player.Name].Appearances++; } } events = MatchesData.HomeTeamEvents; } else { players = MatchesData.AwayTeamStatistics.StartingEleven.Union(MatchesData.AwayTeamStatistics.Substitutes); foreach (var player in players) { if (PlayersForRankings.ContainsKey(player.Name)) { PlayersForRankings[player.Name].Appearances++; } else { PlayersForRankings[player.Name] = new PlayerForRankings() { Name = player.Name, Image = player.PlayerImage }; PlayersForRankings[player.Name].Appearances++; } } events = MatchesData.AwayTeamEvents; } foreach (var playerevent in events) { switch (playerevent.TypeOfEvent) { case "yellow-card": PlayersForRankings[playerevent.Player].YellowCards++; break; case "goal": PlayersForRankings[playerevent.Player].GoalsScored++; break; default: break; } } }
private async void CboOppositeTeam_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (cboOppositeTeam.SelectedIndex == -1 || cboFavoriteTeam.SelectedIndex == -1) { return; } SoccerCanvas.Children.Clear(); string favoritecode = (cboFavoriteTeam.SelectedItem as TeamFifaData).FifaCode; string oppositioncode = (cboOppositeTeam.SelectedItem as TeamFifaData).FifaCode; bool home = false; var MatchesData = await repo.FetchTeamMatchesDataAsyc(favoritecode); TeamMatchesData MatchData = null; TeamStatistics fav = new TeamStatistics(); TeamStatistics opp = new TeamStatistics(); foreach (var Match in MatchesData) { if (Match.AwayTeam.Code == oppositioncode) { home = true; opp = Match.AwayTeamStatistics; fav = Match.HomeTeamStatistics; MatchData = Match; } else if (Match.HomeTeam.Code == oppositioncode) { home = false; opp = Match.HomeTeamStatistics; fav = Match.AwayTeamStatistics; MatchData = Match; } } int[] sequence = new int[] { 2, 3, 1, 4, 0, 0, 0 }; Dictionary <string, int[]> dicseq = new Dictionary <string, int[]>(); int g = 0; int d = 0; int m = 0; int f = 0; foreach (var player in fav.StartingEleven) { PlayerDisplay pd = new PlayerDisplay(player, MatchData); SoccerCanvas.Children.Add(pd); switch (player.Position) { case "Goalie": Grid.SetRow(pd, sequence[g]); Grid.SetColumn(pd, 0); g++; break; case "Defender": Grid.SetRow(pd, sequence[d]); Grid.SetColumn(pd, 1); d++; break; case "Midfield": Grid.SetRow(pd, sequence[m]); Grid.SetColumn(pd, 2); m++; break; case "Forward": Grid.SetRow(pd, sequence[f]); Grid.SetColumn(pd, 3); f++; break; default: break; } } g = 0; d = 0; m = 0; f = 0; foreach (var player in opp.StartingEleven) { PlayerDisplay pd = new PlayerDisplay(player, MatchData); SoccerCanvas.Children.Add(pd); switch (player.Position) { case "Goalie": Grid.SetRow(pd, sequence[g]); Grid.SetColumn(pd, 7); g++; break; case "Defender": Grid.SetRow(pd, sequence[d]); Grid.SetColumn(pd, 6); d++; break; case "Midfield": Grid.SetRow(pd, sequence[m]); Grid.SetColumn(pd, 5); m++; break; case "Forward": Grid.SetRow(pd, sequence[f]); Grid.SetColumn(pd, 4); f++; break; default: break; } } }