using ChatServerSpace.Models; using MongoDB.Driver; namespace ChatServerSpace.Services { public class MongoDbChatHistoryService : IChatHistoryService { private readonly IMongoCollection _messages; public MongoDbChatHistoryService(IConfiguration config) { var connectionString = config["MongoDB:ConnectionString"]; var databaseName = config["MongoDB:DatabaseName"]; var collectionName = config["MongoDB:CollectionName"]; var client = new MongoClient(connectionString); var database = client.GetDatabase(databaseName); _messages = database.GetCollection(collectionName); } public async Task SaveMessageAsync(ChatMessage message) { await _messages.InsertOneAsync(message); } public async Task> GetSessionHistoryAsync(string sessionId) { var filter = Builders.Filter.Eq(m => m.SessionId, sessionId); var sort = Builders.Sort.Ascending(m => m.Timestamp); return await _messages.Find(filter) .Sort(sort) .ToListAsync(); } } }