Added functionality to create contact queue

This commit is contained in:
kdeng00
2023-10-04 06:59:12 -04:00
parent 2a9abbb760
commit 4accff050c
4 changed files with 145 additions and 7 deletions
+68
View File
@@ -0,0 +1,68 @@
using MongoDB.Driver;
using TextSender_API.Models;
namespace TextSender_API.Repositories;
public class ContactCreationQueueepository : BaseRepository
{
#region Fields
private readonly IMongoCollection<ContactCreationQueue> _bookCollection;
#endregion
#region Constructors
public ContactCreationQueueepository(string connectionString)
{
this._connectionString = connectionString;
this._tableName = "contactCreationQueue";
var client = this.InitializeClient();
this._bookCollection = client.GetDatabase(this._databaseName).GetCollection<ContactCreationQueue>(this._tableName);
}
#endregion
#region Metods
public Tuple<bool, ContactCreationQueue> Exists(string id)
{
var allQueue = this.RetrieveAll();
var result = allQueue.FirstOrDefault(q => q.Id!.Equals(id));
if (result != null)
{
return new Tuple<bool, ContactCreationQueue>(true, result!);
}
else
{
return new Tuple<bool, ContactCreationQueue>(false, new ContactCreationQueue());
}
}
public void Create(ContactCreationQueue queue)
{
this._bookCollection.InsertOne(queue);
}
public List<ContactCreationQueue> RetrieveAll()
{
return this._bookCollection.Find(_ => true).ToList();
}
public void Update(ContactCreationQueue queue)
{
var filter = Builders<ContactCreationQueue>.Filter.Eq(q => q.Id, queue.Id);
this._bookCollection.ReplaceOne(filter, queue);
}
public void Delete(ContactCreationQueue queue)
{
var filter = Builders<ContactCreationQueue>.Filter.Eq(q => q.Id, queue.Id);
this._bookCollection.DeleteOne(filter);
}
private MongoClient InitializeClient()
{
return new MongoClient(this._connectionString);
}
#endregion
}