Skip to content

Commit

Permalink
chore: improve configuration handling readability
Browse files Browse the repository at this point in the history
  • Loading branch information
engineering87 committed Jan 10, 2025
1 parent f931348 commit b9b18fd
Show file tree
Hide file tree
Showing 8 changed files with 93 additions and 96 deletions.
31 changes: 15 additions & 16 deletions src/SharpConnector/Configuration/CouchbaseConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,21 @@
using Microsoft.Extensions.Configuration;
using SharpConnector.Enums;
using SharpConnector.Interfaces;
using System.Linq;
using System;

namespace SharpConnector.Configuration
{
/// <summary>
/// Provides configuration settings for Couchbase.
/// </summary>
public class CouchbaseConfig : IConnectorConfig
{
public string ConnectionString { get; set; }
public string Username { get; set; }
public string Password { get; set; }
public string BucketName { get; set; }

// Not used
#region NOT USED
public int DatabaseNumber { get; private set; }
public string DatabaseName { get; private set; }
public string CollectionName { get; private set; }
Expand All @@ -24,23 +27,19 @@ public class CouchbaseConfig : IConnectorConfig
public string ServiceUrl { get; private set; }
public bool UseHttp { get; private set; }
public string TableName { get; private set; }
#endregion

public CouchbaseConfig(IConfiguration section)
public CouchbaseConfig(IConfiguration configuration)
{
var sectionChildren = section.GetChildren();
var configurationSections = sectionChildren.ToList();
if (configuration == null)
{
throw new ArgumentNullException(nameof(configuration));
}

var sectionChildrenConnectionString = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.connectionstring.ToString());
ConnectionString = sectionChildrenConnectionString?.Value;

var sectionChildrenBucketName = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.bucketname.ToString());
BucketName = sectionChildrenBucketName?.Value.Trim();

var sectionChildrenUsername = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.username.ToString());
Username = sectionChildrenBucketName?.Value.Trim();

var sectionChildrenPassword = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.password.ToString());
Password = sectionChildrenPassword?.Value.Trim();
ConnectionString = configuration[AppConfigParameterEnums.connectionstring.ToString()]?.Trim();
BucketName = configuration[AppConfigParameterEnums.bucketname.ToString()]?.Trim();
Username = configuration[AppConfigParameterEnums.username.ToString()]?.Trim();
Password = configuration[AppConfigParameterEnums.password.ToString()]?.Trim();
}
}
}
41 changes: 18 additions & 23 deletions src/SharpConnector/Configuration/DynamoDbConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,13 @@
using Microsoft.Extensions.Configuration;
using SharpConnector.Enums;
using SharpConnector.Interfaces;
using System.Linq;
using System;

namespace SharpConnector.Configuration
{
/// <summary>
/// Provides configuration settings for DynamoDb.
/// </summary>
public class DynamoDbConfig : IConnectorConfig
{
public string AccessKey { get; }
Expand All @@ -16,38 +19,30 @@ public class DynamoDbConfig : IConnectorConfig
public bool UseHttp { get; }
public string TableName { get; }

// Not used
#region NOT USED
public string ConnectionString { get; private set; }
public int DatabaseNumber { get; private set; }
public string DatabaseName { get; private set; }
public string CollectionName { get; private set; }
public string Username { get; private set; }
public string Password { get; private set; }
public string BucketName { get; private set; }
#endregion

public DynamoDbConfig(IConfiguration section)
public DynamoDbConfig(IConfiguration configuration)
{
var sectionChildren = section.GetChildren();
var configurationSections = sectionChildren.ToList();

var sectionChildrenAccessKey = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.accesskey.ToString());
AccessKey = sectionChildrenAccessKey?.Value;

var sectionChildrenSecretKey = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.secretkey.ToString());
SecretKey = sectionChildrenSecretKey?.Value;

var sectionChildrenRegion = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.region.ToString());
Region = sectionChildrenRegion?.Value;

var sectionChildrenServiceUrl = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.serviceurl.ToString());
ServiceUrl = sectionChildrenServiceUrl?.Value;

var sectionChildrenUseHttp = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.usehttp.ToString());
bool.TryParse(sectionChildrenUseHttp?.Value, out var useHttp);
if (configuration == null)
{
throw new ArgumentNullException(nameof(configuration));
}

AccessKey = configuration[AppConfigParameterEnums.accesskey.ToString()]?.Trim();
SecretKey = configuration[AppConfigParameterEnums.secretkey.ToString()]?.Trim();
Region = configuration[AppConfigParameterEnums.region.ToString()]?.Trim();
ServiceUrl = configuration[AppConfigParameterEnums.serviceurl.ToString()]?.Trim();
bool.TryParse(configuration[AppConfigParameterEnums.usehttp.ToString()], out var useHttp);
UseHttp = useHttp;

