示例#1
0
 public static string FormatRecordSuffix(MapFullOverviewModel mapOverview, RecordModel record) =>
 FormatRecordSuffix(new MapInfo {
     Id = mapOverview.MapInfo.Id, Name = mapOverview.MapInfo.Name, DateAdded = mapOverview.MapInfo.DateAdded
 },
                    new RecordInfoShort {
     Duration = record.Duration, Id = record.Id
 },
                    new PlayerInfo {
     Id = record.Id, Name = record.Name, Steamid = record.SteamId
 });
    private async Task CacheClassRecordAsync(int classId, DetailedMapOverviewModel map, MapFullOverviewModel fullOverview)
    {
        try
        {
            // Map record
            var duration = fullOverview.GetClassRuns(classId).OrderByDuration().First().Duration;
            await CacheRecordAsync(map.Id, classId, duration, "map", 1).ConfigureAwait(false);

            // Course record
            for (var courseId = 1; courseId <= map.ZoneCounts.Course; courseId++)
            {
                try
                {
                    var runs = (await _tempusDataService.GetTopZonedTimes(map.Name, "course", courseId)
                                .ConfigureAwait(false)).Runs;
                    duration = runs.GetClassRuns(classId).OrderByDuration().First().Duration;
                    await CacheRecordAsync(map.Id, classId, duration, "course", courseId).ConfigureAwait(false);
                }
                catch (Exception e)
                {
                    _log.Error(e, "Unhandled exception while caching course records");
                }
            }

            // Bonus record
            for (int bonusId = 1; bonusId <= map.ZoneCounts.Bonus; bonusId++)
            {
                try
                {
                    var runs = (await _tempusDataService.GetTopZonedTimes(map.Name, "bonus", bonusId)
                                .ConfigureAwait(false)).Runs;
                    duration = runs.GetClassRuns(classId).OrderByDuration().First().Duration;
                    await CacheRecordAsync(map.Id, classId, duration, "bonus", bonusId).ConfigureAwait(false);
                }
                catch (Exception e)
                {
                    _log.Error(e, "Unhandled exception while caching bonus records");
                }
            }
        }
        catch (Exception e)
        {
            _log.Error(e, "Unhandled exception while caching class records");
        }
    }