Files
schedtxt_api/Repositories/UsersRepository.cs
T
2023-09-29 19:08:34 -04:00

120 lines
2.9 KiB
C#

using MongoDB.Driver;
using TextSender_API.Models;
namespace TextSender_API.Repositories;
public class UsersRepository : BaseRepository
{
#region Fields
private readonly IMongoCollection<User> _bookCollection;
#endregion
#region Constructors
public UsersRepository(string connectionString)
{
this._connectionString = connectionString;
this._tableName = "users";
var client = this.InitializeClient();
this._bookCollection = client.GetDatabase(this._databaseName).GetCollection<User>(this._tableName);
}
#endregion
#region Metods
public Tuple<bool, User> Exists(User user)
{
var allUsers = this.RetrieveAllUsers();
var result = allUsers.FirstOrDefault(ea => ea.Username!.Equals(user.Username));
if (result != null)
{
return new Tuple<bool, User>(true, result!);
}
else
{
return new Tuple<bool, User>(false, new User());
}
}
public void CreateUser(User user)
{
this._bookCollection.InsertOne(user);
}
public List<User> RetrieveAllUsers()
{
return this._bookCollection.Find(_ => true).ToList();
}
public void Update(User user)
{
var filter = Builders<User>.Filter.Eq(u => u.Id, user.Id);
this._bookCollection.ReplaceOne(filter, user);
}
public void Delete(User user)
{
var filter = Builders<User>.Filter.Eq(u => u.Id, user.Id);
this._bookCollection.DeleteOne(filter);
}
private MongoClient InitializeClient()
{
return new MongoClient(this._connectionString);
}
#endregion
}
public class SaltRepository : BaseRepository
{
#region Fields
private readonly IMongoCollection<Salt> _bookCollection;
#endregion
#region Constructors
public SaltRepository(string connectionString)
{
this._connectionString = connectionString;
this._tableName = "salt";
var client = this.InitializeClient();
this._bookCollection = client.GetDatabase(this._databaseName).GetCollection<Salt>(this._tableName);
}
#endregion
#region Metods
public void Create(Salt salt)
{
this._bookCollection.InsertOne(salt);
}
public List<Salt> RetrieveAll()
{
return this._bookCollection.Find(_ => true).ToList();
}
public Salt Retrieve(string userId)
{
return this._bookCollection.Find(s => s.UserId!.Equals(userId)).FirstOrDefault();
}
public void Update(Salt salt)
{
var filter = Builders<Salt>.Filter.Eq(u => u.Id, salt.Id);
this._bookCollection.ReplaceOne(filter, salt);
}
public void Delete(Salt salt)
{
var filter = Builders<Salt>.Filter.Eq(u => u.Id, salt.Id);
this._bookCollection.DeleteOne(filter);
}
private MongoClient InitializeClient()
{
return new MongoClient(this._connectionString);
}
#endregion
}