using ChatApi.Services.Classifier; using MongoDB.Driver; namespace ChatApi.Services.Bot.Structs { public class ChatPersistence { private readonly IMongoCollection _collection; private string _botName; private ChatPersistence(DomvsDatabaseSettings config) { var client = new MongoClient(config.ConnectionString); var database = client.GetDatabase(config.DatabaseName); _collection = database.GetCollection(config.ChatBotRHCollectionName); } public static ChatPersistence Create(DomvsDatabaseSettings config) { return new ChatPersistence(config); } public ChatPersistence SetBotName(string botName) { _botName = botName; return this; } public ChatState GetState(string usuarioId) { return _collection.Find(x => x.UsuarioId == usuarioId).FirstOrDefault(); } public void DeleteState(string usuarioId) { _collection.DeleteOne(x => x.UsuarioId == usuarioId); } public void SaveState(ChatState estado) { var filtro = Builders.Filter.Eq(x => x.UsuarioId, estado.UsuarioId); _collection.ReplaceOne(filtro, estado, new ReplaceOptions { IsUpsert = true }); } } }