mirror of
https://github.com/collinbarrett/FilterLists.git
synced 2026-03-11 09:04:27 +00:00
feat(dir): ✨ scaffold Domain proj and ICommandContext
This commit is contained in:
parent
f211ae4d30
commit
0c48ff3258
13 changed files with 93 additions and 2 deletions
|
|
@ -11,6 +11,7 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
|
|||
# restore API
|
||||
WORKDIR /app
|
||||
COPY SharedKernel/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj SharedKernel/FilterLists.SharedKernel.Logging/
|
||||
COPY Directory/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj Directory/FilterLists.Directory.Domain/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj Directory/FilterLists.Directory.Infrastructure/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj Directory/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY Directory/FilterLists.Directory.Api.Contracts/FilterLists.Directory.Api.Contracts.csproj Directory/FilterLists.Directory.Api.Contracts/
|
||||
|
|
@ -23,6 +24,7 @@ RUN dotnet restore
|
|||
WORKDIR /app
|
||||
COPY /.editorconfig .
|
||||
COPY SharedKernel/FilterLists.SharedKernel.Logging/. SharedKernel/FilterLists.SharedKernel.Logging/
|
||||
COPY Directory/FilterLists.Directory.Domain/. Directory/FilterLists.Directory.Domain/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure/. Directory/FilterLists.Directory.Infrastructure/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure.Migrations/. Directory/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY Directory/FilterLists.Directory.Api.Contracts/. Directory/FilterLists.Directory.Api.Contracts/
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ ENV DOTNET_CLI_TELEMETRY_OPTOUT=true
|
|||
# restore API
|
||||
WORKDIR /app
|
||||
COPY SharedKernel/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj SharedKernel/FilterLists.SharedKernel.Logging/
|
||||
COPY Directory/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj Directory/FilterLists.Directory.Domain/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj Directory/FilterLists.Directory.Infrastructure/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj Directory/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY Directory/FilterLists.Directory.Api.Contracts/FilterLists.Directory.Api.Contracts.csproj Directory/FilterLists.Directory.Api.Contracts/
|
||||
|
|
@ -22,6 +23,7 @@ RUN dotnet restore
|
|||
WORKDIR /app
|
||||
COPY /.editorconfig .
|
||||
COPY SharedKernel/FilterLists.SharedKernel.Logging/. SharedKernel/FilterLists.SharedKernel.Logging/
|
||||
COPY Directory/FilterLists.Directory.Domain/. Directory/FilterLists.Directory.Domain/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure/. Directory/FilterLists.Directory.Infrastructure/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure.Migrations/. Directory/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY Directory/FilterLists.Directory.Api.Contracts/. Directory/FilterLists.Directory.Api.Contracts/
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ ENTRYPOINT ["dotnet", "test", "--logger:trx"]
|
|||
# restore
|
||||
WORKDIR /app
|
||||
COPY SharedKernel/FilterLists.SharedKernel.Logging/FilterLists.SharedKernel.Logging.csproj SharedKernel/FilterLists.SharedKernel.Logging/
|
||||
COPY Directory/FilterLists.Directory.Domain/FilterLists.Directory.Domain.csproj Directory/FilterLists.Directory.Domain/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure/FilterLists.Directory.Infrastructure.csproj Directory/FilterLists.Directory.Infrastructure/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure.Migrations/FilterLists.Directory.Infrastructure.Migrations.csproj Directory/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY Directory/FilterLists.Directory.Api.Contracts/FilterLists.Directory.Api.Contracts.csproj Directory/FilterLists.Directory.Api.Contracts/
|
||||
|
|
@ -18,6 +19,7 @@ RUN dotnet restore
|
|||
# build
|
||||
WORKDIR /app
|
||||
COPY SharedKernel/FilterLists.SharedKernel.Logging/. SharedKernel/FilterLists.SharedKernel.Logging/
|
||||
COPY Directory/FilterLists.Directory.Domain/. Directory/FilterLists.Directory.Domain/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure/. Directory/FilterLists.Directory.Infrastructure/
|
||||
COPY Directory/FilterLists.Directory.Infrastructure.Migrations/. Directory/FilterLists.Directory.Infrastructure.Migrations/
|
||||
COPY Directory/FilterLists.Directory.Api.Contracts/. Directory/FilterLists.Directory.Api.Contracts/
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
namespace FilterLists.Directory.Domain.Aggregates;
|
||||
|
||||
public class FilterList
|
||||
{
|
||||
public int Id { get; private set; }
|
||||
public string Name { get; private set; } = null!;
|
||||
public string? Description { get; private set; }
|
||||
public int? LicenseId { get; private set; }
|
||||
public Uri? HomeUrl { get; private set; }
|
||||
public Uri? OnionUrl { get; private set; }
|
||||
public Uri? PolicyUrl { get; private set; }
|
||||
public Uri? SubmissionUrl { get; private set; }
|
||||
public Uri? IssuesUrl { get; private set; }
|
||||
public Uri? ForumUrl { get; private set; }
|
||||
public Uri? ChatUrl { get; private set; }
|
||||
public string? EmailAddress { get; private set; }
|
||||
public Uri? DonateUrl { get; private set; }
|
||||
}
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<Authors>Collin M. Barrett</Authors>
|
||||
<Company>FilterLists</Company>
|
||||
<Product>FilterLists Directory</Product>
|
||||
<Description>The independent, comprehensive directory of filter and host lists for advertisements, trackers, malware, and annoyances.</Description>
|
||||
<Copyright>Copyright (c) 2021 Collin M. Barrett</Copyright>
|
||||
<RepositoryUrl>https://github.com/collinbarrett/FilterLists</RepositoryUrl>
|
||||
<PackageProjectUrl>https://filterlists.com</PackageProjectUrl>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -1,4 +1,5 @@
|
|||
using FilterLists.Directory.Infrastructure.Persistence.Queries.Context;
|
||||
using FilterLists.Directory.Infrastructure.Persistence.Commands.Context;
|
||||
using FilterLists.Directory.Infrastructure.Persistence.Queries.Context;
|
||||
using FilterLists.SharedKernel.Logging;
|
||||
using Microsoft.AspNetCore.Builder;
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
|
|
@ -34,6 +35,7 @@ public static void AddInfrastructure(this IServiceCollection services, IConfigur
|
|||
#endif
|
||||
});
|
||||
services.AddScoped<IQueryContext, QueryContext>();
|
||||
services.AddScoped<ICommandContext, CommandContext>();
|
||||
}
|
||||
|
||||
public static void UseInfrastructure(this IApplicationBuilder app)
|
||||
|
|
|
|||
|
|
@ -24,6 +24,7 @@
|
|||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\SharedKernel\FilterLists.SharedKernel.Logging\FilterLists.SharedKernel.Logging.csproj" />
|
||||
<ProjectReference Include="..\FilterLists.Directory.Domain\FilterLists.Directory.Domain.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
namespace FilterLists.Directory.Infrastructure.Persistence.Commands.Context;
|
||||
|
||||
internal class CommandContext : ICommandContext, IAsyncDisposable
|
||||
{
|
||||
private readonly CommandDbContext _dbContext;
|
||||
|
||||
public CommandContext(CommandDbContext dbContext)
|
||||
{
|
||||
_dbContext = dbContext;
|
||||
}
|
||||
|
||||
public async ValueTask DisposeAsync()
|
||||
{
|
||||
await _dbContext.DisposeAsync();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,15 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace FilterLists.Directory.Infrastructure.Persistence.Commands.Context;
|
||||
|
||||
public class CommandDbContext : DbContext
|
||||
{
|
||||
public CommandDbContext(DbContextOptions<CommandDbContext> options) : base(options)
|
||||
{
|
||||
}
|
||||
|
||||
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
||||
{
|
||||
modelBuilder.ApplyConfigurationsFromAssembly(GetType().Assembly);
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
namespace FilterLists.Directory.Infrastructure.Persistence.Commands.Context;
|
||||
|
||||
public interface ICommandContext
|
||||
{
|
||||
}
|
||||
|
|
@ -7,6 +7,7 @@ trigger:
|
|||
[
|
||||
services/Directory/azure-pipelines.api.yaml,
|
||||
services/SharedKernel/FilterLists.SharedKernel.Logging/*,
|
||||
services/Directory/FilterLists.Directory.Domain/*,
|
||||
services/Directory/FilterLists.Directory.Infrastructure/*,
|
||||
services/Directory/FilterLists.Directory.Infrastructure.Migrations/*,
|
||||
services/Directory/FilterLists.Directory.Api.Contracts/*,
|
||||
|
|
@ -31,6 +32,7 @@ pr:
|
|||
[
|
||||
services/Directory/azure-pipelines.api.yaml,
|
||||
services/SharedKernel/FilterLists.SharedKernel.Logging/*,
|
||||
services/Directory/FilterLists.Directory.Domain/*,
|
||||
services/Directory/FilterLists.Directory.Infrastructure/*,
|
||||
services/Directory/FilterLists.Directory.Infrastructure.Migrations/*,
|
||||
services/Directory/FilterLists.Directory.Api.Contracts/*,
|
||||
|
|
|
|||
|
|
@ -122,7 +122,7 @@ steps:
|
|||
condition: and(eq(variables['abortJustMigrated.aborted'], 'false'), succeeded())
|
||||
inputs:
|
||||
workingDirectory: services/Directory
|
||||
script: dotnet ef migrations add $(System.PullRequest.PullRequestNumber) -p FilterLists.Directory.Infrastructure.Migrations -s FilterLists.Directory.Api
|
||||
script: dotnet ef migrations add $(System.PullRequest.PullRequestNumber) -p FilterLists.Directory.Infrastructure.Migrations -s FilterLists.Directory.Api --context QueryDbContext
|
||||
|
||||
- task: Bash@3
|
||||
displayName: commit or abandon no-op migration
|
||||
|
|
|
|||
|
|
@ -69,6 +69,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FilterLists.Directory.Api.C
|
|||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FilterLists.Archival.Domain", "Archival\FilterLists.Archival.Domain\FilterLists.Archival.Domain.csproj", "{6402E81A-75C2-422F-933B-AAC1ED8C4128}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FilterLists.Directory.Domain", "Directory\FilterLists.Directory.Domain\FilterLists.Directory.Domain.csproj", "{EE844873-71D7-4B9D-93BF-DF65B9E4770D}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
|
|
@ -123,6 +125,10 @@ Global
|
|||
{6402E81A-75C2-422F-933B-AAC1ED8C4128}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{6402E81A-75C2-422F-933B-AAC1ED8C4128}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{6402E81A-75C2-422F-933B-AAC1ED8C4128}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EE844873-71D7-4B9D-93BF-DF65B9E4770D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EE844873-71D7-4B9D-93BF-DF65B9E4770D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EE844873-71D7-4B9D-93BF-DF65B9E4770D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EE844873-71D7-4B9D-93BF-DF65B9E4770D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
|
@ -140,6 +146,7 @@ Global
|
|||
{5485F55E-DFED-4DA0-8A00-220B081FAC96} = {59197818-6C72-4A3C-A595-49F3D7D2EB18}
|
||||
{4D3D2508-CCC6-4C0B-B5E4-734DD5EC588F} = {AE5D6471-1B6E-4B06-A313-34EF81F35342}
|
||||
{6402E81A-75C2-422F-933B-AAC1ED8C4128} = {5E52FEF9-9605-4ACB-8A42-A20E06331599}
|
||||
{EE844873-71D7-4B9D-93BF-DF65B9E4770D} = {AE5D6471-1B6E-4B06-A313-34EF81F35342}
|
||||
EndGlobalSection
|
||||
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||
SolutionGuid = {758B57EF-7505-4BE2-90A2-E2DE2EC32909}
|
||||
|
|
|
|||
Loading…
Reference in a new issue