using ChatApi.Services.Bot.Structs; using Microsoft.Extensions.Options; using MongoDB.Driver; namespace ChatApi.Services.Classifier { public class ClassifierPersistence { private readonly IMongoCollection _collection; public ClassifierPersistence(IOptions config) { var client = new MongoClient(config.Value.ConnectionString); var database = client.GetDatabase(config.Value.DatabaseName); _collection = database.GetCollection(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.Filter.Eq(x => x.Id, estado.UsuarioId); _collection.ReplaceOne(filtro, estado, new ReplaceOptions { IsUpsert = true }); } } }