var sectionChildrenTableName = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.tablename.ToString());
TableName = sectionChildrenTableName?.Value;
TableName = configuration[AppConfigParameterEnums.tablename.ToString()]?.Trim();
}
}
}
22 changes: 11 additions & 11 deletions src/SharpConnector/Configuration/LiteDbConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
using Microsoft.Extensions.Configuration;
using SharpConnector.Enums;
using SharpConnector.Interfaces;
using System.Linq;
using System;

namespace SharpConnector.Configuration
{
/// <summary>
/// LiteDbConfig configuration class.
/// Provides configuration settings for LiteDb.
/// </summary>
public class LiteDbConfig : IConnectorConfig
{
public string ConnectionString { get; }
public string DatabaseName { get; }

// Not used
#region NOT USED
public string CollectionName { get; private set; }
public int DatabaseNumber { get; private set; }
public string Username { get; private set; }
Expand All @@ -27,17 +27,17 @@ public class LiteDbConfig : IConnectorConfig
public string ServiceUrl { get; private set; }
public bool UseHttp { get; private set; }
public string TableName { get; private set; }
#endregion

public LiteDbConfig(IConfiguration section)
public LiteDbConfig(IConfiguration configuration)
{
var sectionChildren = section.GetChildren();
var configurationSections = sectionChildren.ToList();
if (configuration == null)
{
throw new ArgumentNullException(nameof(configuration));
}

var sectionChildrenConnectionString = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.connectionstring.ToString());
ConnectionString = sectionChildrenConnectionString?.Value;

var sectionChildrenDatabaseName = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.databasename.ToString());
DatabaseName = sectionChildrenDatabaseName?.Value.Trim();
ConnectionString = configuration[AppConfigParameterEnums.connectionstring.ToString()]?.Trim();
DatabaseName = configuration[AppConfigParameterEnums.databasename.ToString()]?.Trim();
}
}
}
19 changes: 12 additions & 7 deletions src/SharpConnector/Configuration/MemcachedConfig.cs
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
using System.Linq;
using System;
using Microsoft.Extensions.Configuration;
using SharpConnector.Enums;
using SharpConnector.Interfaces;

namespace SharpConnector.Configuration
{
/// <summary>
/// Provides configuration settings for Memcached.
/// </summary>
public class MemcachedConfig : IConnectorConfig
{
public string ConnectionString { get; }

// Not used
#region NOT USED
public int DatabaseNumber { get; private set; }
public string DatabaseName { get; private set; }
public string CollectionName { get; private set; }
Expand All @@ -22,14 +25,16 @@ public class MemcachedConfig : IConnectorConfig
public string ServiceUrl { get; private set; }
public bool UseHttp { get; private set; }
public string TableName { get; private set; }
#endregion

public MemcachedConfig(IConfiguration section)
public MemcachedConfig(IConfiguration configuration)
{
var sectionChildren = section.GetChildren();
var configurationSections = sectionChildren.ToList();
if (configuration == null)
{
throw new ArgumentNullException(nameof(configuration));
}

var sectionChildrenConnectionString = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.connectionstring.ToString());
ConnectionString = sectionChildrenConnectionString?.Value;
ConnectionString = configuration[AppConfigParameterEnums.connectionstring.ToString()]?.Trim();
}
}
}
28 changes: 13 additions & 15 deletions src/SharpConnector/Configuration/MongoDbConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,20 @@
using Microsoft.Extensions.Configuration;
using SharpConnector.Enums;
using SharpConnector.Interfaces;
using System.Linq;
using System;

namespace SharpConnector.Configuration
{
/// <summary>
/// MongoDb configuration class.
/// Provides configuration settings for MongoDb.
/// </summary>
public class MongoDbConfig : IConnectorConfig
{
public string ConnectionString { get; }
public string DatabaseName { get; }
public string CollectionName { get; }

// Not used
#region NOT USED
public int DatabaseNumber { get; private set; }
public string Username { get; private set; }
public string Password { get; private set; }
Expand All @@ -27,20 +27,18 @@ public class MongoDbConfig : IConnectorConfig
public string ServiceUrl { get; private set; }
public bool UseHttp { get; private set; }
public string TableName { get; private set; }
#endregion

public MongoDbConfig(IConfiguration section)
public MongoDbConfig(IConfiguration configuration)
{
var sectionChildren = section.GetChildren();
var configurationSections = sectionChildren.ToList();
if (configuration == null)
{
throw new ArgumentNullException(nameof(configuration));
}

var sectionChildrenConnectionString = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.connectionstring.ToString());
ConnectionString = sectionChildrenConnectionString?.Value;

var sectionChildrenDatabaseName = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.databasename.ToString());
DatabaseName = sectionChildrenDatabaseName?.Value.Trim();

var sectionChildrenCollectionName = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.collectionname.ToString());
CollectionName = sectionChildrenCollectionName?.Value.Trim();
ConnectionString = configuration[AppConfigParameterEnums.connectionstring.ToString()]?.Trim();
DatabaseName = configuration[AppConfigParameterEnums.databasename.ToString()]?.Trim();
CollectionName = configuration[AppConfigParameterEnums.collectionname.ToString()]?.Trim();
}
}
}
}
24 changes: 12 additions & 12 deletions src/SharpConnector/Configuration/RavenDbConfig.cs
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
// (c) 2021 Francesco Del Re <[email protected]>
// This code is licensed under MIT license (see LICENSE.txt for details)
using Microsoft.Extensions.Configuration;
using SharpConnector.Interfaces;
using System.Linq;
using SharpConnector.Enums;
using SharpConnector.Interfaces;
using System;

