ChatCheap/ChatServerSpace/Services/MongoDbChatHistoryService.cs
2025-05-20 21:51:05 -03:00

37 lines
1.3 KiB
C#

using ChatServerSpace.Models;
using MongoDB.Driver;
namespace ChatServerSpace.Services
{
public class MongoDbChatHistoryService : IChatHistoryService
{
private readonly IMongoCollection<ChatMessage> _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<ChatMessage>(collectionName);
}
public async Task SaveMessageAsync(ChatMessage message)
{
await _messages.InsertOneAsync(message);
}
public async Task<List<ChatMessage>> GetSessionHistoryAsync(string sessionId)
{
var filter = Builders<ChatMessage>.Filter.Eq(m => m.SessionId, sessionId);
var sort = Builders<ChatMessage>.Sort.Ascending(m => m.Timestamp);
return await _messages.Find(filter)
.Sort(sort)
.ToListAsync();
}
}
}