public void PlayerJoinedGame(Guid sessionId, BrawlFormat format) { _inGameCount.AddOrUpdate(format, f => new List <Guid> { sessionId }, (f, i) => { i.Add(sessionId); return(i); }); _telemetry.TrackMetric($"PlayersInGame.{format}", _inGameCount.GetValueOrDefault(format, new List <Guid>()).Count); }
public async void PlayerLeftGame(Guid sessionId, BrawlFormat format) { await Task.Run(() => { _inGameCount.AddOrUpdate(format, f => new List <Guid>(), (f, i) => { i.Remove(sessionId); return(i); }); var playersInGameInFormat = _inGameCount.GetValueOrDefault(format, new List <Guid>()).Count; _telemetry.TrackMetric($"PlayersInGame.{format}", playersInGameInFormat); }); }