diff --git a/Services/YCompanyClaimsAPI/YCompany.Claims.DataAccess/YCompany.Claims.DataAccess.csproj b/Services/YCompanyClaimsAPI/YCompany.Claims.DataAccess/YCompany.Claims.DataAccess.csproj index c910a3c8..c1d7bc79 100644 --- a/Services/YCompanyClaimsAPI/YCompany.Claims.DataAccess/YCompany.Claims.DataAccess.csproj +++ b/Services/YCompanyClaimsAPI/YCompany.Claims.DataAccess/YCompany.Claims.DataAccess.csproj @@ -7,7 +7,7 @@ - + diff --git a/Services/YCompanyCommunicationsAPI/YCompany.Communications.DataAccess/YCompany.Communications.DataAccess.csproj b/Services/YCompanyCommunicationsAPI/YCompany.Communications.DataAccess/YCompany.Communications.DataAccess.csproj index 1f893e34..a1c281ca 100644 --- a/Services/YCompanyCommunicationsAPI/YCompany.Communications.DataAccess/YCompany.Communications.DataAccess.csproj +++ b/Services/YCompanyCommunicationsAPI/YCompany.Communications.DataAccess/YCompany.Communications.DataAccess.csproj @@ -7,7 +7,7 @@ - + diff --git a/Services/YCompanyIdentityServer/YCompany.Identity.DataAccess/YCompany.Identity.DataAccess.csproj b/Services/YCompanyIdentityServer/YCompany.Identity.DataAccess/YCompany.Identity.DataAccess.csproj index b03892c1..d6c1c266 100644 --- a/Services/YCompanyIdentityServer/YCompany.Identity.DataAccess/YCompany.Identity.DataAccess.csproj +++ b/Services/YCompanyIdentityServer/YCompany.Identity.DataAccess/YCompany.Identity.DataAccess.csproj @@ -7,7 +7,7 @@ - + diff --git a/Services/YCompanyIdentityServer/YCompanyIdentityServer/YCompanyIdentityServer.csproj b/Services/YCompanyIdentityServer/YCompanyIdentityServer/YCompanyIdentityServer.csproj index 975c4a07..69a2877a 100644 --- a/Services/YCompanyIdentityServer/YCompanyIdentityServer/YCompanyIdentityServer.csproj +++ b/Services/YCompanyIdentityServer/YCompanyIdentityServer/YCompanyIdentityServer.csproj @@ -12,12 +12,16 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive - + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/Services/YCompanyIdentityServer/YCompanyIdentityServer/appsettings.json b/Services/YCompanyIdentityServer/YCompanyIdentityServer/appsettings.json index 1f856020..1d843862 100644 --- a/Services/YCompanyIdentityServer/YCompanyIdentityServer/appsettings.json +++ b/Services/YCompanyIdentityServer/YCompanyIdentityServer/appsettings.json @@ -1,7 +1,7 @@ { "ConnectionStrings": { - "DefaultConnection": "Server=localhost\\MSSQLSERVER02;Database=ycompany;Trusted_Connection=True;", - "IdentityServer": "Server=localhost\\MSSQLSERVER02;Database=ycompany;Trusted_Connection=True;" + "DefaultConnection": "Server=IN-5F1D5S3;Database=ycompany;Trusted_Connection=True;", + "IdentityServer": "Server=IN-5F1D5S3;Database=ycompany;Trusted_Connection=True;" }, "Logging": { "LogLevel": { diff --git a/Services/YCompanyPaymentsAPI/YCompanyPaymentsAPI/YCompanyPaymentsAPI.csproj b/Services/YCompanyPaymentsAPI/YCompanyPaymentsAPI/YCompanyPaymentsAPI.csproj index f2d2f3ad..f1b03677 100644 --- a/Services/YCompanyPaymentsAPI/YCompanyPaymentsAPI/YCompanyPaymentsAPI.csproj +++ b/Services/YCompanyPaymentsAPI/YCompanyPaymentsAPI/YCompanyPaymentsAPI.csproj @@ -8,10 +8,14 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/Services/YCompanyReportingAPI/YCompany.Reporting.DataAccess/YCompany.Reporting.DataAccess.csproj b/Services/YCompanyReportingAPI/YCompany.Reporting.DataAccess/YCompany.Reporting.DataAccess.csproj index 6afb89e5..3cfa41d6 100644 --- a/Services/YCompanyReportingAPI/YCompany.Reporting.DataAccess/YCompany.Reporting.DataAccess.csproj +++ b/Services/YCompanyReportingAPI/YCompany.Reporting.DataAccess/YCompany.Reporting.DataAccess.csproj @@ -7,7 +7,7 @@ - + diff --git a/Services/YCompanyUserManagementAPI/YCompany.UserManagement.DataAccess/YCompany.UserManagement.DataAccess.csproj b/Services/YCompanyUserManagementAPI/YCompany.UserManagement.DataAccess/YCompany.UserManagement.DataAccess.csproj index 833d0680..ce0f9755 100644 --- a/Services/YCompanyUserManagementAPI/YCompany.UserManagement.DataAccess/YCompany.UserManagement.DataAccess.csproj +++ b/Services/YCompanyUserManagementAPI/YCompany.UserManagement.DataAccess/YCompany.UserManagement.DataAccess.csproj @@ -7,7 +7,9 @@ - + + + diff --git a/Services/YCompanyVendorAPI/YCompany.Vendor.DataAccess/YCompany.Vendor.DataAccess.csproj b/Services/YCompanyVendorAPI/YCompany.Vendor.DataAccess/YCompany.Vendor.DataAccess.csproj index 8018acff..854862ec 100644 --- a/Services/YCompanyVendorAPI/YCompany.Vendor.DataAccess/YCompany.Vendor.DataAccess.csproj +++ b/Services/YCompanyVendorAPI/YCompany.Vendor.DataAccess/YCompany.Vendor.DataAccess.csproj @@ -7,7 +7,7 @@ - + diff --git a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Controllers/ThirdPartyController.cs b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Controllers/ThirdPartyController.cs index cc3e3fc8..4a51f5fd 100644 --- a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Controllers/ThirdPartyController.cs +++ b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Controllers/ThirdPartyController.cs @@ -1,5 +1,7 @@ + using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; +using YCompany.Configurations; using YCompanyPaymentsAPI.Data; using YCompanyPaymentsAPI.Models; @@ -11,17 +13,32 @@ namespace YCompanyThirdPartyAPI.Controllers public class ThirdPartyController : ControllerBase { private readonly InsuranceContext _context; + private readonly IConfiguration _configuration; + private readonly ILogger _logger; - public ThirdPartyController(InsuranceContext context) + public ThirdPartyController(InsuranceContext context, IConfiguration configuration, ILogger logger) { _context = context; + _configuration = configuration; + _logger = logger; } + //[HttpGet] + //public IEnumerable Get() + //{ + // _logger.LogInformation(_configuration["ApiKey"]); + // List result = _context.Policies.ToList(); + // return result; + //} [HttpGet] - public IEnumerable Get() + public IActionResult GetConfig() { - List result = _context.Policies.ToList(); - return result; + var metadata = new SecurityMetadata + { + ApiKey = _configuration["ApiKey"], + ApiSecret = _configuration["ApiSecret"] + }; + return Ok(metadata); } } } \ No newline at end of file diff --git a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074543_v2.Designer.cs b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074543_v2.Designer.cs new file mode 100644 index 00000000..1f188389 --- /dev/null +++ b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074543_v2.Designer.cs @@ -0,0 +1,385 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using YCompanyPaymentsAPI.Data; + +#nullable disable + +namespace YCompanyThirdPartyAPI.Migrations +{ + [DbContext(typeof(InsuranceContext))] + [Migration("20240116074543_v2")] + partial class v2 + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.14") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Coverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Code") + .HasColumnType("nvarchar(max)"); + + b.Property("CoverageGroup") + .HasColumnType("nvarchar(max)"); + + b.Property("CoverageName") + .HasColumnType("nvarchar(max)"); + + b.Property("IsPolicyCoverage") + .HasColumnType("bit"); + + b.Property("IsVehicleCoverage") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.ToTable("Coverage"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("DoB") + .HasColumnType("datetime2"); + + b.Property("EmailAddress") + .HasColumnType("nvarchar(max)"); + + b.Property("FirstName") + .HasColumnType("nvarchar(max)"); + + b.Property("IsPrimaryPolicyHolder") + .HasColumnType("bit"); + + b.Property("LastName") + .HasColumnType("nvarchar(max)"); + + b.Property("LicenseIssuedDate") + .HasColumnType("datetime2"); + + b.Property("LicenseIssuedState") + .HasColumnType("nvarchar(max)"); + + b.Property("LicenseNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.Property("RelationWithPrimaryPolicyHolder") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("PolicyId"); + + b.ToTable("Driver"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("AdditionalInfo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("PaymentOption") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyEffectiveDate") + .HasColumnType("datetime2"); + + b.Property("PolicyExpirationDate") + .HasColumnType("datetime2"); + + b.Property("PolicyName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyNumber") + .HasColumnType("int"); + + b.Property("TotalAmount") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("Policies"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.PolicyCoverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CoverageId") + .HasColumnType("int"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CoverageId"); + + b.HasIndex("PolicyId"); + + b.ToTable("PolicyCoverage"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("Color") + .HasColumnType("nvarchar(max)"); + + b.Property("Model") + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.Property("VehicleNumberPlate") + .HasColumnType("nvarchar(max)"); + + b.Property("VehicleYear") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PolicyId") + .IsUnique(); + + b.ToTable("Vehicles"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.VehicleCoverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CoverageId") + .HasColumnType("int"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("VehicleId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CoverageId"); + + b.HasIndex("VehicleId"); + + b.ToTable("VehicleCoverage"); + }); + + modelBuilder.Entity("YCompanyThirdPartyAPI.Models.VehicleDriver", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("DriveForBusiness") + .HasColumnType("nvarchar(max)"); + + b.Property("DriverId") + .HasColumnType("int"); + + b.Property("EverydayMileage") + .HasColumnType("real"); + + b.Property("IsPrimaryDriver") + .HasColumnType("bit"); + + b.Property("VehicleId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("DriverId"); + + b.HasIndex("VehicleId"); + + b.ToTable("VehicleDriver"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithMany("Drivers") + .HasForeignKey("PolicyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.PolicyCoverage", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Coverage", "Coverage") + .WithMany("PolicyCoverages") + .HasForeignKey("CoverageId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithMany("PolicyCoverages") + .HasForeignKey("PolicyId") + .IsRequired(); + + b.Navigation("Coverage"); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithOne("Vehicle") + .HasForeignKey("YCompanyPaymentsAPI.Models.Vehicle", "PolicyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.VehicleCoverage", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Coverage", "Coverage") + .WithMany("VehicleCoverages") + .HasForeignKey("CoverageId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Vehicle", "Vehicle") + .WithMany("VehicleCoverages") + .HasForeignKey("VehicleId") + .IsRequired(); + + b.Navigation("Coverage"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyThirdPartyAPI.Models.VehicleDriver", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Driver", "Driver") + .WithMany("VehicleDrivers") + .HasForeignKey("DriverId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Vehicle", "Vehicle") + .WithMany("VehicleDrivers") + .HasForeignKey("VehicleId") + .IsRequired(); + + b.Navigation("Driver"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Coverage", b => + { + b.Navigation("PolicyCoverages"); + + b.Navigation("VehicleCoverages"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.Navigation("VehicleDrivers"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy", b => + { + b.Navigation("Drivers"); + + b.Navigation("PolicyCoverages"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.Navigation("VehicleCoverages"); + + b.Navigation("VehicleDrivers"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074543_v2.cs b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074543_v2.cs new file mode 100644 index 00000000..7d35508c --- /dev/null +++ b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074543_v2.cs @@ -0,0 +1,256 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace YCompanyThirdPartyAPI.Migrations +{ + public partial class v2 : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "Policy_Coverage"); + + migrationBuilder.DropTable( + name: "Vehicle_Coverage"); + + migrationBuilder.DropTable( + name: "Vehicle_Driver"); + + migrationBuilder.CreateTable( + name: "PolicyCoverage", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + Active = table.Column(type: "bit", nullable: false), + CreatedDate = table.Column(type: "datetime2", nullable: false), + PolicyId = table.Column(type: "int", nullable: false), + CoverageId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_PolicyCoverage", x => x.Id); + table.ForeignKey( + name: "FK_PolicyCoverage_Coverage_CoverageId", + column: x => x.CoverageId, + principalTable: "Coverage", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_PolicyCoverage_Policies_PolicyId", + column: x => x.PolicyId, + principalTable: "Policies", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "VehicleCoverage", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + Active = table.Column(type: "bit", nullable: false), + CreatedDate = table.Column(type: "datetime2", nullable: false), + VehicleId = table.Column(type: "int", nullable: false), + CoverageId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_VehicleCoverage", x => x.Id); + table.ForeignKey( + name: "FK_VehicleCoverage_Coverage_CoverageId", + column: x => x.CoverageId, + principalTable: "Coverage", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_VehicleCoverage_Vehicles_VehicleId", + column: x => x.VehicleId, + principalTable: "Vehicles", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "VehicleDriver", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + DriveForBusiness = table.Column(type: "nvarchar(max)", nullable: true), + IsPrimaryDriver = table.Column(type: "bit", nullable: false), + EverydayMileage = table.Column(type: "real", nullable: false), + CreatedDate = table.Column(type: "datetime2", nullable: false), + Active = table.Column(type: "bit", nullable: false), + VehicleId = table.Column(type: "int", nullable: false), + DriverId = table.Column(type: "int", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_VehicleDriver", x => x.Id); + table.ForeignKey( + name: "FK_VehicleDriver_Driver_DriverId", + column: x => x.DriverId, + principalTable: "Driver", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_VehicleDriver_Vehicles_VehicleId", + column: x => x.VehicleId, + principalTable: "Vehicles", + principalColumn: "Id"); + }); + + migrationBuilder.CreateIndex( + name: "IX_PolicyCoverage_CoverageId", + table: "PolicyCoverage", + column: "CoverageId"); + + migrationBuilder.CreateIndex( + name: "IX_PolicyCoverage_PolicyId", + table: "PolicyCoverage", + column: "PolicyId"); + + migrationBuilder.CreateIndex( + name: "IX_VehicleCoverage_CoverageId", + table: "VehicleCoverage", + column: "CoverageId"); + + migrationBuilder.CreateIndex( + name: "IX_VehicleCoverage_VehicleId", + table: "VehicleCoverage", + column: "VehicleId"); + + migrationBuilder.CreateIndex( + name: "IX_VehicleDriver_DriverId", + table: "VehicleDriver", + column: "DriverId"); + + migrationBuilder.CreateIndex( + name: "IX_VehicleDriver_VehicleId", + table: "VehicleDriver", + column: "VehicleId"); + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "PolicyCoverage"); + + migrationBuilder.DropTable( + name: "VehicleCoverage"); + + migrationBuilder.DropTable( + name: "VehicleDriver"); + + migrationBuilder.CreateTable( + name: "Policy_Coverage", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + CoverageId = table.Column(type: "int", nullable: false), + PolicyId = table.Column(type: "int", nullable: false), + Active = table.Column(type: "bit", nullable: false), + CreatedDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Policy_Coverage", x => x.Id); + table.ForeignKey( + name: "FK_Policy_Coverage_Coverage_CoverageId", + column: x => x.CoverageId, + principalTable: "Coverage", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Policy_Coverage_Policies_PolicyId", + column: x => x.PolicyId, + principalTable: "Policies", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "Vehicle_Coverage", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + CoverageId = table.Column(type: "int", nullable: false), + VehicleId = table.Column(type: "int", nullable: false), + Active = table.Column(type: "bit", nullable: false), + CreatedDate = table.Column(type: "datetime2", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Vehicle_Coverage", x => x.Id); + table.ForeignKey( + name: "FK_Vehicle_Coverage_Coverage_CoverageId", + column: x => x.CoverageId, + principalTable: "Coverage", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Vehicle_Coverage_Vehicles_VehicleId", + column: x => x.VehicleId, + principalTable: "Vehicles", + principalColumn: "Id"); + }); + + migrationBuilder.CreateTable( + name: "Vehicle_Driver", + columns: table => new + { + Id = table.Column(type: "int", nullable: false) + .Annotation("SqlServer:Identity", "1, 1"), + DriverId = table.Column(type: "int", nullable: false), + VehicleId = table.Column(type: "int", nullable: false), + Active = table.Column(type: "bit", nullable: false), + CreatedDate = table.Column(type: "datetime2", nullable: false), + DriveForBusiness = table.Column(type: "nvarchar(max)", nullable: true), + EverydayMileage = table.Column(type: "real", nullable: false), + IsPrimaryDriver = table.Column(type: "bit", nullable: false) + }, + constraints: table => + { + table.PrimaryKey("PK_Vehicle_Driver", x => x.Id); + table.ForeignKey( + name: "FK_Vehicle_Driver_Driver_DriverId", + column: x => x.DriverId, + principalTable: "Driver", + principalColumn: "Id"); + table.ForeignKey( + name: "FK_Vehicle_Driver_Vehicles_VehicleId", + column: x => x.VehicleId, + principalTable: "Vehicles", + principalColumn: "Id"); + }); + + migrationBuilder.CreateIndex( + name: "IX_Policy_Coverage_CoverageId", + table: "Policy_Coverage", + column: "CoverageId"); + + migrationBuilder.CreateIndex( + name: "IX_Policy_Coverage_PolicyId", + table: "Policy_Coverage", + column: "PolicyId"); + + migrationBuilder.CreateIndex( + name: "IX_Vehicle_Coverage_CoverageId", + table: "Vehicle_Coverage", + column: "CoverageId"); + + migrationBuilder.CreateIndex( + name: "IX_Vehicle_Coverage_VehicleId", + table: "Vehicle_Coverage", + column: "VehicleId"); + + migrationBuilder.CreateIndex( + name: "IX_Vehicle_Driver_DriverId", + table: "Vehicle_Driver", + column: "DriverId"); + + migrationBuilder.CreateIndex( + name: "IX_Vehicle_Driver_VehicleId", + table: "Vehicle_Driver", + column: "VehicleId"); + } + } +} diff --git a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074911_v3.Designer.cs b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074911_v3.Designer.cs new file mode 100644 index 00000000..7c375182 --- /dev/null +++ b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074911_v3.Designer.cs @@ -0,0 +1,385 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using YCompanyPaymentsAPI.Data; + +#nullable disable + +namespace YCompanyThirdPartyAPI.Migrations +{ + [DbContext(typeof(InsuranceContext))] + [Migration("20240116074911_v3")] + partial class v3 + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.14") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Coverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Code") + .HasColumnType("nvarchar(max)"); + + b.Property("CoverageGroup") + .HasColumnType("nvarchar(max)"); + + b.Property("CoverageName") + .HasColumnType("nvarchar(max)"); + + b.Property("IsPolicyCoverage") + .HasColumnType("bit"); + + b.Property("IsVehicleCoverage") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.ToTable("Coverage"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("DoB") + .HasColumnType("datetime2"); + + b.Property("EmailAddress") + .HasColumnType("nvarchar(max)"); + + b.Property("FirstName") + .HasColumnType("nvarchar(max)"); + + b.Property("IsPrimaryPolicyHolder") + .HasColumnType("bit"); + + b.Property("LastName") + .HasColumnType("nvarchar(max)"); + + b.Property("LicenseIssuedDate") + .HasColumnType("datetime2"); + + b.Property("LicenseIssuedState") + .HasColumnType("nvarchar(max)"); + + b.Property("LicenseNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.Property("RelationWithPrimaryPolicyHolder") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("PolicyId"); + + b.ToTable("Driver"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("AdditionalInfo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("PaymentOption") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyEffectiveDate") + .HasColumnType("datetime2"); + + b.Property("PolicyExpirationDate") + .HasColumnType("datetime2"); + + b.Property("PolicyName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyNumber") + .HasColumnType("int"); + + b.Property("TotalAmount") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("Policies"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.PolicyCoverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CoverageId") + .HasColumnType("int"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CoverageId"); + + b.HasIndex("PolicyId"); + + b.ToTable("PolicyCoverage"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("Color") + .HasColumnType("nvarchar(max)"); + + b.Property("Model") + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.Property("VehicleNumberPlate") + .HasColumnType("nvarchar(max)"); + + b.Property("VehicleYear") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PolicyId") + .IsUnique(); + + b.ToTable("Vehicles"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.VehicleCoverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CoverageId") + .HasColumnType("int"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("VehicleId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CoverageId"); + + b.HasIndex("VehicleId"); + + b.ToTable("VehicleCoverage"); + }); + + modelBuilder.Entity("YCompanyThirdPartyAPI.Models.VehicleDriver", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("DriveForBusiness") + .HasColumnType("nvarchar(max)"); + + b.Property("DriverId") + .HasColumnType("int"); + + b.Property("EverydayMileage") + .HasColumnType("real"); + + b.Property("IsPrimaryDriver") + .HasColumnType("bit"); + + b.Property("VehicleId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("DriverId"); + + b.HasIndex("VehicleId"); + + b.ToTable("VehicleDriver"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithMany("Drivers") + .HasForeignKey("PolicyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.PolicyCoverage", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Coverage", "Coverage") + .WithMany("PolicyCoverages") + .HasForeignKey("CoverageId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithMany("PolicyCoverages") + .HasForeignKey("PolicyId") + .IsRequired(); + + b.Navigation("Coverage"); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithOne("Vehicle") + .HasForeignKey("YCompanyPaymentsAPI.Models.Vehicle", "PolicyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.VehicleCoverage", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Coverage", "Coverage") + .WithMany("VehicleCoverages") + .HasForeignKey("CoverageId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Vehicle", "Vehicle") + .WithMany("VehicleCoverages") + .HasForeignKey("VehicleId") + .IsRequired(); + + b.Navigation("Coverage"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyThirdPartyAPI.Models.VehicleDriver", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Driver", "Driver") + .WithMany("VehicleDrivers") + .HasForeignKey("DriverId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Vehicle", "Vehicle") + .WithMany("VehicleDrivers") + .HasForeignKey("VehicleId") + .IsRequired(); + + b.Navigation("Driver"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Coverage", b => + { + b.Navigation("PolicyCoverages"); + + b.Navigation("VehicleCoverages"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.Navigation("VehicleDrivers"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy", b => + { + b.Navigation("Drivers"); + + b.Navigation("PolicyCoverages"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.Navigation("VehicleCoverages"); + + b.Navigation("VehicleDrivers"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074911_v3.cs b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074911_v3.cs new file mode 100644 index 00000000..43ed9e28 --- /dev/null +++ b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116074911_v3.cs @@ -0,0 +1,19 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace YCompanyThirdPartyAPI.Migrations +{ + public partial class v3 : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + + } + } +} diff --git a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116080212_v5.Designer.cs b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116080212_v5.Designer.cs new file mode 100644 index 00000000..9d22e61b --- /dev/null +++ b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116080212_v5.Designer.cs @@ -0,0 +1,385 @@ +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using YCompanyPaymentsAPI.Data; + +#nullable disable + +namespace YCompanyThirdPartyAPI.Migrations +{ + [DbContext(typeof(InsuranceContext))] + [Migration("20240116080212_v5")] + partial class v5 + { + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.14") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Coverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Code") + .HasColumnType("nvarchar(max)"); + + b.Property("CoverageGroup") + .HasColumnType("nvarchar(max)"); + + b.Property("CoverageName") + .HasColumnType("nvarchar(max)"); + + b.Property("IsPolicyCoverage") + .HasColumnType("bit"); + + b.Property("IsVehicleCoverage") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.ToTable("Coverage"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("DoB") + .HasColumnType("datetime2"); + + b.Property("EmailAddress") + .HasColumnType("nvarchar(max)"); + + b.Property("FirstName") + .HasColumnType("nvarchar(max)"); + + b.Property("IsPrimaryPolicyHolder") + .HasColumnType("bit"); + + b.Property("LastName") + .HasColumnType("nvarchar(max)"); + + b.Property("LicenseIssuedDate") + .HasColumnType("datetime2"); + + b.Property("LicenseIssuedState") + .HasColumnType("nvarchar(max)"); + + b.Property("LicenseNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.Property("RelationWithPrimaryPolicyHolder") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("PolicyId"); + + b.ToTable("Driver"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("AdditionalInfo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("PaymentOption") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyEffectiveDate") + .HasColumnType("datetime2"); + + b.Property("PolicyExpirationDate") + .HasColumnType("datetime2"); + + b.Property("PolicyName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyNumber") + .HasColumnType("int"); + + b.Property("TotalAmount") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("Policies"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.PolicyCoverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CoverageId") + .HasColumnType("int"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CoverageId"); + + b.HasIndex("PolicyId"); + + b.ToTable("PolicyCoverage"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("Color") + .HasColumnType("nvarchar(max)"); + + b.Property("Model") + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.Property("VehicleNumberPlate") + .HasColumnType("nvarchar(max)"); + + b.Property("VehicleYear") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PolicyId") + .IsUnique(); + + b.ToTable("Vehicles"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.VehicleCoverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CoverageId") + .HasColumnType("int"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("VehicleId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CoverageId"); + + b.HasIndex("VehicleId"); + + b.ToTable("VehicleCoverage"); + }); + + modelBuilder.Entity("YCompanyThirdPartyAPI.Models.VehicleDriver", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("DriveForBusiness") + .HasColumnType("nvarchar(max)"); + + b.Property("DriverId") + .HasColumnType("int"); + + b.Property("EverydayMileage") + .HasColumnType("real"); + + b.Property("IsPrimaryDriver") + .HasColumnType("bit"); + + b.Property("VehicleId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("DriverId"); + + b.HasIndex("VehicleId"); + + b.ToTable("VehicleDriver"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithMany("Drivers") + .HasForeignKey("PolicyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.PolicyCoverage", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Coverage", "Coverage") + .WithMany("PolicyCoverages") + .HasForeignKey("CoverageId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithMany("PolicyCoverages") + .HasForeignKey("PolicyId") + .IsRequired(); + + b.Navigation("Coverage"); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithOne("Vehicle") + .HasForeignKey("YCompanyPaymentsAPI.Models.Vehicle", "PolicyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.VehicleCoverage", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Coverage", "Coverage") + .WithMany("VehicleCoverages") + .HasForeignKey("CoverageId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Vehicle", "Vehicle") + .WithMany("VehicleCoverages") + .HasForeignKey("VehicleId") + .IsRequired(); + + b.Navigation("Coverage"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyThirdPartyAPI.Models.VehicleDriver", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Driver", "Driver") + .WithMany("VehicleDrivers") + .HasForeignKey("DriverId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Vehicle", "Vehicle") + .WithMany("VehicleDrivers") + .HasForeignKey("VehicleId") + .IsRequired(); + + b.Navigation("Driver"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Coverage", b => + { + b.Navigation("PolicyCoverages"); + + b.Navigation("VehicleCoverages"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.Navigation("VehicleDrivers"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy", b => + { + b.Navigation("Drivers"); + + b.Navigation("PolicyCoverages"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.Navigation("VehicleCoverages"); + + b.Navigation("VehicleDrivers"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116080212_v5.cs b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116080212_v5.cs new file mode 100644 index 00000000..ff8b5d5c --- /dev/null +++ b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/20240116080212_v5.cs @@ -0,0 +1,19 @@ +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace YCompanyThirdPartyAPI.Migrations +{ + public partial class v5 : Migration + { + protected override void Up(MigrationBuilder migrationBuilder) + { + + } + + protected override void Down(MigrationBuilder migrationBuilder) + { + + } + } +} diff --git a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/InsuranceContextModelSnapshot.cs b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/InsuranceContextModelSnapshot.cs index c253fae0..d057deca 100644 --- a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/InsuranceContextModelSnapshot.cs +++ b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Migrations/InsuranceContextModelSnapshot.cs @@ -1,383 +1,383 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Metadata; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using YCompanyPaymentsAPI.Data; - -#nullable disable - -namespace YCompanyThirdPartyAPI.Migrations -{ - [DbContext(typeof(InsuranceContext))] - partial class InsuranceContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder - .HasAnnotation("ProductVersion", "7.0.4") - .HasAnnotation("Relational:MaxIdentifierLength", 128); - - SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Coverage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Code") - .HasColumnType("nvarchar(max)"); - - b.Property("CoverageGroup") - .HasColumnType("nvarchar(max)"); - - b.Property("CoverageName") - .HasColumnType("nvarchar(max)"); - - b.Property("IsPolicyCoverage") - .HasColumnType("bit"); - - b.Property("IsVehicleCoverage") - .HasColumnType("bit"); - - b.HasKey("Id"); - - b.ToTable("Coverage"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Active") - .HasColumnType("bit"); - - b.Property("CreatedDate") - .HasColumnType("datetime2"); - - b.Property("DoB") - .HasColumnType("datetime2"); - - b.Property("EmailAddress") - .HasColumnType("nvarchar(max)"); - - b.Property("FirstName") - .HasColumnType("nvarchar(max)"); - - b.Property("IsPrimaryPolicyHolder") - .HasColumnType("bit"); - - b.Property("LastName") - .HasColumnType("nvarchar(max)"); - - b.Property("LicenseIssuedDate") - .HasColumnType("datetime2"); - - b.Property("LicenseIssuedState") - .HasColumnType("nvarchar(max)"); - - b.Property("LicenseNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("PhoneNumber") - .HasColumnType("nvarchar(max)"); - - b.Property("PolicyId") - .HasColumnType("int"); - - b.Property("RelationWithPrimaryPolicyHolder") - .HasColumnType("nvarchar(max)"); - - b.HasKey("Id"); - - b.HasIndex("PolicyId"); - - b.ToTable("Driver"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Active") - .HasColumnType("bit"); - - b.Property("AdditionalInfo") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("CreatedDate") - .HasColumnType("datetime2"); - - b.Property("PaymentOption") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("PolicyEffectiveDate") - .HasColumnType("datetime2"); - - b.Property("PolicyExpirationDate") - .HasColumnType("datetime2"); - - b.Property("PolicyName") - .IsRequired() - .HasColumnType("nvarchar(max)"); - - b.Property("PolicyNumber") - .HasColumnType("int"); - - b.Property("TotalAmount") - .HasColumnType("float"); - - b.HasKey("Id"); - - b.ToTable("Policies"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy_Coverage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Active") - .HasColumnType("bit"); - - b.Property("CoverageId") - .HasColumnType("int"); - - b.Property("CreatedDate") - .HasColumnType("datetime2"); - - b.Property("PolicyId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("CoverageId"); - - b.HasIndex("PolicyId"); - - b.ToTable("Policy_Coverage"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Active") - .HasColumnType("bit"); - - b.Property("Color") - .HasColumnType("nvarchar(max)"); - - b.Property("Model") - .HasColumnType("nvarchar(max)"); - - b.Property("PolicyId") - .HasColumnType("int"); - - b.Property("VehicleNumberPlate") - .HasColumnType("nvarchar(max)"); - - b.Property("VehicleYear") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("PolicyId") - .IsUnique(); - - b.ToTable("Vehicles"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle_Coverage", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Active") - .HasColumnType("bit"); - - b.Property("CoverageId") - .HasColumnType("int"); - - b.Property("CreatedDate") - .HasColumnType("datetime2"); - - b.Property("VehicleId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("CoverageId"); - - b.HasIndex("VehicleId"); - - b.ToTable("Vehicle_Coverage"); - }); - - modelBuilder.Entity("YCompanyThirdPartyAPI.Models.Vehicle_Driver", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("int"); - - SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id")); - - b.Property("Active") - .HasColumnType("bit"); - - b.Property("CreatedDate") - .HasColumnType("datetime2"); - - b.Property("DriveForBusiness") - .HasColumnType("nvarchar(max)"); - - b.Property("DriverId") - .HasColumnType("int"); - - b.Property("EverydayMileage") - .HasColumnType("real"); - - b.Property("IsPrimaryDriver") - .HasColumnType("bit"); - - b.Property("VehicleId") - .HasColumnType("int"); - - b.HasKey("Id"); - - b.HasIndex("DriverId"); - - b.HasIndex("VehicleId"); - - b.ToTable("Vehicle_Driver"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => - { - b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") - .WithMany("Drivers") - .HasForeignKey("PolicyId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Policy"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy_Coverage", b => - { - b.HasOne("YCompanyPaymentsAPI.Models.Coverage", "Coverage") - .WithMany("PolicyCoverages") - .HasForeignKey("CoverageId") - .IsRequired(); - - b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") - .WithMany("PolicyCoverages") - .HasForeignKey("PolicyId") - .IsRequired(); - - b.Navigation("Coverage"); - - b.Navigation("Policy"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => - { - b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") - .WithOne("Vehicle") - .HasForeignKey("YCompanyPaymentsAPI.Models.Vehicle", "PolicyId") - .OnDelete(DeleteBehavior.Cascade) - .IsRequired(); - - b.Navigation("Policy"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle_Coverage", b => - { - b.HasOne("YCompanyPaymentsAPI.Models.Coverage", "Coverage") - .WithMany("VehicleCoverages") - .HasForeignKey("CoverageId") - .IsRequired(); - - b.HasOne("YCompanyPaymentsAPI.Models.Vehicle", "Vehicle") - .WithMany("VehicleCoverages") - .HasForeignKey("VehicleId") - .IsRequired(); - - b.Navigation("Coverage"); - - b.Navigation("Vehicle"); - }); - - modelBuilder.Entity("YCompanyThirdPartyAPI.Models.Vehicle_Driver", b => - { - b.HasOne("YCompanyPaymentsAPI.Models.Driver", "Driver") - .WithMany("VehicleDrivers") - .HasForeignKey("DriverId") - .IsRequired(); - - b.HasOne("YCompanyPaymentsAPI.Models.Vehicle", "Vehicle") - .WithMany("VehicleDrivers") - .HasForeignKey("VehicleId") - .IsRequired(); - - b.Navigation("Driver"); - - b.Navigation("Vehicle"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Coverage", b => - { - b.Navigation("PolicyCoverages"); - - b.Navigation("VehicleCoverages"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => - { - b.Navigation("VehicleDrivers"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy", b => - { - b.Navigation("Drivers"); - - b.Navigation("PolicyCoverages"); - - b.Navigation("Vehicle"); - }); - - modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => - { - b.Navigation("VehicleCoverages"); - - b.Navigation("VehicleDrivers"); - }); -#pragma warning restore 612, 618 - } - } -} +// +using System; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Metadata; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; +using YCompanyPaymentsAPI.Data; + +#nullable disable + +namespace YCompanyThirdPartyAPI.Migrations +{ + [DbContext(typeof(InsuranceContext))] + partial class InsuranceContextModelSnapshot : ModelSnapshot + { + protected override void BuildModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "6.0.14") + .HasAnnotation("Relational:MaxIdentifierLength", 128); + + SqlServerModelBuilderExtensions.UseIdentityColumns(modelBuilder, 1L, 1); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Coverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Code") + .HasColumnType("nvarchar(max)"); + + b.Property("CoverageGroup") + .HasColumnType("nvarchar(max)"); + + b.Property("CoverageName") + .HasColumnType("nvarchar(max)"); + + b.Property("IsPolicyCoverage") + .HasColumnType("bit"); + + b.Property("IsVehicleCoverage") + .HasColumnType("bit"); + + b.HasKey("Id"); + + b.ToTable("Coverage"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("DoB") + .HasColumnType("datetime2"); + + b.Property("EmailAddress") + .HasColumnType("nvarchar(max)"); + + b.Property("FirstName") + .HasColumnType("nvarchar(max)"); + + b.Property("IsPrimaryPolicyHolder") + .HasColumnType("bit"); + + b.Property("LastName") + .HasColumnType("nvarchar(max)"); + + b.Property("LicenseIssuedDate") + .HasColumnType("datetime2"); + + b.Property("LicenseIssuedState") + .HasColumnType("nvarchar(max)"); + + b.Property("LicenseNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("PhoneNumber") + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.Property("RelationWithPrimaryPolicyHolder") + .HasColumnType("nvarchar(max)"); + + b.HasKey("Id"); + + b.HasIndex("PolicyId"); + + b.ToTable("Driver"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("AdditionalInfo") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("PaymentOption") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyEffectiveDate") + .HasColumnType("datetime2"); + + b.Property("PolicyExpirationDate") + .HasColumnType("datetime2"); + + b.Property("PolicyName") + .IsRequired() + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyNumber") + .HasColumnType("int"); + + b.Property("TotalAmount") + .HasColumnType("float"); + + b.HasKey("Id"); + + b.ToTable("Policies"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.PolicyCoverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CoverageId") + .HasColumnType("int"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CoverageId"); + + b.HasIndex("PolicyId"); + + b.ToTable("PolicyCoverage"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("Color") + .HasColumnType("nvarchar(max)"); + + b.Property("Model") + .HasColumnType("nvarchar(max)"); + + b.Property("PolicyId") + .HasColumnType("int"); + + b.Property("VehicleNumberPlate") + .HasColumnType("nvarchar(max)"); + + b.Property("VehicleYear") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("PolicyId") + .IsUnique(); + + b.ToTable("Vehicles"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.VehicleCoverage", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CoverageId") + .HasColumnType("int"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("VehicleId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("CoverageId"); + + b.HasIndex("VehicleId"); + + b.ToTable("VehicleCoverage"); + }); + + modelBuilder.Entity("YCompanyThirdPartyAPI.Models.VehicleDriver", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("int"); + + SqlServerPropertyBuilderExtensions.UseIdentityColumn(b.Property("Id"), 1L, 1); + + b.Property("Active") + .HasColumnType("bit"); + + b.Property("CreatedDate") + .HasColumnType("datetime2"); + + b.Property("DriveForBusiness") + .HasColumnType("nvarchar(max)"); + + b.Property("DriverId") + .HasColumnType("int"); + + b.Property("EverydayMileage") + .HasColumnType("real"); + + b.Property("IsPrimaryDriver") + .HasColumnType("bit"); + + b.Property("VehicleId") + .HasColumnType("int"); + + b.HasKey("Id"); + + b.HasIndex("DriverId"); + + b.HasIndex("VehicleId"); + + b.ToTable("VehicleDriver"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithMany("Drivers") + .HasForeignKey("PolicyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.PolicyCoverage", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Coverage", "Coverage") + .WithMany("PolicyCoverages") + .HasForeignKey("CoverageId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithMany("PolicyCoverages") + .HasForeignKey("PolicyId") + .IsRequired(); + + b.Navigation("Coverage"); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Policy", "Policy") + .WithOne("Vehicle") + .HasForeignKey("YCompanyPaymentsAPI.Models.Vehicle", "PolicyId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Policy"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.VehicleCoverage", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Coverage", "Coverage") + .WithMany("VehicleCoverages") + .HasForeignKey("CoverageId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Vehicle", "Vehicle") + .WithMany("VehicleCoverages") + .HasForeignKey("VehicleId") + .IsRequired(); + + b.Navigation("Coverage"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyThirdPartyAPI.Models.VehicleDriver", b => + { + b.HasOne("YCompanyPaymentsAPI.Models.Driver", "Driver") + .WithMany("VehicleDrivers") + .HasForeignKey("DriverId") + .IsRequired(); + + b.HasOne("YCompanyPaymentsAPI.Models.Vehicle", "Vehicle") + .WithMany("VehicleDrivers") + .HasForeignKey("VehicleId") + .IsRequired(); + + b.Navigation("Driver"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Coverage", b => + { + b.Navigation("PolicyCoverages"); + + b.Navigation("VehicleCoverages"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Driver", b => + { + b.Navigation("VehicleDrivers"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Policy", b => + { + b.Navigation("Drivers"); + + b.Navigation("PolicyCoverages"); + + b.Navigation("Vehicle"); + }); + + modelBuilder.Entity("YCompanyPaymentsAPI.Models.Vehicle", b => + { + b.Navigation("VehicleCoverages"); + + b.Navigation("VehicleDrivers"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Program.cs b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Program.cs index 8a4b1154..e1fbad9e 100644 --- a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Program.cs +++ b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/Program.cs @@ -3,7 +3,11 @@ using Microsoft.OpenApi.Models; using System.Reflection; using YCompanyPaymentsAPI.Data; - + +using YCompany.CustomLogging; +using Microsoft.Extensions.Options; +using YCompany.Configurations; + var builder = WebApplication.CreateBuilder(args); // Add services to the container. @@ -47,6 +51,12 @@ }); }); + + +//using IHost host = builder.Build(); + + +builder.Services.AddSingleton(provider => new FileLoggerProvider(@"C:\Users\nitesh01\Downloads\YCompanydata.txt.txt")); // Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(swaggerGenOptions => @@ -82,6 +92,8 @@ var app = builder.Build(); +SecurityMetadata options = app.Services.GetRequiredService>().Value; + // Configure the HTTP request pipeline. if (app.Environment.IsDevelopment()) { diff --git a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/YCompanyThirdPartyAPI.csproj b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/YCompanyThirdPartyAPI.csproj index 8ab27f52..2fb4f2e2 100644 --- a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/YCompanyThirdPartyAPI.csproj +++ b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/YCompanyThirdPartyAPI.csproj @@ -8,17 +8,23 @@ - - + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + diff --git a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/appsettings.json b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/appsettings.json index 7c640a45..95175e30 100644 --- a/ThirdPartyAndSeed/YCompanyThirdPartyAPI/appsettings.json +++ b/ThirdPartyAndSeed/YCompanyThirdPartyAPI/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "DefaultConnection": "Server=localhost\\MSSQLSERVER02;Database=ycompany;Trusted_Connection=True;TrustServerCertificate=True;" + "DefaultConnection": "Server=IN-5F1D5S3;Database=ycompany;Trusted_Connection=True;TrustServerCertificate=True;" }, "Logging": { "LogLevel": { diff --git a/YCompany.Configurations/CustomSetting.json b/YCompany.Configurations/CustomSetting.json new file mode 100644 index 00000000..077a9429 --- /dev/null +++ b/YCompany.Configurations/CustomSetting.json @@ -0,0 +1,7 @@ +{ + "SecurityMetadata" : { + "ApiKey": "apikeyFromCustomSetting", + "ApiSecret": "ApiSecretFromCustomSetting" + } + +} diff --git a/YCompany.Configurations/SecretManagerConfigurationExtensions.cs b/YCompany.Configurations/SecretManagerConfigurationExtensions.cs new file mode 100644 index 00000000..8e764330 --- /dev/null +++ b/YCompany.Configurations/SecretManagerConfigurationExtensions.cs @@ -0,0 +1,16 @@ +using Microsoft.Extensions.Configuration; +using System; +using System.Collections.Generic; +using System.Text; + +namespace YCompany.Configurations +{ + public static class SecretManagerConfigurationExtensions + { + public static IConfigurationBuilder AddSecurityConfiguration + (this IConfigurationBuilder builder) + { + return builder.Add(new SecretManagerConfigurationSource()); + } + } +} diff --git a/YCompany.Configurations/SecretManagerConfigurationProvider.cs b/YCompany.Configurations/SecretManagerConfigurationProvider.cs index 9288b67a..a2705596 100644 --- a/YCompany.Configurations/SecretManagerConfigurationProvider.cs +++ b/YCompany.Configurations/SecretManagerConfigurationProvider.cs @@ -1,9 +1,31 @@ -using System; - +using Microsoft.Extensions.Configuration; +using System.Collections.Generic; +using System.IO; +using System.Text.Json; + namespace YCompany.Configurations { - public class SecretManagerConfigurationProvider + public class SecretManagerConfigurationProvider: ConfigurationProvider { + public override void Load() + { + var text = File.ReadAllText("C:\\Users\\nitesh01\\source\\repos\\InsuranceClaimPortal\\YCompany.Configurations\\CustomSetting.json"); + var options = new JsonSerializerOptions + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase + }; + var content = JsonSerializer.Deserialize(text, options); + + if (content != null) + { + Data = new Dictionary + { + { "ApiKey", content.ApiKey }, + { "ApiSecret", content.ApiSecret } + }; + } + + } } } diff --git a/YCompany.Configurations/SecretManagerConfigurationSource.cs b/YCompany.Configurations/SecretManagerConfigurationSource.cs new file mode 100644 index 00000000..97357928 --- /dev/null +++ b/YCompany.Configurations/SecretManagerConfigurationSource.cs @@ -0,0 +1,15 @@ +using Microsoft.Extensions.Configuration; +using System; +using System.Collections.Generic; +using System.Text; + +namespace YCompany.Configurations +{ + internal class SecretManagerConfigurationSource : IConfigurationSource + { + public IConfigurationProvider Build(IConfigurationBuilder builder) + { + return new SecretManagerConfigurationProvider(); + } + } +} diff --git a/YCompany.Configurations/SecurityMetadata.cs b/YCompany.Configurations/SecurityMetadata.cs new file mode 100644 index 00000000..efcb5bc7 --- /dev/null +++ b/YCompany.Configurations/SecurityMetadata.cs @@ -0,0 +1,8 @@ +namespace YCompany.Configurations +{ + public class SecurityMetadata + { + public string? ApiKey { get; set; } = null!; + public string? ApiSecret { get; set; } = null!; + } +} diff --git a/YCompany.Configurations/YCompany.Configurations.csproj b/YCompany.Configurations/YCompany.Configurations.csproj index b4b43f4c..54558ae5 100644 --- a/YCompany.Configurations/YCompany.Configurations.csproj +++ b/YCompany.Configurations/YCompany.Configurations.csproj @@ -3,6 +3,24 @@ netstandard2.1 enable + 05b6e7f4-852d-4fa7-8dc7-db70b10db3f7 + + + + + + + PreserveNewest + true + PreserveNewest + + + + + + + + diff --git a/YCompanyWebApplication/Pages/Api.cshtml.cs b/YCompanyWebApplication/Pages/Api.cshtml.cs index 359b33c8..9ed56c86 100644 --- a/YCompanyWebApplication/Pages/Api.cshtml.cs +++ b/YCompanyWebApplication/Pages/Api.cshtml.cs @@ -1,38 +1,52 @@ -using Microsoft.AspNetCore.Authentication; -using Microsoft.AspNetCore.Authorization; -using Microsoft.AspNetCore.Mvc.RazorPages; - -namespace YCompanyWebApplication.Pages -{ - [Authorize] - public class ApiModel : PageModel - { - public string Data { get; set; } - - private IHttpClientFactory HttpClientFactory { get; } - - private IConfiguration _configuration; - - public ApiModel(IHttpClientFactory httpClientFactory, IConfiguration configuration) - { - HttpClientFactory = httpClientFactory; - _configuration = configuration; - Data = string.Empty; - } - public async Task OnGet() - { - //using var httpClient = HttpClientFactory.CreateClient("PaymentsAPI"); - using var httpClient = HttpClientFactory.CreateClient("ThirdPartyAPI"); - - - // get the access token from the cookie and add it to the default request headers. the save token = true is helpful here as we have the token - - //httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", await HttpContext.GetTokenAsync("access_token")); - //Data = await httpClient.GetStringAsync("/WeatherForecast"); - - httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", await HttpContext.GetTokenAsync("access_token")); - Data = await httpClient.GetStringAsync("/ThirdParty"); - - } - } -} +using Microsoft.AspNetCore.Authentication; +using Microsoft.AspNetCore.Authorization; +using Microsoft.AspNetCore.Mvc.RazorPages; + +namespace YCompanyWebApplication.Pages +{ + [Authorize] + public class ApiModel : PageModel + { + public string Data { get; set; } + + private IHttpClientFactory HttpClientFactory { get; } + + private readonly IConfiguration _configuration; + private readonly ILogger _logger; + + public ApiModel(IHttpClientFactory httpClientFactory, IConfiguration configuration, ILogger logger) + { + HttpClientFactory = httpClientFactory; + _configuration = configuration; + Data = string.Empty; + _logger = logger; + } + public async Task OnGet() + { + + try + { + // Your existing HTTP request code here + //using var httpClient = HttpClientFactory.CreateClient("PaymentsAPI"); + using var httpClient = HttpClientFactory.CreateClient("ThirdPartyAPI"); + + + // get the access token from the cookie and add it to the default request headers. the save token = true is helpful here as we have the token + + //httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", await HttpContext.GetTokenAsync("access_token")); + //Data = await httpClient.GetStringAsync("/WeatherForecast"); + + httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", await HttpContext.GetTokenAsync("access_token")); + Data = await httpClient.GetStringAsync("/ThirdParty"); + } + catch (Exception ex) + { + // Log or handle the exception appropriately + // For debugging purposes, you can also inspect 'ex.Message', 'ex.InnerException', and additional details from the HttpResponseMessage + _logger.LogError(ex,ex.Message); + } + + + } + } +} diff --git a/YCompanyWebApplication/Program.cs b/YCompanyWebApplication/Program.cs index 065bb71f..c616ee57 100644 --- a/YCompanyWebApplication/Program.cs +++ b/YCompanyWebApplication/Program.cs @@ -1,61 +1,77 @@ -using Microsoft.AspNetCore.Authentication.Cookies; -using Microsoft.AspNetCore.Authentication.OpenIdConnect; - -var builder = WebApplication.CreateBuilder(args); - -/*builder.Services.AddHttpClient("PaymentsAPI", httpClient => -{ - httpClient.BaseAddress = new Uri(builder.Configuration["API:PaymentAPI"]); -}); -*/ -builder.Services.AddHttpClient("ThirdPartyAPI", httpClient => -{ - httpClient.BaseAddress = new Uri(builder.Configuration["API:ThirdPartyAPI"]); -}); - -builder.Services.AddAuthentication(authenticationOptions => -{ - authenticationOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; - authenticationOptions.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme; - -}) -.AddCookie() -.AddOpenIdConnect(openIdConnectOptions => -{ - openIdConnectOptions.Authority = builder.Configuration["Authentication:Authority"]; - openIdConnectOptions.ClientId = builder.Configuration["Authentication:ClientId"]; - openIdConnectOptions.ClientSecret = builder.Configuration["Authentication:ClientSecret"]; - openIdConnectOptions.GetClaimsFromUserInfoEndpoint = true; // get user details - openIdConnectOptions.ResponseType = "code"; - openIdConnectOptions.Scope.Add("https://ycompany.com/thirdparty"); - openIdConnectOptions.SaveTokens = true; -}); - -builder.Services.AddAuthorization(); - -builder.Services.AddHttpClient(); - -// Add services to the container. -builder.Services.AddRazorPages(); - -var app = builder.Build(); - -// Configure the HTTP request pipeline. -if (!app.Environment.IsDevelopment()) -{ - app.UseExceptionHandler("/Error"); - // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. - app.UseHsts(); -} - -app.UseHttpsRedirection(); -app.UseStaticFiles(); - -app.UseRouting(); -app.UseAuthentication(); - -app.UseAuthorization(); - -app.MapRazorPages(); - -app.Run(); +using Microsoft.AspNetCore.Authentication.Cookies; +using Microsoft.AspNetCore.Authentication.OpenIdConnect; +using Microsoft.EntityFrameworkCore; +using System.Reflection; +using YCompany.Claims.Logging; +using YCompanyPaymentsAPI.Data; + + +var builder = WebApplication.CreateBuilder(args); + +builder.Services.AddDbContext(options => + options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection"))); + + + +/*builder.Services.AddHttpClient("PaymentsAPI", httpClient => +{ + httpClient.BaseAddress = new Uri(builder.Configuration["API:PaymentAPI"]); +}); +*/ + +builder.Services.AddHttpClient("ThirdPartyAPI", httpClient => +{ + httpClient.BaseAddress = new Uri(builder.Configuration["API:ThirdPartyAPI"]); +}); + +builder.Services.AddAuthentication(authenticationOptions => +{ + authenticationOptions.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; + authenticationOptions.DefaultChallengeScheme = OpenIdConnectDefaults.AuthenticationScheme; + +}) +.AddCookie() +.AddOpenIdConnect(openIdConnectOptions => +{ + openIdConnectOptions.Authority = builder.Configuration["Authentication:Authority"]; + openIdConnectOptions.ClientId = builder.Configuration["Authentication:ClientId"]; + openIdConnectOptions.ClientSecret = builder.Configuration["Authentication:ClientSecret"]; + openIdConnectOptions.GetClaimsFromUserInfoEndpoint = true; // get user details + openIdConnectOptions.ResponseType = "code"; + openIdConnectOptions.Scope.Add("https://ycompany.com/thirdparty"); + openIdConnectOptions.SaveTokens = true; +}); +builder.Services.AddAuthorization(); + +builder.Services.AddHttpClient(); + +// Add services to the container. +builder.Services.AddRazorPages(); +builder.Logging.ClearProviders(); + +var app = builder.Build(); + + +// Configure the HTTP request pipeline. +if (!app.Environment.IsDevelopment()) +{ + app.UseExceptionHandler("/Error"); + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); +} + +app.UseHttpsRedirection(); +app.UseStaticFiles(); + +app.UseRouting(); +app.UseAuthentication(); + +app.UseAuthorization(); + +app.MapRazorPages(); + +app.MapControllerRoute( + name: "default", + pattern: "{controller=Home}/{action=Index}/{id?}"); + +app.Run(); diff --git a/YCompanyWebApplication/YCompanyWebApplication.csproj b/YCompanyWebApplication/YCompanyWebApplication.csproj index fed560af..44795c79 100644 --- a/YCompanyWebApplication/YCompanyWebApplication.csproj +++ b/YCompanyWebApplication/YCompanyWebApplication.csproj @@ -8,9 +8,20 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + diff --git a/YCompanyWebApplication/YCompanyWebApplication.csproj.user b/YCompanyWebApplication/YCompanyWebApplication.csproj.user index 1607fbca..32f7b1de 100644 --- a/YCompanyWebApplication/YCompanyWebApplication.csproj.user +++ b/YCompanyWebApplication/YCompanyWebApplication.csproj.user @@ -1,7 +1,11 @@ - - - - RazorPageScaffolder - root/Common/RazorPage - + + + + RazorPageScaffolder + root/Common/RazorPage + YCompanyWebApplication + + + ProjectDebugger + \ No newline at end of file diff --git a/YCompanyWebApplication/appsettings.json b/YCompanyWebApplication/appsettings.json index 6fff1510..0a21d59f 100644 --- a/YCompanyWebApplication/appsettings.json +++ b/YCompanyWebApplication/appsettings.json @@ -1,6 +1,6 @@ { "ConnectionStrings": { - "DefaultConnection": "Server=localhost\\MSSQLSERVER02;Database=ycompany;Trusted_Connection=True;" + "DefaultConnection": "Server=IN-5F1D5S3;Database=ycompany;Trusted_Connection=false;TrustServerCertificate=True;" }, "Logging": { "LogLevel": { @@ -17,5 +17,6 @@ "API": { "PaymentAPI": "https://localhost:7001", "ThirdPartyAPI": "https://localhost:7143" + } }