public string FormatGroupStats(int possition, RaceStatsGroups stats, string line) { string formatGroupStats = MinimumLength(line) || stats == null || race == null ? line : String.Format(new MyFormat(), line , possition // {0} , race.CurrentRaceData == null ? "" : race.CurrentRaceData.DirectoryName ?? "" // {1} , "UserName" // {2} , stats.GroupName // {3} , race.CurrentRaceData == null ? "" : race.CurrentRaceData.UploadVirtualPath ?? "" // {4} , stats.Speed // {5} , stats.FilesUplaoded // {6} , stats.BytesUplaoded.FormatSize() // {7} , Constants.CodeIrcColor // {8} , Constants.CodeIrcBold // {9} , Constants.CodeIrcUnderline // {10} , Constants.CodeNewLine); // {11} Log.Debug("FormatGroupStats: " + formatGroupStats); return formatGroupStats; }
public List<RaceStatsGroups> GetGroupStats() { List<RaceStatsGroups> stats = new List<RaceStatsGroups>(); var query = from s in raceStats group s by s.GroupName; foreach (var result in query) { UInt64 totalBytesUplaoded = 0ul; int speed = 0; int totalFileUploaded = 0; foreach (RaceStats raceStat in result) { if (!raceStat.FileUploaded) { continue; } totalBytesUplaoded += raceStat.FileSize; speed += raceStat.FileSpeed; totalFileUploaded++; } if (totalFileUploaded > 0) { RaceStatsGroups raceStatsGroups = new RaceStatsGroups { GroupName = result.Key, BytesUplaoded = totalBytesUplaoded, Speed = speed / totalFileUploaded, FilesUplaoded = totalFileUploaded, }; stats.Add(raceStatsGroups); } } //stats.Sort((stats1, stats2) => Comparer<UInt64>.Default.Compare(stats1.BytesUplaoded, stats2.BytesUplaoded)); stats.Sort(); stats.Reverse(); return stats; }