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"); } }