Mapped ProfileView to the VWREC_PROFILE view in the dbo schema. Configured primary key and property-to-column mappings for all relevant fields, enabling read access to profile data via EF Core.
142 lines
6.9 KiB
C#
142 lines
6.9 KiB
C#
using Microsoft.EntityFrameworkCore;
|
|
using ReC.Application.Common.Interfaces;
|
|
using ReC.Domain.QueryOutput;
|
|
using ReC.Domain.Views;
|
|
|
|
namespace ReC.Infrastructure;
|
|
|
|
public class RecDbContext(DbContextOptions<RecDbContext> options) : DbContext(options), IRecDbContext
|
|
{
|
|
#region DB Sets
|
|
public DbSet<RecActionView> RecActionViews { get; set; }
|
|
|
|
public DbSet<ProfileView> ProfileViews { get; set; }
|
|
|
|
public DbSet<ResultView> RecResultViews { get; set; }
|
|
|
|
public DbSet<HeaderQueryResult> HeaderQueryResults { get; set; }
|
|
|
|
public DbSet<BodyQueryResult> BodyQueryResults { get; set; }
|
|
|
|
public DbSet<InsertObjectResult> RecResults { get; set; }
|
|
#endregion DB Sets
|
|
|
|
// TODO: Update to configure via appsettings.json
|
|
protected override void OnModelCreating(ModelBuilder modelBuilder)
|
|
{
|
|
base.OnModelCreating(modelBuilder);
|
|
|
|
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_ID");
|
|
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");
|
|
|
|
b.HasMany(e => e.Results)
|
|
.WithOne(r => r.Action)
|
|
.HasForeignKey(r => r.ActionId);
|
|
});
|
|
|
|
modelBuilder.Entity<ProfileView>(b =>
|
|
{
|
|
b.ToView("VWREC_PROFILE", "dbo");
|
|
b.HasKey(e => e.Id);
|
|
b.Property(e => e.Id).HasColumnName("PROFILE_GUID");
|
|
b.Property(e => e.Active).HasColumnName("ACTIVE");
|
|
b.Property(e => e.TypeId).HasColumnName("TYPE_ID");
|
|
b.Property(e => e.Type).HasColumnName("TYPE");
|
|
b.Property(e => e.Mandantor).HasColumnName("MANDANTOR");
|
|
b.Property(e => e.ProfileName).HasColumnName("PROFILE_NAME");
|
|
b.Property(e => e.Description).HasColumnName("DESCRIPTION");
|
|
b.Property(e => e.LogLevelId).HasColumnName("LOG_LEVEL_ID");
|
|
b.Property(e => e.LogLevel).HasColumnName("LOG_LEVEL");
|
|
b.Property(e => e.LanguageId).HasColumnName("LANGUAGE_ID");
|
|
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");
|
|
b.Property(e => e.FirstRun).HasColumnName("FIRST_RUN");
|
|
b.Property(e => e.LastRun).HasColumnName("LAST_RUN");
|
|
b.Property(e => e.LastResult).HasColumnName("LAST_RESULT");
|
|
});
|
|
|
|
modelBuilder.Entity<ResultView>(b =>
|
|
{
|
|
b.ToView("VWREC_RESULT", "dbo");
|
|
b.HasKey(e => e.Id);
|
|
|
|
b.Property(e => e.Id).HasColumnName("RESULT_GUID");
|
|
b.Property(e => e.ActionId).HasColumnName("ACTION_ID");
|
|
b.Property(e => e.ProfileId).HasColumnName("PROFILE_ID");
|
|
b.Property(e => e.ProfileName).HasColumnName("PROFILE_NAME");
|
|
b.Property(e => e.StatusCode).HasColumnName("STATUS_ID");
|
|
b.Property(e => e.StatusName).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");
|
|
|
|
b.HasOne(r => r.Action)
|
|
.WithMany(a => a.Results)
|
|
.HasForeignKey(r => r.ActionId);
|
|
|
|
b.HasOne(r => r.Profile)
|
|
.WithMany()
|
|
.HasForeignKey(r => r.ProfileId);
|
|
});
|
|
|
|
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");
|
|
});
|
|
|
|
modelBuilder.Entity<InsertObjectResult>(b =>
|
|
{
|
|
b.HasNoKey();
|
|
b.Property(e => e.NewObjectId).HasColumnName("oGUID");
|
|
});
|
|
}
|
|
} |