Restructure project

This commit is contained in:
Aaron Po
2026-01-15 21:48:20 -05:00
parent c5aaf8cd05
commit 89da531c48
47 changed files with 57 additions and 157 deletions

View File

@@ -3,6 +3,7 @@
<TargetFramework>net10.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<RootNamespace>WebAPI</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@@ -11,6 +12,11 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="../BusinessLayer/BusinessLayer.csproj" /> <Folder Include="Infrastructure\" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\Repository\Repository.Core\Repository.Core.csproj" />
<ProjectReference Include="..\..\Service\Service.Core\Service.Core.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,7 +1,6 @@
using BusinessLayer.Services; using BusinessLayer.Services;
using DataAccessLayer.Repositories; using DataAccessLayer.Repositories;
using DataAccessLayer.Sql; using DataAccessLayer.Sql;
using WebAPI.Infrastructure;
var builder = WebApplication.CreateBuilder(args); var builder = WebApplication.CreateBuilder(args);
@@ -16,12 +15,9 @@ builder.Services.AddScoped<IUserAccountRepository, UserAccountRepository>();
builder.Services.AddScoped<IUserService, UserService>(); builder.Services.AddScoped<IUserService, UserService>();
var app = builder.Build(); var app = builder.Build();
if (app.Environment.IsDevelopment())
{
app.UseSwagger(); app.UseSwagger();
app.UseSwaggerUI(); app.UseSwaggerUI();
app.MapOpenApi(); app.MapOpenApi();
}
app.UseHttpsRedirection(); app.UseHttpsRedirection();
app.MapControllers(); app.MapControllers();

View File

@@ -4,6 +4,7 @@
<TargetFramework>net10.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<RootNamespace>DataLayer</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>

View File

@@ -4,6 +4,7 @@
<TargetFramework>net10.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<RootNamespace>DBSeed</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@@ -16,6 +17,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\DataAccessLayer\DataAccessLayer.csproj" /> <ProjectReference Include="..\..\Repository\Repository.Core\Repository.Core.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -3,6 +3,7 @@
<TargetFramework>net10.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<RootNamespace>DataAccessLayer</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Microsoft.Data.SqlClient" Version="6.1.3" /> <PackageReference Include="Microsoft.Data.SqlClient" Version="6.1.3" />
@@ -11,5 +12,6 @@
Version="160.1000.6" Version="160.1000.6"
/> />
<PackageReference Include="System.Data.SqlClient" Version="4.9.0" /> <PackageReference Include="System.Data.SqlClient" Version="4.9.0" />
<PackageReference Include="Microsoft.Extensions.Configuration.Abstractions" Version="8.0.0" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -0,0 +1,20 @@
using Microsoft.Data.SqlClient;
using Microsoft.Extensions.Configuration;
namespace DataAccessLayer.Sql
{
public class DefaultSqlConnectionFactory(IConfiguration configuration) : ISqlConnectionFactory
{
private readonly string _connectionString = Environment.GetEnvironmentVariable("DB_CONNECTION_STRING")
?? configuration.GetConnectionString("Default")
?? throw new InvalidOperationException(
"Database connection string not configured. Set DB_CONNECTION_STRING env var or ConnectionStrings:Default."
);
public SqlConnection CreateConnection()
{
return new SqlConnection(_connectionString);
}
}
}

View File

@@ -4,6 +4,7 @@
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<IsPackable>false</IsPackable> <IsPackable>false</IsPackable>
<RootNamespace>DALTests</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
@@ -18,6 +19,6 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\DataAccessLayer\DataAccessLayer.csproj" /> <ProjectReference Include="..\Repository.Core\Repository.Core.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -3,9 +3,10 @@
<TargetFramework>net10.0</TargetFramework> <TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<RootNamespace>BusinessLayer</RootNamespace>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="../DataAccessLayer/DataAccessLayer.csproj" /> <ProjectReference Include="..\..\Repository\Repository.Core\Repository.Core.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,25 +0,0 @@
using DataAccessLayer.Sql;
using Microsoft.Data.SqlClient;
namespace WebAPI.Infrastructure
{
public class DefaultSqlConnectionFactory : ISqlConnectionFactory
{
private readonly string _connectionString;
public DefaultSqlConnectionFactory(IConfiguration configuration)
{
_connectionString =
Environment.GetEnvironmentVariable("DB_CONNECTION_STRING")
?? configuration.GetConnectionString("Default")
?? throw new InvalidOperationException(
"Database connection string not configured. Set DB_CONNECTION_STRING env var or ConnectionStrings:Default."
);
}
public SqlConnection CreateConnection()
{
return new SqlConnection(_connectionString);
}
}
}

View File

