using Microsoft.Extensions.Configuration;
namespace Core.Blueprint.Mongo
{
///
/// The class represents the MongoDB context that contains the connection information,
/// including the connection string, database name, and audience.
/// It implements the interface to provide methods for accessing these values.
///
public sealed class MongoContext : IMongoContext
{
///
/// Gets or sets the connection string used to connect to the MongoDB instance.
///
public string ConnectionString { get; set; } = string.Empty;
///
/// Gets or sets the name of the MongoDB database.
///
public string Databasename { get; set; } = string.Empty;
///
/// Gets or sets the audience (resource identifier) used for MongoDB authentication.
///
public string Audience { get; set; } = string.Empty;
private readonly IConfiguration configuration;
///
/// Initializes a new instance of the class using the provided .
/// The configuration is used to retrieve MongoDB connection settings.
///
/// The configuration used to retrieve the MongoDB connection settings.
public MongoContext(IConfiguration configuration)
{
this.configuration = configuration;
}
///
/// Retrieves the MongoDB connection string from the configuration.
///
/// The MongoDB connection string, or an empty string if not found.
public string GetConnectionString()
{
return configuration.GetConnectionString("MongoDb:ConnectionString")?.ToString() ?? string.Empty;
}
///
/// Retrieves the MongoDB database name from the configuration.
///
/// The MongoDB database name, or an empty string if not found.
public string GetDatabasename()
{
return configuration.GetSection("MongoDb:DatabaseName").Value ?? string.Empty;
}
///
/// Retrieves the MongoDB audience (resource identifier) from the configuration.
///
/// The MongoDB audience, or an empty string if not found.
public string GetAudience()
{
return configuration.GetSection("MongoDb:Audience").Value ?? string.Empty;
}
}
}