ChatApi/Services/Classifier/ClassifierPersistence.cs
2024-11-28 22:49:03 -03:00

36 lines
1.2 KiB
C#

using ChatApi.Services.Bot.Structs;
using Microsoft.Extensions.Options;
using MongoDB.Driver;
namespace ChatApi.Services.Classifier
{
public class ClassifierPersistence
{
private readonly IMongoCollection<ClassifierSate> _collection;
public ClassifierPersistence(IOptions<DomvsDatabaseSettings> config)
{
var client = new MongoClient(config.Value.ConnectionString);
var database = client.GetDatabase(config.Value.DatabaseName);
_collection = database.GetCollection<ClassifierSate>(config.Value.ClassifierCollectionName);
}
public ClassifierSate GetState(string usuarioId)
{
return _collection.Find(x => x.Id == usuarioId).FirstOrDefault();
}
public void DeleteState(string usuarioId)
{
_collection.DeleteOne(x => x.UsuarioId == usuarioId);
}
public void SaveState(ClassifierSate estado)
{
estado.Id = estado.UsuarioId;
var filtro = Builders<ClassifierSate>.Filter.Eq(x => x.Id, estado.UsuarioId);
_collection.ReplaceOne(filtro, estado, new ReplaceOptions { IsUpsert = true });
}
}
}