@@ -1,119 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.14.36603.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataLayer", "DataLayer\DataLayer.csproj", "{F8223224-F3B7-4D9D-A701-9F0ADDA20792}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataAccessLayer", "DataAccessLayer\DataAccessLayer.csproj", "{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebAPI", "WebAPI\WebAPI.csproj", "{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BusinessLayer", "BusinessLayer\BusinessLayer.csproj", "{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DALTests", "DALTests\DALTests.csproj", "{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DBSeed", "DBSeed\DBSeed.csproj", "{82C1A7F9-695C-4243-83AB-8B8A54810763}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Release|Any CPU = Release|Any CPU
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Debug|Any CPU.Build.0 = Debug|Any CPU
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Debug|x64.ActiveCfg = Debug|Any CPU
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Debug|x64.Build.0 = Debug|Any CPU
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Debug|x86.ActiveCfg = Debug|Any CPU
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Debug|x86.Build.0 = Debug|Any CPU
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Release|Any CPU.ActiveCfg = Release|Any CPU
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Release|Any CPU.Build.0 = Release|Any CPU
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Release|x64.ActiveCfg = Release|Any CPU
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Release|x64.Build.0 = Release|Any CPU
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Release|x86.ActiveCfg = Release|Any CPU
{F8223224-F3B7-4D9D-A701-9F0ADDA20792}.Release|x86.Build.0 = Release|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Debug|x64.ActiveCfg = Debug|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Debug|x64.Build.0 = Debug|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Debug|x86.ActiveCfg = Debug|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Debug|x86.Build.0 = Debug|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Release|Any CPU.Build.0 = Release|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Release|x64.ActiveCfg = Release|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Release|x64.Build.0 = Release|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Release|x86.ActiveCfg = Release|Any CPU
{5B2A93D1-007B-42D1-8F76-E1BF25F9B3B4}.Release|x86.Build.0 = Release|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Debug|x64.ActiveCfg = Debug|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Debug|x64.Build.0 = Debug|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Debug|x86.ActiveCfg = Debug|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Debug|x86.Build.0 = Debug|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Release|Any CPU.Build.0 = Release|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Release|x64.ActiveCfg = Release|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Release|x64.Build.0 = Release|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Release|x86.ActiveCfg = Release|Any CPU
{D6B25565-723E-4F79-AA83-A48A3C3DD6C2}.Release|x86.Build.0 = Release|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Debug|Any CPU.Build.0 = Debug|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Debug|x64.ActiveCfg = Debug|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Debug|x64.Build.0 = Debug|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Debug|x86.ActiveCfg = Debug|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Debug|x86.Build.0 = Debug|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Release|Any CPU.ActiveCfg = Release|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Release|Any CPU.Build.0 = Release|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Release|x64.ActiveCfg = Release|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Release|x64.Build.0 = Release|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Release|x86.ActiveCfg = Release|Any CPU
{EC30D3C4-34BB-4824-A0C5-6802BAAA6C48}.Release|x86.Build.0 = Release|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Debug|x64.ActiveCfg = Debug|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Debug|x64.Build.0 = Debug|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Debug|x86.ActiveCfg = Debug|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Debug|x86.Build.0 = Debug|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Release|Any CPU.Build.0 = Release|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Release|x64.ActiveCfg = Release|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Release|x64.Build.0 = Release|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Release|x86.ActiveCfg = Release|Any CPU
{99A04D79-A1A9-4BF5-9B70-58FC2B5D2E8A}.Release|x86.Build.0 = Release|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Debug|x64.ActiveCfg = Debug|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Debug|x64.Build.0 = Debug|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Debug|x86.ActiveCfg = Debug|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Debug|x86.Build.0 = Debug|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Release|Any CPU.Build.0 = Release|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Release|x64.ActiveCfg = Release|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Release|x64.Build.0 = Release|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Release|x86.ActiveCfg = Release|Any CPU
{5B37FCDB-1BD0-439A-A840-61322353EAAE}.Release|x86.Build.0 = Release|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Debug|Any CPU.Build.0 = Debug|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Debug|x64.ActiveCfg = Debug|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Debug|x64.Build.0 = Debug|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Debug|x86.ActiveCfg = Debug|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Debug|x86.Build.0 = Debug|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Release|Any CPU.ActiveCfg = Release|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Release|Any CPU.Build.0 = Release|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Release|x64.ActiveCfg = Release|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Release|x64.Build.0 = Release|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Release|x86.ActiveCfg = Release|Any CPU
{82C1A7F9-695C-4243-83AB-8B8A54810763}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {9AF13035-54A8-46EA-8BED-866F683D9AED}
EndGlobalSection
EndGlobal

16
biergarten.slnx Normal file
View File

@@ -0,0 +1,16 @@
<Solution>
<Folder Name="/API/" >
<Project Path="API/API.Core/API.Core.csproj"/>
</Folder>
<Folder Name="/Database/">
<Project Path="Database/Database.Core/Database.Core.csproj" />
<Project Path="Database/Database.Seed/Database.Seed.csproj" />
</Folder>
<Folder Name="/Repository/" >
<Project Path="Repository/Repository.Core/Repository.Core.csproj"/>
<Project Path="Repository/Repository.Tests/Repository.Tests.csproj"/>
</Folder>
<Folder Name="/Service/">
<Project Path="Service/Service.Core/Service.Core.csproj"/>
</Folder>
</Solution>