36 lines
1.2 KiB
C#
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 });
|
|
}
|
|
}
|
|
}
|