namespace SharpConnector.Configuration
{
/// <summary>
/// RavenDbConfig configuration class.
/// Provides configuration settings for RavenDB.
/// </summary>
public class RavenDbConfig : IConnectorConfig
{
public string ConnectionString { get; }
public string DatabaseName { get; }

// Not used
#region NOT USED
public string CollectionName { get; private set; }
public int DatabaseNumber { get; private set; }
public string Username { get; private set; }
Expand All @@ -27,17 +27,17 @@ public class RavenDbConfig : IConnectorConfig
public string ServiceUrl { get; private set; }
public bool UseHttp { get; private set; }
public string TableName { get; private set; }
#endregion

public RavenDbConfig(IConfiguration section)
public RavenDbConfig(IConfiguration configuration)
{
var sectionChildren = section.GetChildren();
var configurationSections = sectionChildren.ToList();

var sectionChildrenConnectionString = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.connectionstring.ToString());
ConnectionString = sectionChildrenConnectionString?.Value;
if (configuration == null)
{
throw new ArgumentNullException(nameof(configuration));
}

var sectionChildrenDatabaseName = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.databasename.ToString());
DatabaseName = sectionChildrenDatabaseName?.Value.Trim();
ConnectionString = configuration[AppConfigParameterEnums.connectionstring.ToString()]?.Trim();
DatabaseName = configuration[AppConfigParameterEnums.databasename.ToString()]?.Trim();
}
}
}
22 changes: 11 additions & 11 deletions src/SharpConnector/Configuration/RedisConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,19 @@
using Microsoft.Extensions.Configuration;
using SharpConnector.Enums;
using SharpConnector.Interfaces;
using System.Linq;
using System;

namespace SharpConnector.Configuration
{
/// <summary>
/// Redis configuration class.
/// Provides configuration settings for Redis.
/// </summary>
public class RedisConfig : IConnectorConfig
{
public string ConnectionString { get; }
public int DatabaseNumber { get; } // 0 default

// Not used
#region NOT USED
public string DatabaseName { get; private set; }
public string CollectionName { get; private set; }
public string Username { get; private set; }
Expand All @@ -27,17 +27,17 @@ public class RedisConfig : IConnectorConfig
public string ServiceUrl { get; private set; }
public bool UseHttp { get; private set; }
public string TableName { get; private set; }
#endregion

public RedisConfig(IConfiguration section)
public RedisConfig(IConfiguration configuration)
{
var sectionChildren = section.GetChildren();
var configurationSections = sectionChildren.ToList();
if (configuration == null)
{
throw new ArgumentNullException(nameof(configuration));
}

var sectionChildrenConnectionString = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.connectionstring.ToString());
ConnectionString = sectionChildrenConnectionString?.Value;

var sectionChildrenDbNumber = configurationSections.FirstOrDefault(s => s.Key.ToLower() == AppConfigParameterEnums.databasenumber.ToString());
int.TryParse(sectionChildrenDbNumber?.Value, out var dbNumber);
ConnectionString = configuration[AppConfigParameterEnums.connectionstring.ToString()]?.Trim();
int.TryParse(configuration[AppConfigParameterEnums.databasenumber.ToString()], out var dbNumber);
DatabaseNumber = dbNumber;
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/SharpConnector/SharpConnector.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
</PropertyGroup>

<ItemGroup>
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.405.1" />
<PackageReference Include="AWSSDK.DynamoDBv2" Version="3.7.405.2" />
<PackageReference Include="CouchbaseNetClient" Version="3.6.4" />
<PackageReference Include="EnyimMemcachedCore" Version="3.3.2" />
<PackageReference Include="LiteDB" Version="5.0.21" />
Expand Down

0 comments on commit b9b18fd

Please sign in to comment.