Refactored RecActionView to use enum types for EndpointAuthType, ApiKeyLocation, and RestType, and added properties for their display names. Introduced ErrorAction and its display name. Updated RecDbContext mapping to treat RecActionView as a view with a key, map new enum ID and name fields, and align property mappings with the database view structure. This enhances clarity and supports both ID and human-readable values in the model.
250 lines
12 KiB
C#
250 lines
12 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using ReC.Application.Common.Interfaces;
|
|
using ReC.Domain.Entities;
|
|
|
|
namespace ReC.Infrastructure;
|
|
|
|
public class RecDbContext(DbContextOptions<RecDbContext> options) : DbContext(options), IRecDbContext
|
|
{
|
|
public DbSet<EndpointParam> EndpointParams { get; set; }
|
|
|
|
public DbSet<RecActionView> RecActionViews { get; set; }
|
|
|
|
public DbSet<OutRes> OutRes { get; set; }
|
|
|
|
public DbSet<HeaderQueryResult> HeaderQueryResults { get; set; }
|
|
|
|
public DbSet<BodyQueryResult> BodyQueryResults { get; set; }
|
|
|
|
public DbSet<Connection> Connections { get; set; }
|
|
|
|
public DbSet<Endpoint> Endpoints { get; set; }
|
|
|
|
public DbSet<EndpointAuth> EndpointAuths { get; set; }
|
|
|
|
public DbSet<Profile> Profiles { get; set; }
|
|
|
|
public DbSet<RecAction> RecActions { get; set; }
|
|
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
{
|
|
base.OnModelCreating(modelBuilder);
|
|
|
|
modelBuilder.Entity<Connection>(b =>
|
|
{
|
|
b.ToTable("TBDD_CONNECTION");
|
|
|
|
b.HasKey(e => e.Id);
|
|
|
|
b.Property(e => e.Id)
|
|
.HasColumnName("GUID")
|
|
.ValueGeneratedOnAdd();
|
|
|
|
b.Property(e => e.Bezeichnung).HasColumnName("BEZEICHNUNG");
|
|
b.Property(e => e.SqlProvider).HasColumnName("SQL_PROVIDER");
|
|
b.Property(e => e.Server).HasColumnName("SERVER");
|
|
b.Property(e => e.Datenbank).HasColumnName("DATENBANK");
|
|
b.Property(e => e.Username).HasColumnName("USERNAME");
|
|
b.Property(e => e.Password).HasColumnName("PASSWORD");
|
|
b.Property(e => e.Bemerkung).HasColumnName("BEMERKUNG");
|
|
b.Property(e => e.Aktiv).HasColumnName("AKTIV");
|
|
b.Property(e => e.ErstelltWer).HasColumnName("ERSTELLTWER");
|
|
b.Property(e => e.ErstelltWann).HasColumnName("ERSTELLTWANN");
|
|
b.Property(e => e.GeandertWer).HasColumnName("GEANDERTWER");
|
|
b.Property(e => e.GeaendertWann).HasColumnName("GEAENDERTWANN");
|
|
b.Property(e => e.SysConnection).HasColumnName("SYS_CONNECTION");
|
|
});
|
|
|
|
modelBuilder.Entity<Endpoint>(b =>
|
|
{
|
|
b.ToTable("TBREC_CFG_ENDPOINT");
|
|
|
|
b.HasKey(e => e.Id);
|
|
|
|
b.Property(e => e.Id)
|
|
.HasColumnName("GUID")
|
|
.ValueGeneratedOnAdd();
|
|
|
|
b.Property(e => e.Active).HasColumnName("ACTIVE");
|
|
b.Property(e => e.Description).HasColumnName("DESCRIPTION");
|
|
b.Property(e => e.Uri).HasColumnName("URI");
|
|
b.Property(e => e.AddedWho).HasColumnName("ADDED_WHO");
|
|
b.Property(e => e.AddedWhen).HasColumnName("ADDED_WHEN");
|
|
b.Property(e => e.ChangedWho).HasColumnName("CHANGED_WHO");
|
|
b.Property(e => e.ChangedWhen).HasColumnName("CHANGED_WHEN");
|
|
});
|
|
|
|
modelBuilder.Entity<EndpointAuth>(b =>
|
|
{
|
|
b.ToTable("TBREC_CFG_ENDPOINT_AUTH");
|
|
|
|
b.HasKey(e => e.Id);
|
|
|
|
b.Property(e => e.Id)
|
|
.HasColumnName("GUID")
|
|
.ValueGeneratedOnAdd();
|
|
|
|
b.Property(e => e.Active).HasColumnName("ACTIVE");
|
|
b.Property(e => e.Description).HasColumnName("DESCRIPTION");
|
|
b.Property(e => e.Type).HasColumnName("TYPE");
|
|
b.Property(e => e.ApiKey).HasColumnName("API_KEY");
|
|
b.Property(e => e.ApiValue).HasColumnName("API_VALUE");
|
|
b.Property(e => e.ApiKeyAddTo).HasColumnName("API_KEY_ADD_TO");
|
|
b.Property(e => e.Token).HasColumnName("TOKEN");
|
|
b.Property(e => e.Username).HasColumnName("USERNAME");
|
|
b.Property(e => e.Password).HasColumnName("PASSWORD");
|
|
b.Property(e => e.Domain).HasColumnName("DOMAIN");
|
|
b.Property(e => e.Workstation).HasColumnName("WORKSTATION");
|
|
b.Property(e => e.AddedWho).HasColumnName("ADDED_WHO");
|
|
b.Property(e => e.AddedWhen).HasColumnName("ADDED_WHEN");
|
|
b.Property(e => e.ChangedWho).HasColumnName("CHANGED_WHO");
|
|
b.Property(e => e.ChangedWhen).HasColumnName("CHANGED_WHEN");
|
|
});
|
|
|
|
modelBuilder.Entity<EndpointParam>(b =>
|
|
{
|
|
b.ToTable("TBREC_CFG_ENDPOINT_PARAMS", "dbo");
|
|
|
|
b.HasKey(e => e.Id);
|
|
|
|
b.Property(e => e.Id).HasColumnName("GUID");
|
|
b.Property(e => e.Active).HasColumnName("ACTIVE");
|
|
b.Property(e => e.Description).HasColumnName("DESCRIPTION");
|
|
b.Property(e => e.GroupId).HasColumnName("GROUP_ID");
|
|
b.Property(e => e.Sequence).HasColumnName("SEQUENCE");
|
|
b.Property(e => e.Key).HasColumnName("KEY");
|
|
b.Property(e => e.Value).HasColumnName("VALUE");
|
|
b.Property(e => e.AddedWho).HasColumnName("ADDED_WHO");
|
|
b.Property(e => e.AddedWhen).HasColumnName("ADDED_WHEN");
|
|
b.Property(e => e.ChangedWho).HasColumnName("CHANGED_WHO");
|
|
b.Property(e => e.ChangedWhen).HasColumnName("CHANGED_WHEN");
|
|
});
|
|
|
|
modelBuilder.Entity<OutRes>(b =>
|
|
{
|
|
b.ToTable("TBREC_OUT_RESULT", "dbo");
|
|
|
|
b.HasKey(e => e.Id);
|
|
|
|
b.Property(e => e.Id)
|
|
.HasColumnName("GUID")
|
|
.ValueGeneratedOnAdd();
|
|
|
|
b.Property(e => e.ActionId).HasColumnName("ACTION_ID");
|
|
b.Property(e => e.Status).HasColumnName("STATUS");
|
|
b.Property(e => e.Header).HasColumnName("RESULT_HEADER");
|
|
b.Property(e => e.Body).HasColumnName("RESULT_BODY");
|
|
b.Property(e => e.AddedWho).HasColumnName("ADDED_WHO");
|
|
b.Property(e => e.AddedWhen).HasColumnName("ADDED_WHEN");
|
|
b.Property(e => e.ChangedWho).HasColumnName("CHANGED_WHO");
|
|
b.Property(e => e.ChangedWhen).HasColumnName("CHANGED_WHEN");
|
|
});
|
|
|
|
modelBuilder.Entity<Profile>(b =>
|
|
{
|
|
b.ToTable("TBREC_CFG_PROFILE", "dbo");
|
|
|
|
b.HasKey(e => e.Id);
|
|
|
|
b.Property(e => e.Id)
|
|
.HasColumnName("GUID")
|
|
.ValueGeneratedOnAdd();
|
|
|
|
b.Property(e => e.Active).HasColumnName("ACTIVE");
|
|
b.Property(e => e.Type).HasColumnName("TYPE");
|
|
b.Property(e => e.Mandantor).HasColumnName("MANDANTOR");
|
|
b.Property(e => e.Name).HasColumnName("PROFILE_NAME");
|
|
b.Property(e => e.Description).HasColumnName("DESCRIPTION");
|
|
b.Property(e => e.LogLevel).HasColumnName("LOG_LEVEL");
|
|
b.Property(e => e.Language).HasColumnName("LANGUAGE");
|
|
b.Property(e => e.AddedWho).HasColumnName("ADDED_WHO");
|
|
b.Property(e => e.AddedWhen).HasColumnName("ADDED_WHEN");
|
|
b.Property(e => e.ChangedWho).HasColumnName("CHANGED_WHO");
|
|
b.Property(e => e.ChangedWhen).HasColumnName("CHANGED_WHEN");
|
|
});
|
|
|
|
modelBuilder.Entity<RecAction>(b =>
|
|
{
|
|
b.ToTable("TBREC_CFG_ACTION");
|
|
|
|
b.HasKey(e => e.Id);
|
|
|
|
b.Property(e => e.Id).HasColumnName("GUID");
|
|
b.Property(e => e.ProfileId).HasColumnName("PROFILE_ID");
|
|
b.Property(e => e.Active).HasColumnName("ACTIVE");
|
|
b.Property(e => e.Sequence).HasColumnName("SEQUENCE");
|
|
b.Property(e => e.EndpointId).HasColumnName("ENDPOINT_ID");
|
|
b.Property(e => e.EndpointAuthId).HasColumnName("ENDPOINT_AUTH_ID");
|
|
b.Property(e => e.EndpointParamsId).HasColumnName("ENDPOINT_PARAMS_ID");
|
|
b.Property(e => e.SqlConnectionId).HasColumnName("SQL_CONNECTION_ID");
|
|
b.Property(e => e.Type).HasColumnName("TYPE");
|
|
b.Property(e => e.PreprocessingQuery).HasColumnName("PREPROCESSING_QUERY");
|
|
b.Property(e => e.HeaderQuery).HasColumnName("HEADER_QUERY");
|
|
b.Property(e => e.BodyQuery).HasColumnName("BODY_QUERY");
|
|
b.Property(e => e.PostprocessingQuery).HasColumnName("POSTPROCESSING_QUERY");
|
|
b.Property(e => e.ErrorAction).HasColumnName("ERROR_ACTION");
|
|
b.Property(e => e.AddedWho).HasColumnName("ADDED_WHO");
|
|
b.Property(e => e.AddedWhen).HasColumnName("ADDED_WHEN");
|
|
b.Property(e => e.ChangedWho).HasColumnName("CHANGED_WHO");
|
|
b.Property(e => e.ChangedWhen).HasColumnName("CHANGED_WHEN");
|
|
|
|
b.HasOne(act => act.OutRes)
|
|
.WithOne(res => res.Action)
|
|
.HasForeignKey<OutRes>(res => res.ActionId)
|
|
.OnDelete(DeleteBehavior.Cascade);
|
|
});
|
|
|
|
modelBuilder.Entity<RecActionView>(b =>
|
|
{
|
|
b.ToView("VWREC_ACTION", "dbo");
|
|
b.HasKey(e => e.Id);
|
|
|
|
b.Property(e => e.Id).HasColumnName("ACTION_GUID");
|
|
b.Property(e => e.ProfileId).HasColumnName("PROFILE_ID");
|
|
b.Property(e => e.ProfileName).HasColumnName("PROFILE_NAME");
|
|
b.Property(e => e.ProfileType).HasColumnName("PROFILE_TYPE");
|
|
b.Property(e => e.Sequence).HasColumnName("SEQUENCE");
|
|
b.Property(e => e.EndpointId).HasColumnName("ENDPOINT_ID");
|
|
b.Property(e => e.EndpointUri).HasColumnName("ENDPOINT_URI");
|
|
b.Property(e => e.EndpointAuthId).HasColumnName("ENDPOINT_AUTH_ID");
|
|
b.Property(e => e.EndpointAuthType).HasColumnName("ENDPOINT_AUTH_TYPE_ID");
|
|
b.Property(e => e.EndpointAuthTypeName).HasColumnName("ENDPOINT_AUTH_TYPE");
|
|
b.Property(e => e.EndpointAuthApiKey).HasColumnName("ENDPOINT_AUTH_API_KEY");
|
|
b.Property(e => e.EndpointAuthApiValue).HasColumnName("ENDPOINT_AUTH_API_VALUE");
|
|
b.Property(e => e.EndpointAuthApiKeyAddTo).HasColumnName("ENDPOINT_AUTH_API_KEY_ADD_TO_ID");
|
|
b.Property(e => e.EndpointAuthApiKeyAddToName).HasColumnName("ENDPOINT_AUTH_API_KEY_ADD_TO");
|
|
b.Property(e => e.EndpointAuthToken).HasColumnName("ENDPOINT_AUTH_TOKEN");
|
|
b.Property(e => e.EndpointAuthUsername).HasColumnName("ENDPOINT_AUTH_USERNAME");
|
|
b.Property(e => e.EndpointAuthPassword).HasColumnName("ENDPOINT_AUTH_PASSWORD");
|
|
b.Property(e => e.EndpointAuthDomain).HasColumnName("ENDPOINT_AUTH_DOMAIN");
|
|
b.Property(e => e.EndpointAuthWorkstation).HasColumnName("ENDPOINT_AUTH_WORKSTATION");
|
|
b.Property(e => e.EndpointParamsId).HasColumnName("ENDPOINT_PARAMS_ID");
|
|
b.Property(e => e.SqlConnectionId).HasColumnName("SQL_CONNECTION_ID");
|
|
b.Property(e => e.SqlConnectionServer).HasColumnName("SQL_CONNECTION_SERVER");
|
|
b.Property(e => e.SqlConnectionDb).HasColumnName("SQL_CONNECTION_DB");
|
|
b.Property(e => e.SqlConnectionUsername).HasColumnName("SQL_CONNECTION_USERNAME");
|
|
b.Property(e => e.SqlConnectionPassword).HasColumnName("SQL_CONNECTION_PASSWORD");
|
|
b.Property(e => e.RestType).HasColumnName("REST_TYPE_ID");
|
|
b.Property(e => e.RestTypeName).HasColumnName("REST_TYPE");
|
|
b.Property(e => e.PreprocessingQuery).HasColumnName("PREPROCESSING_QUERY");
|
|
b.Property(e => e.HeaderQuery).HasColumnName("HEADER_QUERY");
|
|
b.Property(e => e.BodyQuery).HasColumnName("BODY_QUERY");
|
|
b.Property(e => e.PostprocessingQuery).HasColumnName("POSTPROCESSING_QUERY");
|
|
b.Property(e => e.ErrorAction).HasColumnName("ERROR_ACTION_ID");
|
|
b.Property(e => e.ErrorActionName).HasColumnName("ERROR_ACTION");
|
|
});
|
|
|
|
modelBuilder.Entity<HeaderQueryResult>(b =>
|
|
{
|
|
b.HasNoKey();
|
|
b.Property(e => e.RawHeader).HasColumnName("REQUEST_HEADER");
|
|
});
|
|
|
|
modelBuilder.Entity<BodyQueryResult>(b =>
|
|
{
|
|
b.HasNoKey();
|
|
b.Property(e => e.RawBody).HasColumnName("REQUEST_BODY");
|
|
});
|
|
|
|
}
|
|
} |