public void Save(Match match) { var players = match.Results.Scoreboard.Select(score => score.Name); foreach (var name in players) { BasePlayerStatistics stats; try { stats = _repository.Get(name); } catch { stats = new BasePlayerStatistics(name); } stats = stats.RecalculateWithAdditional(match); _repository.Save(stats); var trimStats = stats.Trim(); cache.AddOrUpdate(name, trimStats, (_name, _stats) => trimStats); } }
public void Save(Match match) { var endpoint = match.Server; string name = _serverService.Get(endpoint).Info.Name; BaseServerStatistics stats; try { stats = _repository.Get(endpoint); } catch { stats = new BaseServerStatistics(endpoint, name); } stats = stats.RecalculateWithAdditional(match); _repository.Save(stats); var trimStat = stats.Trim(); cache.AddOrUpdate(endpoint, trimStat, (_name, _stats) => trimStat); }