Files
monorepo/LCU.API.Internal.OnlineLoanApp/Landmark.OLA.Application/DataAccess/DataClient.cs
T
2026-03-11 11:18:25 -05:00

46 lines
1.6 KiB
C#

using System.Security.Authentication;
using Microsoft.Extensions.Options;
using MongoDB.Driver;
namespace Landmark.OLA.Application.DataAccess
{
// Reference: http://mongodb.github.io/mongo-csharp-driver/2.5
public class DataClient : IDataClient
{
private readonly MongoClientSettings _mongoSettings;
private readonly DataAccessConnection _configuration;
private readonly MongoClient _client;
private readonly IMongoDatabase _database;
public DataClient(IOptions<DataAccessConnection> settings) {
_configuration = settings.Value;
_mongoSettings = GetMongoSettings();
_client = new MongoClient(_mongoSettings);
_database = _client.GetDatabase(_configuration.DatabaseName);
}
public IMongoDatabase GetDatabase()
{
return _database;
}
private MongoClientSettings GetMongoSettings()
{
MongoClientSettings settings = new()
{
Server = new MongoServerAddress(_configuration.Host, _configuration.Port),
UseTls = true,
SslSettings = new SslSettings()
};
settings.SslSettings.EnabledSslProtocols = SslProtocols.Tls12;
MongoIdentity identity = new MongoInternalIdentity(_configuration.DatabaseName, _configuration.UserName);
MongoIdentityEvidence evidence = new PasswordEvidence(_configuration.Password);
settings.Credential = new MongoCredential("SCRAM-SHA-1", identity, evidence);
return settings;
}
}
}