using MongoDB.Driver; namespace Core.Blueprint.Mongo { /// /// Provides the MongoDB provider and database connection using the specified configuration settings. /// This class manages the connection to MongoDB and ensures that the correct credentials are used for authentication. /// public class MongoProvider { private readonly IMongoDatabase _database; /// /// Initializes a new instance of the class. /// This constructor sets up the MongoDB provider using the connection string, audience, and other settings provided. /// It also configures authentication using OpenID Connect (OIDC) credentials. /// /// The MongoDB settings required for connecting to the database. public MongoProvider(IMongoDatabase database) { _database = database ?? throw new ArgumentNullException(nameof(database)); } /// /// Gets the initialized MongoDB database. If the database is not initialized, an exception is thrown. /// /// Thrown when the database connection is not initialized. protected IMongoDatabase Database { get { if (_database == null) { throw new InvalidOperationException("MongoDB connection is not initialized."); } return _database; } } } }