using System.Collections.Generic; using System.Threading.Tasks; using GameAuthApi.Models; using Microsoft.Extensions.Configuration; using MongoDB.Driver; namespace GameAuthApi.Services; public class ChatService { private readonly IMongoCollection _messages; public ChatService(IConfiguration config) { var client = new MongoClient(config["MongoDB:ConnectionString"]); var db = client.GetDatabase(config["MongoDB:DatabaseName"]); _messages = db.GetCollection("ChatMessages"); } public virtual async Task CreateAsync(ChatMessage msg) => await _messages.InsertOneAsync(msg); public virtual async Task> GetRecentAsync(int count) => await _messages.Find(_ => true) .SortByDescending(m => m.Timestamp) .Limit(count) .ToListAsync(); }