in src/Shared/Infrastructure/Infrastructure.Persistence/CassandraCluster.cs [39:67]
public CassandraCluster(IOptions<CassandraOptions> options)
{
var config = options.Value;
var clusterBuilder = Cluster.Builder()
.AddContactPoints(config.ContactPoints)
.WithDefaultKeyspace(config.Keyspace);
if (config.Credentials != null)
{
clusterBuilder.WithCredentials(config.Credentials.UserName, config.Credentials.Password);
}
if (config.Port.HasValue)
{
clusterBuilder.WithPort(config.Port.Value);
}
if (config.Ssl != null && Enum.TryParse<SslProtocols>(config.Ssl.Protocol, out var sslProtocol))
{
var checkCertificationRevocation =
config.Ssl.CheckCertificateRevocation.GetValueOrDefault();
var sslOptions = new SSLOptions(sslProtocol, checkCertificationRevocation, ValidateServerCertificate);
sslOptions.SetHostNameResolver((ipAddress) => config.ContactPoints.FirstOrDefault());
clusterBuilder.WithSSL(sslOptions);
}
Cluster = clusterBuilder.Build();
CreateTablesIfNeeded();
}