NuGet-Pakete installiert und Projektverweise hinzugefügt. CRUD Repository, Service und Controller für die EmailOut-Tabelle mit WebCore konfiguriert. DIExtensions zur Dependency Injection erstellt. Resource.*.resx für zukünftige Entwicklungen mit Cookie-basiertem String Localizer konfiguriert.

This commit is contained in:
Developer 02
2024-05-17 12:56:37 +02:00
parent 0f709856db
commit 77a4359bb2
20 changed files with 475 additions and 27 deletions

View File

@@ -0,0 +1,9 @@
using DigitalData.Core.Contracts.Infrastructure;
using DigitalData.EmailProfilerDispatcher.Domain.Entities;
namespace DigitalData.EmailProfilerDispatcher.Infrastructure.Contracts
{
public interface IEmailOutRepository : ICRUDRepository<EmailOut, int>
{
}
}

View File

@@ -0,0 +1,17 @@
using DigitalData.EmailProfilerDispatcher.Infrastructure.Contracts;
using DigitalData.EmailProfilerDispatcher.Infrastructure.Repositories;
using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection;
namespace DigitalData.EmailProfilerDispatcher.Infrastructure
{
public static class DIExtensions
{
public static IServiceCollection AddDispatcherRepository<TDbContext>(this IServiceCollection services) where TDbContext : DbContext => services
.AddScoped<IEmailOutRepository, EmailOutRepository<TDbContext>>();
public static IServiceCollection AddDispatcherRepository(this IServiceCollection services, Action<DbContextOptionsBuilder> optionsAction) => services
.AddDbContext<DefaultMailDbContext>(optionsAction)
.AddDispatcherRepository<DefaultMailDbContext>();
}
}

View File

@@ -0,0 +1,21 @@
using DigitalData.EmailProfilerDispatcher.Domain.Entities;
using Microsoft.EntityFrameworkCore;
namespace DigitalData.EmailProfilerDispatcher.Infrastructure
{
public class DefaultMailDbContext : DbContext
{
public DbSet<EmailOut> EMailOuts { get; set; }
public DefaultMailDbContext(DbContextOptions options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<EmailOut>().ToTable("TBEMLP_EMAIL_OUT");
}
}
}

View File

@@ -7,7 +7,33 @@
</PropertyGroup>
<ItemGroup>
<Folder Include="Repositories\" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.19" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Abstractions" Version="7.0.19" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="7.0.19">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.19" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="7.0.19">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DigitalData.EmailProfilerDispatcher.Domain\DigitalData.EmailProfilerDispatcher.Domain.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="DigitalData.Core.Contracts">
<HintPath>..\..\WebCoreModules\DigitalData.Core.Infrastructure\bin\Debug\net7.0\DigitalData.Core.Contracts.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Core.DTO">
<HintPath>..\..\WebCoreModules\DigitalData.Core.Infrastructure\bin\Debug\net7.0\DigitalData.Core.DTO.dll</HintPath>
</Reference>
<Reference Include="DigitalData.Core.Infrastructure">
<HintPath>..\..\WebCoreModules\DigitalData.Core.Infrastructure\bin\Debug\net7.0\DigitalData.Core.Infrastructure.dll</HintPath>
</Reference>
</ItemGroup>
</Project>

View File

@@ -0,0 +1,15 @@
using DigitalData.Core.Infrastructure;
using DigitalData.EmailProfilerDispatcher.Domain.Entities;
using DigitalData.EmailProfilerDispatcher.Infrastructure.Contracts;
using Microsoft.EntityFrameworkCore;
namespace DigitalData.EmailProfilerDispatcher.Infrastructure.Repositories
{
public class EmailOutRepository<TDbContext> : CRUDRepository<EmailOut, int, TDbContext>, IEmailOutRepository
where TDbContext : DbContext
{
public EmailOutRepository(TDbContext dbContext) : base(dbContext)
{
}
}
}