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 ServiceConfigRepository : MongoRepository, IServiceConfigRepository { private readonly ApiSettings _apiSettings; public ServiceConfigRepository(IOptions apiSettings, IMongoDatabase database) : base(database) { if (apiSettings == null) throw new ArgumentNullException(nameof(apiSettings)); _apiSettings = apiSettings.Value; } //For testing public override string GetCollectionName() { return _apiSettings.ServiceConfig ?? "service_config"; } public async Task FindById(string id) { var result = await Collection.FindAsync(Builders.Filter.Eq(x => x.StrId, id)); return await result.FirstOrDefaultAsync(); } public async Task FindById(ObjectId oid) { var result = await Collection.FindAsync(Builders.Filter.Eq(x => x.Id, oid)); return await result.FirstOrDefaultAsync(); } }