Skip to content

Commit

Permalink
Small updates and fixes.
Browse files Browse the repository at this point in the history
  • Loading branch information
Felix-CodingClimber committed Jun 29, 2024
1 parent af41cdb commit ca6ea64
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 37 deletions.
30 changes: 30 additions & 0 deletions src/DotNetElements.Core/Core/SqlConnectionHelper.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
using Microsoft.Data.SqlClient;

namespace DotNetElements.Core;

public static class SqlConnectionHelper
{
public static string GetConnectionString(string sqlServer, string sqlDatabase, string? user, string? password, bool useWindowsAuthentication)
{
SqlConnectionStringBuilder connectionStringBuilder = new SqlConnectionStringBuilder
{
DataSource = sqlServer,
TrustServerCertificate = true
};

if (useWindowsAuthentication)
{
connectionStringBuilder.IntegratedSecurity = true;
}
else
{
connectionStringBuilder.IntegratedSecurity = false;
connectionStringBuilder.UserID = user;
connectionStringBuilder.Password = password;
}

connectionStringBuilder.InitialCatalog = sqlDatabase;

return connectionStringBuilder.ConnectionString;
}
}
36 changes: 5 additions & 31 deletions src/DotNetElements.Core/Core/SqlContextBase.cs
Original file line number Diff line number Diff line change
@@ -1,29 +1,27 @@
using Microsoft.Data.SqlClient;

namespace DotNetElements.Core;
namespace DotNetElements.Core;

public abstract class SqlContextBase : DbContext
{
private readonly string connectionString;

public SqlContextBase(SqlDatabaseSettings settings, string user, string password)
{
connectionString = GetConnectionString(settings.SqlServerAddress, settings.DatabaseName, user, password, false);
connectionString = SqlConnectionHelper.GetConnectionString(settings.SqlServerAddress, settings.DatabaseName, user, password, false);
}

public SqlContextBase(SqlDatabaseSettings settings)
{
connectionString = GetConnectionString(settings.SqlServerAddress, settings.DatabaseName, null, null, true);
connectionString = SqlConnectionHelper.GetConnectionString(settings.SqlServerAddress, settings.DatabaseName, null, null, true);
}

public SqlContextBase(string sqlServerAddress, string databaseName)
{
connectionString = GetConnectionString(sqlServerAddress, databaseName, null, null, true);
connectionString = SqlConnectionHelper.GetConnectionString(sqlServerAddress, databaseName, null, null, true);
}

public SqlContextBase(string sqlServerAddress, string databaseName, string user, string password)
{
connectionString = GetConnectionString(sqlServerAddress, databaseName, user, password, false);
connectionString = SqlConnectionHelper.GetConnectionString(sqlServerAddress, databaseName, user, password, false);
}

public bool IsDatabaseAvailable()
Expand All @@ -38,28 +36,4 @@ protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)

optionsBuilder.UseSqlServer(connectionString);
}

private static string GetConnectionString(string sqlServer, string sqlDatabase, string? user, string? password, bool useWindowsAuthentication)
{
SqlConnectionStringBuilder connectionStringBuilder = new SqlConnectionStringBuilder
{
DataSource = sqlServer,
TrustServerCertificate = true
};

if (useWindowsAuthentication)
{
connectionStringBuilder.IntegratedSecurity = true;
}
else
{
connectionStringBuilder.IntegratedSecurity = false;
connectionStringBuilder.UserID = user;
connectionStringBuilder.Password = password;
}

connectionStringBuilder.InitialCatalog = sqlDatabase;

return connectionStringBuilder.ConnectionString;
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Reflection;
using DotNetElements.Core;
using Microsoft.AspNetCore.Builder;
using Microsoft.Extensions.DependencyInjection;

namespace DotNetElements.Web.AspNetCore.Extensions;
Expand All @@ -8,20 +9,20 @@ public static class ServiceCollectionExtensions
{
public static IReadOnlyList<IModule>? RegisteredModules { get; private set; }

public static IServiceCollection RegisterModules(this IServiceCollection services, Assembly moduleAssembly)
public static WebApplicationBuilder RegisterModules(this WebApplicationBuilder builder, Assembly moduleAssembly)
{
IEnumerable<IModule> modules = DiscoverModules(moduleAssembly);
List<IModule> registeredModules = [];

foreach (IModule module in modules)
{
module.RegisterModules(services);
module.RegisterModules(builder);
registeredModules.Add(module);
}

RegisteredModules = registeredModules;

return services;
return builder;
}

// todo replace with source generated version
Expand Down
6 changes: 3 additions & 3 deletions src/DotNetElements.Web.AspNetCore/IModule.cs
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
using Microsoft.AspNetCore.Routing;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Routing;

namespace DotNetElements.Web.AspNetCore;

public interface IModule
{
IServiceCollection RegisterModules(IServiceCollection services);
WebApplicationBuilder RegisterModules(WebApplicationBuilder builder);

IEndpointRouteBuilder MapEndpoints(IEndpointRouteBuilder endpoints);
}

0 comments on commit ca6ea64

Please sign in to comment.