using adas_core.Application.Repositories.Interfaces; using adas_core.Domain.Models.AppSettings; using adas_core.Domain.Models.MongoModels; using Microsoft.Extensions.Options; using MongoDB.Bson; using MongoDB.Driver; namespace adas_core.Infrastructure.Repositories; public class PatientCarePlanRepository : MongoRepository, IPatientCarePlanRepository { #region Properties private readonly ApiSettings _apiSettings; #endregion #region Update public async Task UpdateManyObjectId(string patientid, ObjectId patientId, ObjectId oldId) { await UpdateManyObjectIdAsync(patientid, patientId, oldId); } #endregion #region Constructor public PatientCarePlanRepository( IOptions apiSettings, IMongoDatabase database ) : base(database) { _apiSettings = apiSettings.Value; } #endregion #region Read public override string GetCollectionName() { return _apiSettings.PatientCarePlan ?? "patients_care_plan"; } public async Task> FindByPatientId(ObjectId patientId) { var result = await Collection.FindAsync(Builders.Filter.Eq(p => p.PatientId, patientId)); return result.ToList(); } public async Task> FindByUserId(ObjectId userId) { var result = await Collection.FindAsync(Builders.Filter.Eq(p => p.UserId, userId)); return result.ToList(); } public async Task> FindAll() { var result = await Collection.Find(Builders.Filter.Empty).ToListAsync(); return result; } #endregion }