void item_MouseDown(object sender, MouseButtonEventArgs e) { ReplayItem item = (ReplayItem)sender; EndOfGameStats stats = (EndOfGameStats)item.Tag; selectedStats = stats; ReplayOverviewGrid.Visibility = Visibility.Visible; var fadeGridInAnimation = new DoubleAnimation(1, TimeSpan.FromSeconds(0.1)); ReplayOverviewGrid.BeginAnimation(Grid.OpacityProperty, fadeGridInAnimation); GameId.Content = stats.Difficulty; GameType.Content = stats.GameMode.ToLower(); double seconds = stats.GameLength % 60; double minutes = stats.GameLength / 60; GameTime.Content = string.Format("{0:0}:{1:00}", minutes, seconds); TeamOnePanel.Children.Clear(); TeamTwoPanel.Children.Clear(); foreach (PlayerParticipantStatsSummary summary in stats.TeamPlayerParticipantStats) { PlayerItem player = new PlayerItem(); player.PlayerNameLabel.Content = summary.SummonerName; Uri UriSource = new Uri("/LegendaryReplays;component/champion/" + summary.SkinName + ".png", UriKind.RelativeOrAbsolute); player.ChampionIcon.ChampionImage.Source = new BitmapImage(UriSource); TeamOnePanel.Children.Add(player); } foreach (PlayerParticipantStatsSummary summary in stats.OtherTeamPlayerParticipantStats) { PlayerItem player = new PlayerItem(); player.PlayerNameLabel.Content = summary.SummonerName; Uri UriSource = new Uri("/LegendaryReplays;component/champion/" + summary.SkinName + ".png", UriKind.RelativeOrAbsolute); player.ChampionIcon.ChampionImage.Source = new BitmapImage(UriSource); TeamTwoPanel.Children.Add(player); } }
void UpdateReplays() { GamePanel.Children.Clear(); var dir = new DirectoryInfo("cabinet"); var directories = dir.EnumerateDirectories() .OrderBy(d => d.CreationTime); string[] Replays = Directory.GetDirectories("cabinet"); foreach (DirectoryInfo di in directories) { string d = di.Name; if (!File.Exists(Path.Combine("cabinet", d, "token")) || !File.Exists(Path.Combine("cabinet", d, "key")) || !File.Exists(Path.Combine("cabinet", d, "endOfGameStats"))) continue; byte[] Base64Stats = Convert.FromBase64String(File.ReadAllText(Path.Combine("cabinet", d, "endOfGameStats"))); AmfReader statsReader = new AmfReader(new MemoryStream(Base64Stats), context); EndOfGameStats stats = (EndOfGameStats)statsReader.ReadAmf3Item(); ReplayItem item = new ReplayItem(); //Use unoccupied variable stats.Difficulty = d; item.Tag = stats; item.GameId.Content = d; item.GameType.Content = stats.GameMode.ToLower(); item.GameDate.Content = di.CreationTime.ToShortTimeString() + " " + di.CreationTime.ToShortDateString(); double seconds = stats.GameLength % 60; double minutes = stats.GameLength / 60; item.GameTime.Content = string.Format("{0:0}:{1:00}", minutes, seconds); item.Margin = new Thickness(0, 5, 0, 0); foreach (PlayerParticipantStatsSummary summary in stats.TeamPlayerParticipantStats) { SmallChampionItem image = new SmallChampionItem(); image.Width = 38; image.Height = 38; Uri UriSource = new Uri("/LegendaryReplays;component/champion/" + summary.SkinName + ".png", UriKind.RelativeOrAbsolute); image.ChampionImage.Source = new BitmapImage(UriSource); item.TeamOnePanel.Children.Add(image); } foreach (PlayerParticipantStatsSummary summary in stats.OtherTeamPlayerParticipantStats) { SmallChampionItem image = new SmallChampionItem(); image.Width = 38; image.Height = 38; Uri UriSource = new Uri("/LegendaryReplays;component/champion/" + summary.SkinName + ".png", UriKind.RelativeOrAbsolute); image.ChampionImage.Source = new BitmapImage(UriSource); item.TeamTwoPanel.Children.Add(image); } item.MouseDown += item_MouseDown; //Insert on top GamePanel.Children.Insert(0, item); } }