public void Should_log_lobbyId() { var lobbyId = "id"; _lobbyLogger.Log("Created", new Lobby { Id = lobbyId }); _logger.Last.Message.ShouldContain($"Id: {lobbyId}"); }
public void CloseInactive(int timeoutInSeconds = 3600) { var now = DateTime.Now; foreach (var lobby in _lobbys.ToArray()) { var timeout = DateTime.Now.Subtract(lobby.LastModified).TotalSeconds; if (timeout >= timeoutInSeconds) { _logger.Log(lobby, "{action} inactive lobby, last update {lastModified}", "Closing", lobby.LastModified); _lobbys.Remove(_lobbys.SingleOrDefault(p => p.Id == lobby.Id)); } } }
public async Task CreateLobby(string name, User user) { _lobbys.GetByAdminId(user.Id) .ToList() .ForEach(async l => await CloseLobby(l)); var lobby = _lobbys.CreateLobby(name, new Player { ConnectionId = Context.ConnectionId, Id = user.Id, IsPresenter = true, IsConnected = true, IsRegistered = true, Name = user.Name }); _logger.Log("Created", lobby); await Connect(user, lobby.Id); }