示例#1
0
        public StatsReportViewModel(DetailedStats stats = null)
        {
            this.Stats = stats;

            ExportToExcelCommand = new RelayCommand(() =>
            {
                SaveFileDialog sfd = new SaveFileDialog();
                sfd.Title          = "Export To Excel file";
                var res            = sfd.ShowDialog();
                if (res == DialogResult.OK)
                {
                    using (var writer = System.IO.File.CreateText(sfd.FileName))
                    {
                        writer.WriteLine("ColumnName;Expected;Actual");
                        foreach (var item in Stats.Values)
                        {
                            foreach (var st in item.Value.Members)
                            {
                                writer.WriteLine("{0};{1};{2}", st.ColumnName, st.ExpectedValue, st.ActualValue);
                            }
                        }
                        writer.Flush();
                    }
                }
            });
        }
示例#2
0
        public async Task Bf4Stats(string name = null, Platform platform = Platform.PC, string platformSpecificName = null)
        {
            if (name == null)
            {
                name = Context.User.Username;
            }

            long?personaID = await _db.GetPersonaIDAsync(name);

            if (personaID == null)
            {
                personaID = await _client.GetPersonaID(name, platform, platformSpecificName);

                if (personaID != null)
                {
                    await _db.SavePersonaIDAsync(name, personaID.Value);
                }
                else
                {
                    await ReplyAsync("", embed : new EmbedBuilder()
                    {
                        Title        = $"No player found",
                        Color        = _settings.GetErrorColor(),
                        Description  = "No player was found with that name.",
                        ThumbnailUrl = "https://eaassets-a.akamaihd.net/bl-cdn/cdnprefix/production-283-20170323/public/base/bf4/header-logo-bf4.png"
                    }.Build());

                    return;
                }
            }

            DetailedStats stats = await _client.GetDetailedStatsAsync(personaID.Value, platform);

            await ReplyAsync("", embed : new EmbedBuilder()
            {
                Title        = $"Battlefield 4 stats for {name}",
                Color        = _settings.GetColor(),
                ThumbnailUrl = "https://eaassets-a.akamaihd.net/bl-cdn/cdnprefix/production-283-20170323/public/base/bf4/header-logo-bf4.png"
            }
                             .AddField(f =>
            {
                f.IsInline = true;
                f.Name = "Rank";
                f.Value = $"- **Rank**: {stats.GeneralStats.Rank}\n" +
                          $"- **Score per minute**: {stats.GeneralStats.ScorePerMinute}\n" +
                          $"- **Total score**: {stats.GeneralStats.Score}";
            })
                             .AddField(f =>
            {
                f.IsInline = true;
                f.Name = "Win / loss";
                f.Value = $"- **W/L ratio**: {Math.Round((double)stats.GeneralStats.Wins / stats.GeneralStats.Losses, 2)}\n" +
                          $"- **Wins**: {stats.GeneralStats.Wins}\n" +
                          $"- **Losses**: {stats.GeneralStats.Losses}";
            })
                             .AddField(f =>
            {
                f.IsInline = true;
                f.Name = "K/D";
                f.Value = $"- **K/D ratio**: {stats.GeneralStats.KDRatio}\n" +
                          $"- **Kills**: {stats.GeneralStats.Kills}\n" +
                          $"- **Deaths**: {stats.GeneralStats.Deaths}";
            })
                             .AddField(f =>
            {
                f.IsInline = true;
                f.Name = "Misc";
                f.Value = $"- **Accuracy**: {Math.Round(stats.GeneralStats.Accuracy, 2)}%\n" +
                          $"- **Dogtags Taken**: {stats.GeneralStats.DogtagsTaken}\n" +
                          $"- **Time played**: {Math.Round(stats.GeneralStats.TimePlayed.TotalHours, 2)} hours";
            })
                             .Build());
        }