/// <summary> /// Adds a room and appends the specified <paramref name="message"/>, or just appends the message if the room exists. /// </summary> /// <param name="roomName"></param> /// <param name="message"></param> public void AddOrUpdateMessage(string roomName, RoomMessage message) { Rooms.AddOrUpdate(roomName, new Room() { Messages = new List <RoomMessage>() { message } }, (_, room) => { if (room.Messages.Count >= MessageLimit) { room.Messages = room.Messages.TakeLast(MessageLimit - 1).ToList(); } room.Messages.Add(message); return(room); }); }