diff --git a/Controllers/PeriodExamController.cs b/Controllers/PeriodExamController.cs index 9808c56..98f8dd9 100644 --- a/Controllers/PeriodExamController.cs +++ b/Controllers/PeriodExamController.cs @@ -119,7 +119,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers /// เมื่อทำการอ่านข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบสำเร็จ /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน - [HttpPost] + [HttpPost, DisableRequestSizeLimit] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] @@ -127,7 +127,13 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers { try { - await _periodExamService.CreateAsync(item); + if (Request.Form.Files == null || Request.Form.Files.Count == 0) + { + return Error(GlobalMessages.NoFileToUpload); + } + + var files = Request.Form.Files; + await _periodExamService.CreateAsync(item, files); return Success(); } @@ -146,7 +152,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers /// เมื่อทำการอ่านข้อมูลรอบการสมัครสอบ และ คนสมัครสอบในรอบสำเร็จ /// ไม่ได้ Login เข้าระบบ /// เมื่อเกิดข้อผิดพลาดในการทำงาน - [HttpPut("{examId:length(36)}")] + [HttpPut("{examId:length(36)}"), DisableRequestSizeLimit] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status401Unauthorized)] [ProducesResponseType(StatusCodes.Status500InternalServerError)] @@ -154,7 +160,14 @@ namespace BMA.EHR.Recurit.Exam.Service.Controllers { try { - await _periodExamService.UpdateAsync(examId, item); + if (Request.Form.Files == null || Request.Form.Files.Count == 0) + { + return Error(GlobalMessages.NoFileToUpload); + } + + var files = Request.Form.Files; + + await _periodExamService.UpdateAsync(examId, item, files); return Success(); } diff --git a/Data/ApplicationDbContext.cs b/Data/ApplicationDbContext.cs index 9546807..59a1d59 100644 --- a/Data/ApplicationDbContext.cs +++ b/Data/ApplicationDbContext.cs @@ -40,8 +40,11 @@ namespace BMA.EHR.Recurit.Exam.Service.Data public DbSet Documents { get; set; } public DbSet CandidateDocuments { get; set; } + public DbSet PositionExams { get; set; } + public DbSet BankExams { get; set; } + public DbSet PeriodExamDocuments { get; set; } } } diff --git a/Data/Migrations/ApplicationDbContextModelSnapshot.cs b/Data/Migrations/ApplicationDbContextModelSnapshot.cs index b3c3f4b..22a1c4f 100644 --- a/Data/Migrations/ApplicationDbContextModelSnapshot.cs +++ b/Data/Migrations/ApplicationDbContextModelSnapshot.cs @@ -972,6 +972,68 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations b.ToTable("PeriodExams"); }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExamDocument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DocumentId") + .HasColumnType("char(36)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PeriodExamId"); + + b.ToTable("PeriodExamDocuments"); + }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PositionExam", b => { b.Property("Id") @@ -1553,6 +1615,25 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations b.Navigation("EducationLevel"); }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExamDocument", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany("PeriodExamDocuments") + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("PeriodExam"); + }); + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PositionExam", b => { b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") @@ -1584,6 +1665,8 @@ namespace BMA.EHR.Recurit.Exam.Service.Data.Migrations b.Navigation("Candidate"); + b.Navigation("PeriodExamDocuments"); + b.Navigation("PositionExam"); }); diff --git a/Migrations/20230407034739_Update table exam add document.Designer.cs b/Migrations/20230407034739_Update table exam add document.Designer.cs new file mode 100644 index 0000000..ea526b3 --- /dev/null +++ b/Migrations/20230407034739_Update table exam add document.Designer.cs @@ -0,0 +1,1683 @@ +// +using System; +using BMA.EHR.Recurit.Exam.Service.Data; +using Microsoft.EntityFrameworkCore; +using Microsoft.EntityFrameworkCore.Infrastructure; +using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Storage.ValueConversion; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + [DbContext(typeof(ApplicationDbContext))] + [Migration("20230407034739_Update table exam add document")] + partial class Updatetableexamadddocument + { + /// + protected override void BuildTargetModel(ModelBuilder modelBuilder) + { +#pragma warning disable 612, 618 + modelBuilder + .HasAnnotation("ProductVersion", "7.0.4") + .HasAnnotation("Relational:MaxIdentifierLength", 64); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.BankExam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AccountName") + .HasColumnType("longtext") + .HasComment("ชื่อบัญชี"); + + b.Property("AccountNumber") + .HasColumnType("longtext") + .HasComment("เลขบัญชี"); + + b.Property("BankName") + .HasColumnType("longtext") + .HasComment("ธนาคาร"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("PeriodExamId"); + + b.ToTable("BankExams"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CitizenDate") + .HasColumnType("datetime(6)") + .HasComment("วันที่ออกบัตร"); + + b.Property("CitizenDistrictId") + .HasColumnType("char(36)"); + + b.Property("CitizenId") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("เลขประจำตัวประชาชน"); + + b.Property("CitizenProvinceId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("CurrentAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ปัจจุบัน"); + + b.Property("CurrentDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentProvinceId") + .HasColumnType("char(36)"); + + b.Property("CurrentSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("CurrentZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ปัจจุบัน"); + + b.Property("DateOfBirth") + .HasMaxLength(40) + .HasColumnType("datetime(6)") + .HasComment("วันเกิด"); + + b.Property("Email") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล"); + + b.Property("ExamIdenNumber") + .HasColumnType("longtext") + .HasComment("เลขประจำตัวสอบ"); + + b.Property("FatherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงบิดา"); + + b.Property("FatherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลบิดา"); + + b.Property("FatherNationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติบิดา"); + + b.Property("FatherOccupation") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อาชีพบิดา"); + + b.Property("FatherPrefixId") + .HasColumnType("char(36)"); + + b.Property("FirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ชื่อจริง"); + + b.Property("Knowledge") + .HasColumnType("longtext") + .HasComment("ความสามารถพิเศษ"); + + b.Property("LastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(2) + .HasComment("นามสกุล"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Marry") + .HasColumnType("tinyint(1)") + .HasComment("คู่สมรส"); + + b.Property("MarryFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงคู่สมรส"); + + b.Property("MarryLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลคู่สมรส"); + + b.Property("MarryNationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติคู่สมรส"); + + b.Property("MarryOccupation") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อาชีพคู่สมรส"); + + b.Property("MarryPrefixId") + .HasColumnType("char(36)"); + + b.Property("MobilePhone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์มือถือ"); + + b.Property("MotherFirstName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("ชื่อจริงมารดา"); + + b.Property("MotherLastName") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("นามสกุลมารดา"); + + b.Property("MotherNationality") + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasComment("สัญชาติมารดา"); + + b.Property("MotherOccupation") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อาชีพมารดา"); + + b.Property("MotherPrefixId") + .HasColumnType("char(36)"); + + b.Property("Nationality") + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(3) + .HasComment("สัญชาติ"); + + b.Property("OccupationCompany") + .HasColumnType("longtext") + .HasComment("สำนัก/บริษัท บริษัท"); + + b.Property("OccupationDepartment") + .HasColumnType("longtext") + .HasComment("กอง/ฝ่าย บริษัท"); + + b.Property("OccupationEmail") + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasComment("อีเมล บริษัท"); + + b.Property("OccupationPosition") + .HasColumnType("longtext") + .HasComment("ตำแหน่งอาชีพ"); + + b.Property("OccupationTelephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์ บริษัท"); + + b.Property("OccupationType") + .HasColumnType("longtext") + .HasComment("ประเภทอาชีพที่ทำงานมาก่อน"); + + b.Property("PaymentImgId") + .HasColumnType("char(36)"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.Property("Point") + .HasColumnType("longtext") + .HasComment("คะแนน"); + + b.Property("PositionExamId") + .HasColumnType("char(36)"); + + b.Property("PrefixId") + .HasColumnType("char(36)"); + + b.Property("ProfileImgId") + .HasColumnType("char(36)"); + + b.Property("RegistAddress") + .HasColumnType("longtext") + .HasComment("ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistProvinceId") + .HasColumnType("char(36)"); + + b.Property("RegistSame") + .HasColumnType("tinyint(1)") + .HasComment("ที่อยู่ปัจจุบันเหมือนที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RegistSubDistrictId") + .HasColumnType("char(36)"); + + b.Property("RegistZipCode") + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasComment("รหัสไปรษณีย์ที่อยู่ตามทะเบียนบ้าน"); + + b.Property("RejectDetail") + .HasColumnType("longtext") + .HasComment("เหตุผลการไม่อนุมัติ"); + + b.Property("RelationshipId") + .HasColumnType("char(36)"); + + b.Property("SeatNumber") + .HasColumnType("longtext") + .HasComment("เลขที่นั่งสอบ"); + + b.Property("Status") + .IsRequired() + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("สถานะผู้สมัคร"); + + b.Property("Telephone") + .HasMaxLength(20) + .HasColumnType("varchar(20)") + .HasComment("โทรศัพท์"); + + b.Property("UserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasComment("User Id ผู้สมัคร"); + + b.HasKey("Id"); + + b.HasIndex("CitizenDistrictId"); + + b.HasIndex("CitizenProvinceId"); + + b.HasIndex("CurrentDistrictId"); + + b.HasIndex("CurrentProvinceId"); + + b.HasIndex("CurrentSubDistrictId"); + + b.HasIndex("FatherPrefixId"); + + b.HasIndex("MarryPrefixId"); + + b.HasIndex("MotherPrefixId"); + + b.HasIndex("PaymentImgId"); + + b.HasIndex("PeriodExamId"); + + b.HasIndex("PositionExamId"); + + b.HasIndex("PrefixId"); + + b.HasIndex("ProfileImgId"); + + b.HasIndex("RegistDistrictId"); + + b.HasIndex("RegistProvinceId"); + + b.HasIndex("RegistSubDistrictId"); + + b.HasIndex("RelationshipId"); + + b.ToTable("Candidates"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.CandidateDocument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DocumentId") + .HasColumnType("char(36)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.HasIndex("DocumentId"); + + b.ToTable("CandidateDocuments"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("สถานที่ทำงาน/ฝึกงาน"); + + b.Property("Position") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("ตำแหน่ง/ลักษณะงาน"); + + b.Property("Reason") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(6) + .HasComment("เหตุผลที่ออก"); + + b.Property("Salary") + .HasMaxLength(20) + .HasColumnType("int") + .HasColumnOrder(5) + .HasComment("เงินเดือนสุดท้ายก่อนออก"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.ToTable("Careers"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ProvinceId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("ProvinceId"); + + b.ToTable("Districts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Documents.Document", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)"); + + b.Property("CreatedDate") + .HasColumnType("datetime(6)"); + + b.Property("Detail") + .IsRequired() + .HasColumnType("text"); + + b.Property("FileName") + .IsRequired() + .HasMaxLength(255) + .HasColumnType("varchar(255)"); + + b.Property("FileSize") + .HasColumnType("int"); + + b.Property("FileType") + .IsRequired() + .HasMaxLength(128) + .HasColumnType("varchar(128)"); + + b.Property("ObjectRefId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.ToTable("Documents"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CandidateId") + .HasColumnType("char(36)"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DurationEnd") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("ระยะเวลาสิ้นสุด"); + + b.Property("DurationStart") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("ระยะเวลาเริ่ม"); + + b.Property("EducationLevelId") + .HasColumnType("char(36)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Major") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(4) + .HasComment("สาขาวิชา/วิชาเอก"); + + b.Property("Name") + .IsRequired() + .HasColumnType("longtext") + .HasColumnOrder(3) + .HasComment("ชื่อสถานศึกษา"); + + b.Property("Scores") + .HasMaxLength(10) + .HasColumnType("float") + .HasColumnOrder(6) + .HasComment("คะแนนเฉลี่ยตลอดหลักสูตร"); + + b.HasKey("Id"); + + b.HasIndex("CandidateId"); + + b.HasIndex("EducationLevelId"); + + b.ToTable("Educations"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ระดับการศึกษา"); + + b.HasKey("Id"); + + b.ToTable("EducationLevels"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("AnnouncementEndDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(6) + .HasComment("วันสิ้นสุดประกาศ"); + + b.Property("AnnouncementStartDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(5) + .HasComment("วันเริ่มประกาศ"); + + b.Property("CheckDisability") + .HasColumnType("tinyint(1)") + .HasComment("คนพิการ"); + + b.Property("CheckDocument") + .HasColumnType("tinyint(1)") + .HasComment("ตรวจสอบเอกสารหลังประกาศผลสอบ"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("Detail") + .HasColumnType("longtext") + .HasComment("รายละเอียดสมัครสอบ"); + + b.Property("Fee") + .HasColumnType("float") + .HasComment("ค่าธรรมเนียม"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(7) + .HasComment("ชื่อการสอบ"); + + b.Property("Note") + .HasColumnType("longtext") + .HasComment("หมายเหตุ"); + + b.Property("OrganizationCodeId") + .HasColumnType("char(36)") + .HasComment("Id รหัสส่วนราชการ"); + + b.Property("OrganizationCodeName") + .HasColumnType("longtext") + .HasComment("ชื่อรหัสส่วนราชการ"); + + b.Property("OrganizationId") + .HasColumnType("char(36)") + .HasComment("Id หน่วยงาน"); + + b.Property("OrganizationName") + .HasColumnType("longtext") + .HasComment("ชื่อหน่วยงาน"); + + b.Property("PaymentEndDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(4) + .HasComment("วันสิ้นสุดชำระเงิน"); + + b.Property("PaymentKrungThai") + .HasColumnType("longtext") + .HasComment("ชำระเงินผ่านกรุงไทย"); + + b.Property("PaymentStartDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(3) + .HasComment("วันเริ่มชำระเงิน"); + + b.Property("RegisterEndDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(2) + .HasComment("วันสิ้นสุดสมัครสอบ"); + + b.Property("RegisterStartDate") + .HasColumnType("datetime(6)") + .HasColumnOrder(1) + .HasComment("วันเริ่มสมัครสอบ"); + + b.Property("Round") + .HasColumnType("int") + .HasColumnOrder(8) + .HasComment("รอบการสอบ"); + + b.Property("SetSeat") + .HasColumnType("tinyint(1)") + .HasComment("เช็คอัพคะแนน"); + + b.Property("Year") + .HasColumnType("int") + .HasComment("ปีงบประมาณ"); + + b.HasKey("Id"); + + b.ToTable("PeriodExams"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExamDocument", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DocumentId") + .HasColumnType("char(36)"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.HasKey("Id"); + + b.HasIndex("DocumentId"); + + b.HasIndex("PeriodExamId"); + + b.ToTable("PeriodExamDocuments"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PositionExam", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("PeriodExamId") + .HasColumnType("char(36)"); + + b.Property("PositionId") + .HasColumnType("char(36)") + .HasComment("Id ตำแหน่ง"); + + b.Property("PositionName") + .HasColumnType("longtext") + .HasComment("ชื่อตำแหน่ง"); + + b.Property("TypeId") + .HasColumnType("longtext") + .HasComment("Id ประเภทแบบฟอร์ม"); + + b.Property("TypeName") + .HasColumnType("longtext") + .HasComment("ชื่อประเภทแบบฟอร์ม"); + + b.HasKey("Id"); + + b.HasIndex("PeriodExamId"); + + b.ToTable("PositionExams"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Prefix", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(2) + .HasComment("รายละเอียดคำนำหน้า"); + + b.HasKey("Id"); + + b.ToTable("Prefixes"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("จังหวัด"); + + b.HasKey("Id"); + + b.ToTable("Provinces"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Relationship", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(50) + .HasColumnType("varchar(50)") + .HasColumnOrder(1) + .HasComment("ชื่อความสัมพันธ์"); + + b.HasKey("Id"); + + b.ToTable("Relationships"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Religion", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(2) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(100) + .HasColumnType("varchar(100)") + .HasColumnOrder(1) + .HasComment("ศาสนา"); + + b.HasKey("Id"); + + b.ToTable("Religions"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.Property("Id") + .ValueGeneratedOnAdd() + .HasColumnType("char(36)") + .HasColumnOrder(0) + .HasComment("PrimaryKey") + .HasAnnotation("Relational:JsonPropertyName", "id"); + + b.Property("CreatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(100) + .HasComment("สร้างข้อมูลเมื่อ"); + + b.Property("CreatedFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(104) + .HasComment("ชื่อ User ที่สร้างข้อมูล"); + + b.Property("CreatedUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(101) + .HasComment("User Id ที่สร้างข้อมูล"); + + b.Property("DistrictId") + .HasColumnType("char(36)"); + + b.Property("IsActive") + .HasColumnType("tinyint(1)") + .HasColumnOrder(3) + .HasComment("สถานะการใช้งาน"); + + b.Property("LastUpdateFullName") + .IsRequired() + .HasMaxLength(200) + .HasColumnType("varchar(200)") + .HasColumnOrder(105) + .HasComment("ชื่อ User ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdateUserId") + .IsRequired() + .HasMaxLength(40) + .HasColumnType("varchar(40)") + .HasColumnOrder(103) + .HasComment("User Id ที่แก้ไขข้อมูลล่าสุด"); + + b.Property("LastUpdatedAt") + .HasColumnType("datetime(6)") + .HasColumnOrder(102) + .HasComment("แก้ไขข้อมูลล่าสุดเมื่อ"); + + b.Property("Name") + .IsRequired() + .HasMaxLength(150) + .HasColumnType("varchar(150)") + .HasColumnOrder(1) + .HasComment("เขต/อำเภอ"); + + b.Property("ZipCode") + .IsRequired() + .HasMaxLength(10) + .HasColumnType("varchar(10)") + .HasColumnOrder(2) + .HasComment("รหัสไปรษณีย์"); + + b.HasKey("Id"); + + b.HasIndex("DistrictId"); + + b.ToTable("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.BankExam", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany("BankExam") + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PeriodExam"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Candidate", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CitizenDistrict") + .WithMany() + .HasForeignKey("CitizenDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CitizenProvince") + .WithMany() + .HasForeignKey("CitizenProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "CurrentDistrict") + .WithMany() + .HasForeignKey("CurrentDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "CurrentProvince") + .WithMany() + .HasForeignKey("CurrentProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "CurrentSubDistrict") + .WithMany() + .HasForeignKey("CurrentSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "FatherPrefix") + .WithMany() + .HasForeignKey("FatherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MarryPrefix") + .WithMany() + .HasForeignKey("MarryPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "MotherPrefix") + .WithMany() + .HasForeignKey("MotherPrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Documents.Document", "PaymentImg") + .WithMany() + .HasForeignKey("PaymentImgId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany("Candidate") + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PositionExam", "PositionExam") + .WithMany() + .HasForeignKey("PositionExamId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Prefix", "Prefix") + .WithMany() + .HasForeignKey("PrefixId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Documents.Document", "ProfileImg") + .WithMany() + .HasForeignKey("ProfileImgId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "RegistDistrict") + .WithMany() + .HasForeignKey("RegistDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "RegistProvince") + .WithMany() + .HasForeignKey("RegistProvinceId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", "RegistSubDistrict") + .WithMany() + .HasForeignKey("RegistSubDistrictId"); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Relationship", "Relationship") + .WithMany() + .HasForeignKey("RelationshipId"); + + b.Navigation("CitizenDistrict"); + + b.Navigation("CitizenProvince"); + + b.Navigation("CurrentDistrict"); + + b.Navigation("CurrentProvince"); + + b.Navigation("CurrentSubDistrict"); + + b.Navigation("FatherPrefix"); + + b.Navigation("MarryPrefix"); + + b.Navigation("MotherPrefix"); + + b.Navigation("PaymentImg"); + + b.Navigation("PeriodExam"); + + b.Navigation("PositionExam"); + + b.Navigation("Prefix"); + + b.Navigation("ProfileImg"); + + b.Navigation("RegistDistrict"); + + b.Navigation("RegistProvince"); + + b.Navigation("RegistSubDistrict"); + + b.Navigation("Relationship"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.CandidateDocument", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + + b.Navigation("Document"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Career", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Province", "Province") + .WithMany("Districts") + .HasForeignKey("ProvinceId"); + + b.Navigation("Province"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Education", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Candidate", "Candidate") + .WithMany() + .HasForeignKey("CandidateId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.EducationLevel", "EducationLevel") + .WithMany() + .HasForeignKey("EducationLevelId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Candidate"); + + b.Navigation("EducationLevel"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExamDocument", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.Documents.Document", "Document") + .WithMany() + .HasForeignKey("DocumentId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany("PeriodExamDocuments") + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("Document"); + + b.Navigation("PeriodExam"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PositionExam", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", "PeriodExam") + .WithMany("PositionExam") + .HasForeignKey("PeriodExamId") + .OnDelete(DeleteBehavior.Cascade) + .IsRequired(); + + b.Navigation("PeriodExam"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.SubDistrict", b => + { + b.HasOne("BMA.EHR.Recurit.Exam.Service.Models.District", "District") + .WithMany("SubDistricts") + .HasForeignKey("DistrictId"); + + b.Navigation("District"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.District", b => + { + b.Navigation("SubDistricts"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.PeriodExam", b => + { + b.Navigation("BankExam"); + + b.Navigation("Candidate"); + + b.Navigation("PeriodExamDocuments"); + + b.Navigation("PositionExam"); + }); + + modelBuilder.Entity("BMA.EHR.Recurit.Exam.Service.Models.Province", b => + { + b.Navigation("Districts"); + }); +#pragma warning restore 612, 618 + } + } +} diff --git a/Migrations/20230407034739_Update table exam add document.cs b/Migrations/20230407034739_Update table exam add document.cs new file mode 100644 index 0000000..cfb1687 --- /dev/null +++ b/Migrations/20230407034739_Update table exam add document.cs @@ -0,0 +1,68 @@ +using System; +using Microsoft.EntityFrameworkCore.Migrations; + +#nullable disable + +namespace BMA.EHR.Recurit.Exam.Service.Migrations +{ + /// + public partial class Updatetableexamadddocument : Migration + { + /// + protected override void Up(MigrationBuilder migrationBuilder) + { + migrationBuilder.CreateTable( + name: "PeriodExamDocuments", + columns: table => new + { + Id = table.Column(type: "char(36)", nullable: false, comment: "PrimaryKey", collation: "ascii_general_ci"), + CreatedAt = table.Column(type: "datetime(6)", nullable: false, comment: "สร้างข้อมูลเมื่อ"), + CreatedUserId = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "User Id ที่สร้างข้อมูล") + .Annotation("MySql:CharSet", "utf8mb4"), + LastUpdatedAt = table.Column(type: "datetime(6)", nullable: true, comment: "แก้ไขข้อมูลล่าสุดเมื่อ"), + LastUpdateUserId = table.Column(type: "varchar(40)", maxLength: 40, nullable: false, comment: "User Id ที่แก้ไขข้อมูลล่าสุด") + .Annotation("MySql:CharSet", "utf8mb4"), + CreatedFullName = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "ชื่อ User ที่สร้างข้อมูล") + .Annotation("MySql:CharSet", "utf8mb4"), + LastUpdateFullName = table.Column(type: "varchar(200)", maxLength: 200, nullable: false, comment: "ชื่อ User ที่แก้ไขข้อมูลล่าสุด") + .Annotation("MySql:CharSet", "utf8mb4"), + PeriodExamId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci"), + DocumentId = table.Column(type: "char(36)", nullable: false, collation: "ascii_general_ci") + }, + constraints: table => + { + table.PrimaryKey("PK_PeriodExamDocuments", x => x.Id); + table.ForeignKey( + name: "FK_PeriodExamDocuments_Documents_DocumentId", + column: x => x.DocumentId, + principalTable: "Documents", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + table.ForeignKey( + name: "FK_PeriodExamDocuments_PeriodExams_PeriodExamId", + column: x => x.PeriodExamId, + principalTable: "PeriodExams", + principalColumn: "Id", + onDelete: ReferentialAction.Cascade); + }) + .Annotation("MySql:CharSet", "utf8mb4"); + + migrationBuilder.CreateIndex( + name: "IX_PeriodExamDocuments_DocumentId", + table: "PeriodExamDocuments", + column: "DocumentId"); + + migrationBuilder.CreateIndex( + name: "IX_PeriodExamDocuments_PeriodExamId", + table: "PeriodExamDocuments", + column: "PeriodExamId"); + } + + /// + protected override void Down(MigrationBuilder migrationBuilder) + { + migrationBuilder.DropTable( + name: "PeriodExamDocuments"); + } + } +} diff --git a/Models/PeriodExam.cs b/Models/PeriodExam.cs index b57396a..f43ccce 100644 --- a/Models/PeriodExam.cs +++ b/Models/PeriodExam.cs @@ -77,5 +77,8 @@ namespace BMA.EHR.Recurit.Exam.Service.Models [Comment("ช่องทางชำระเงิน")] public List BankExam { get; set; } = new List(); + + [Comment("เอกสารอื่นๆ")] + public virtual List PeriodExamDocuments { get; set; } = new(); } } diff --git a/Models/PeriodExamDocument.cs b/Models/PeriodExamDocument.cs new file mode 100644 index 0000000..e954c54 --- /dev/null +++ b/Models/PeriodExamDocument.cs @@ -0,0 +1,15 @@ +using Microsoft.EntityFrameworkCore; +using System.ComponentModel.DataAnnotations.Schema; +using System.ComponentModel.DataAnnotations; +using BMA.EHR.Recurit.Exam.Service.Models.Documents; + +namespace BMA.EHR.Recurit.Exam.Service.Models +{ + public class PeriodExamDocument : EntityBase + { + [Required, Comment("Id รอบสมัครสอบ")] + public virtual PeriodExam? PeriodExam { get; set; } + [Required, Comment("Id ไฟล์เอกสาร")] + public virtual Document? Document { get; set; } + } +} diff --git a/Request/RequestStatusRegistry.cs b/Request/RequestStatusRegistry.cs index b2fa669..7f2750c 100644 --- a/Request/RequestStatusRegistry.cs +++ b/Request/RequestStatusRegistry.cs @@ -8,6 +8,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Request public bool Consend { get; set; } public bool Position { get; set; } public bool Bank { get; set; } + public bool Payment { get; set; } public string? Status { get; set; } public PositionExam? PositionExam { get; set; } } diff --git a/Response/Document/FileListResponse.cs b/Response/Document/FileListResponse.cs index 631d0fa..5c243a7 100644 --- a/Response/Document/FileListResponse.cs +++ b/Response/Document/FileListResponse.cs @@ -4,10 +4,10 @@ { public string? Id { get; set; } - public string FileName { get; set; } = string.Empty; + public string? FileName { get; set; } = string.Empty; - public string FileType { get; set; } = string.Empty; + public string? FileType { get; set; } = string.Empty; - public int FileSize { get; set; } + public int? FileSize { get; set; } } } diff --git a/Response/PeriodExamCandidateResponseItem.cs b/Response/PeriodExamCandidateResponseItem.cs new file mode 100644 index 0000000..7088aba --- /dev/null +++ b/Response/PeriodExamCandidateResponseItem.cs @@ -0,0 +1,35 @@ + +using BMA.EHR.Recurit.Exam.Service.Responses.Document; + +namespace BMA.EHR.Recurit.Exam.Service.Response +{ + public class PeriodExamCandidateResponseItem + { + public Guid Id { get; set; } + public string? Name { get; set; } + public bool CheckDocument { get; set; } + public bool CheckDisability { get; set; } + public int? Round { get; set; } + public int? Year { get; set; } + public float? Fee { get; set; } + public DateTime RegisterStartDate { get; set; } + public DateTime RegisterEndDate { get; set; } + public DateTime PaymentStartDate { get; set; } + public DateTime PaymentEndDate { get; set; } + public DateTime AnnouncementStartDate { get; set; } + public DateTime AnnouncementEndDate { get; set; } + public Guid? OrganizationCodeId { get; set; } + public string? OrganizationCodeName { get; set; } + public Guid? OrganizationId { get; set; } + public string? OrganizationName { get; set; } + public string? PaymentKrungThai { get; set; } + public string? Detail { get; set; } + public string? Note { get; set; } + public bool IsActive { get; set; } + public bool SetSeat { get; set; } + public List Candidate { get; set; } = new List(); + public List PositionExam { get; set; } = new List(); + public List BankExam { get; set; } = new List(); + public List Documents { get; set; } = new List(); + } +} diff --git a/Services/CandidateService.cs b/Services/CandidateService.cs index c0a1f40..7189c38 100644 --- a/Services/CandidateService.cs +++ b/Services/CandidateService.cs @@ -542,6 +542,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services Status = candidate == null ? null : candidate.Status, PositionExam = candidatePosition?.PositionExam, Bank = exam.BankExam.Count() > 0, + Payment = exam.Fee > 0, Position = candidatePosition == null ? false : true }; } diff --git a/Services/PeriodExamService.cs b/Services/PeriodExamService.cs index 467a2e8..6e0ccf7 100644 --- a/Services/PeriodExamService.cs +++ b/Services/PeriodExamService.cs @@ -3,8 +3,10 @@ using System.Text.Json; using BMA.EHR.Recurit.Exam.Service.Core; using BMA.EHR.Recurit.Exam.Service.Data; using BMA.EHR.Recurit.Exam.Service.Models; +using BMA.EHR.Recurit.Exam.Service.Models.Documents; using BMA.EHR.Recurit.Exam.Service.Request; using BMA.EHR.Recurit.Exam.Service.Response; +using BMA.EHR.Recurit.Exam.Service.Responses.Document; using Microsoft.EntityFrameworkCore; using Newtonsoft.Json.Linq; using OfficeOpenXml; @@ -17,16 +19,19 @@ namespace BMA.EHR.Recurit.Exam.Service.Services private readonly ApplicationDbContext _context; private readonly IHttpContextAccessor _httpContextAccessor; + private readonly MinIOService _minioService; #endregion #region " Constructor and Destructor " public PeriodExamService(ApplicationDbContext context, - IHttpContextAccessor httpContextAccessor) + IHttpContextAccessor httpContextAccessor, + MinIOService minioService) { _context = context; _httpContextAccessor = httpContextAccessor; + _minioService = minioService; } #endregion @@ -41,61 +46,61 @@ namespace BMA.EHR.Recurit.Exam.Service.Services #region " Methods " - public async Task> GetsAsync(bool showAll = true) + public async Task> GetsAsync(bool showAll = true) { - if (showAll) - return await _context.PeriodExams.AsQueryable() - .Include(x => x.PositionExam) - .Include(x => x.BankExam) - .OrderBy(d => d.Name) - .ToListAsync(); - else - return await _context.PeriodExams.AsQueryable() - .Include(x => x.PositionExam) - .Include(x => x.BankExam) - .Where(p => p.IsActive) - .OrderBy(d => d.Name) - .Select(x => new PeriodExam + return await _context.PeriodExams.AsQueryable() + .Include(x => x.PositionExam) + .Include(x => x.BankExam) + .Where(p => p.IsActive) + .OrderBy(d => d.Name) + .Select(x => new PeriodExamCandidateResponseItem + { + AnnouncementEndDate = x.AnnouncementEndDate, + AnnouncementStartDate = x.AnnouncementStartDate, + CheckDisability = x.CheckDisability, + CheckDocument = x.CheckDocument, + Detail = x.Detail, + Fee = x.Fee, + Id = x.Id, + IsActive = x.IsActive, + Name = x.Name, + Note = x.Note, + OrganizationCodeId = x.OrganizationCodeId, + OrganizationCodeName = x.OrganizationCodeName, + OrganizationId = x.OrganizationId, + OrganizationName = x.OrganizationName, + PaymentEndDate = x.PaymentEndDate, + PaymentKrungThai = x.PaymentKrungThai, + PaymentStartDate = x.PaymentStartDate, + RegisterEndDate = x.RegisterEndDate, + RegisterStartDate = x.RegisterStartDate, + Round = x.Round, + SetSeat = x.SetSeat, + Year = x.Year, + BankExam = x.BankExam.OrderBy(o => o.CreatedAt).Select(b => new BankExam { - AnnouncementEndDate = x.AnnouncementEndDate, - AnnouncementStartDate = x.AnnouncementStartDate, - CheckDisability = x.CheckDisability, - CheckDocument = x.CheckDocument, - Detail = x.Detail, - Fee = x.Fee, - Id = x.Id, - IsActive = x.IsActive, - Name = x.Name, - Note = x.Note, - OrganizationCodeId = x.OrganizationCodeId, - OrganizationCodeName = x.OrganizationCodeName, - OrganizationId = x.OrganizationId, - OrganizationName = x.OrganizationName, - PaymentEndDate = x.PaymentEndDate, - PaymentKrungThai = x.PaymentKrungThai, - PaymentStartDate = x.PaymentStartDate, - RegisterEndDate = x.RegisterEndDate, - RegisterStartDate = x.RegisterStartDate, - Round = x.Round, - SetSeat = x.SetSeat, - Year = x.Year, - BankExam = x.BankExam.OrderBy(o => o.CreatedAt).Select(b => new BankExam - { - Id = b.Id, - AccountName = b.AccountName, - AccountNumber = b.AccountNumber, - BankName = b.BankName, - }).ToList(), - PositionExam = x.PositionExam.OrderBy(o => o.CreatedAt).Select(b => new PositionExam - { - Id = b.Id, - TypeId = b.TypeId, - TypeName = b.TypeName, - PositionId = b.PositionId, - PositionName = b.PositionName, - }).ToList(), - }) - .ToListAsync(); + Id = b.Id, + AccountName = b.AccountName, + AccountNumber = b.AccountNumber, + BankName = b.BankName, + }).ToList(), + PositionExam = x.PositionExam.OrderBy(o => o.CreatedAt).Select(b => new PositionExam + { + Id = b.Id, + TypeId = b.TypeId, + TypeName = b.TypeName, + PositionId = b.PositionId, + PositionName = b.PositionName, + }).ToList(), + Documents = x.PeriodExamDocuments.OrderBy(o => o.CreatedAt).Select(b => new FileListResponse + { + Id = b.Document == null ? "" : b.Document.Id.ToString(), + FileName = b.Document == null ? "" : b.Document.FileName, + FileSize = b.Document == null ? 0 : b.Document.FileSize, + FileType = b.Document == null ? "" : b.Document.FileType, + }).ToList(), + }) + .ToListAsync(); } public async Task GetsExamAndCandidateAsync(string examId, bool showAll = true) @@ -152,7 +157,7 @@ namespace BMA.EHR.Recurit.Exam.Service.Services } } - public async Task CreateAsync(RequestPeriodExam inserted) + public async Task CreateAsync(RequestPeriodExam inserted, IFormFileCollection files) { var periodExam = new PeriodExam { @@ -220,16 +225,37 @@ namespace BMA.EHR.Recurit.Exam.Service.Services await _context.PositionExams.AddAsync(positionExam); } + foreach (var file in files) + { + var doc = await _minioService.UploadFileAsync(file); + + var document = await _context.Documents.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == doc.Id); + + if (document == null) + throw new Exception(GlobalMessages.NoFileToUpload); + + var periodExamDocument = new PeriodExamDocument + { + PeriodExam = periodExam, + Document = document, + }; + + await _context.PeriodExamDocuments.AddAsync(periodExamDocument); + } + await _context.PeriodExams.AddAsync(periodExam); await _context.SaveChangesAsync(); } - public async Task UpdateAsync(string examId, RequestPeriodExam updated) + public async Task UpdateAsync(string examId, RequestPeriodExam updated, IFormFileCollection files) { var periodExam = await _context.PeriodExams.AsQueryable() .Include(x => x.BankExam) .Include(x => x.PositionExam) + .Include(x => x.PeriodExamDocuments) + .ThenInclude(x => x.Document) .FirstOrDefaultAsync(x => x.Id == Guid.Parse(examId)); if (periodExam == null) @@ -348,9 +374,41 @@ namespace BMA.EHR.Recurit.Exam.Service.Services await _context.PositionExams.AddAsync(positionExam); } + foreach (var doc in periodExam.PeriodExamDocuments) + { + if (doc.Id != null) + { + await DeleteAsyncDocument(doc.Id.ToString()); + } + } + + foreach (var file in files) + { + var doc = await _minioService.UploadFileAsync(file); + + var document = await _context.Documents.AsQueryable() + .FirstOrDefaultAsync(x => x.Id == doc.Id); + + if (document == null) + throw new Exception(GlobalMessages.NoFileToUpload); + + var periodExamDocument = new PeriodExamDocument + { + PeriodExam = periodExam, + Document = document, + }; + + await _context.PeriodExamDocuments.AddAsync(periodExamDocument); + } + await _context.SaveChangesAsync(); } + public async Task DeleteAsyncDocument(string documentId) + { + await _minioService.DeleteFileAsync(Guid.Parse(documentId)); + } + public async Task DeleteAsync(string examId) { var periodExam = await _context.PeriodExams.AsQueryable() diff --git a/obj/Debug/net7.0/project.razor.json b/obj/Debug/net7.0/project.razor.json index cf8076b..06ef174 100644 --- a/obj/Debug/net7.0/project.razor.json +++ b/obj/Debug/net7.0/project.razor.json @@ -13,7 +13,7 @@ "ProjectWorkspaceState": { "TagHelpers": [ { - "HashCode": -1668767807, + "HashCode": -1618633327, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -97,7 +97,7 @@ } }, { - "HashCode": -100372805, + "HashCode": 397678827, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -182,7 +182,7 @@ } }, { - "HashCode": -1287867213, + "HashCode": -1711384443, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.NotAuthorized", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -215,7 +215,7 @@ } }, { - "HashCode": 1366904760, + "HashCode": -54446384, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.NotAuthorized", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -249,7 +249,7 @@ } }, { - "HashCode": 666298999, + "HashCode": 870025175, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.Authorizing", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -270,7 +270,7 @@ } }, { - "HashCode": 1939721791, + "HashCode": 656199069, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.Authorizing", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -292,7 +292,7 @@ } }, { - "HashCode": -1342075189, + "HashCode": -1266523522, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -397,7 +397,7 @@ } }, { - "HashCode": 331140780, + "HashCode": 211955458, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -503,7 +503,7 @@ } }, { - "HashCode": 313825375, + "HashCode": -204349297, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -536,7 +536,7 @@ } }, { - "HashCode": 285532635, + "HashCode": 1689010743, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -570,7 +570,7 @@ } }, { - "HashCode": 1791207075, + "HashCode": -17807721, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.NotAuthorized", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -603,7 +603,7 @@ } }, { - "HashCode": -1308822244, + "HashCode": 1456243951, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.NotAuthorized", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -637,7 +637,7 @@ } }, { - "HashCode": 647721100, + "HashCode": 1650947830, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorized", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -670,7 +670,7 @@ } }, { - "HashCode": -1464306750, + "HashCode": 226076606, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorized", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -704,7 +704,7 @@ } }, { - "HashCode": 1217777348, + "HashCode": 2037663714, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorizing", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -725,7 +725,7 @@ } }, { - "HashCode": 1138924801, + "HashCode": 678176427, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorizing", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -747,7 +747,7 @@ } }, { - "HashCode": 959703794, + "HashCode": 1874183689, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -778,7 +778,7 @@ } }, { - "HashCode": 910248857, + "HashCode": 1150974869, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -810,7 +810,7 @@ } }, { - "HashCode": 1932341656, + "HashCode": -857045968, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -831,7 +831,7 @@ } }, { - "HashCode": -1532575831, + "HashCode": 850475087, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", @@ -853,7 +853,7 @@ } }, { - "HashCode": -1054875103, + "HashCode": 644037093, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.CascadingValue", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -928,7 +928,7 @@ } }, { - "HashCode": 2104482092, + "HashCode": -1270590114, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.CascadingValue", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1004,7 +1004,7 @@ } }, { - "HashCode": 2143540321, + "HashCode": -864191908, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.CascadingValue.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1025,7 +1025,7 @@ } }, { - "HashCode": 843268041, + "HashCode": 1546308205, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.CascadingValue.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1047,7 +1047,7 @@ } }, { - "HashCode": 357292588, + "HashCode": -2126426814, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.DynamicComponent", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1089,7 +1089,7 @@ } }, { - "HashCode": -994541416, + "HashCode": -2043911161, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.DynamicComponent", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1132,7 +1132,7 @@ } }, { - "HashCode": -2119587763, + "HashCode": 528519389, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.LayoutView", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1174,7 +1174,7 @@ } }, { - "HashCode": 399919448, + "HashCode": -664449820, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.LayoutView", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1217,7 +1217,7 @@ } }, { - "HashCode": -247621949, + "HashCode": 977093122, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.LayoutView.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1238,7 +1238,7 @@ } }, { - "HashCode": 1135442931, + "HashCode": 1700624585, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.LayoutView.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1260,7 +1260,7 @@ } }, { - "HashCode": -444085228, + "HashCode": 926854599, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.RouteView", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1302,7 +1302,7 @@ } }, { - "HashCode": 2026969366, + "HashCode": -800432656, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.RouteView", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1345,7 +1345,7 @@ } }, { - "HashCode": -1149069230, + "HashCode": -624546933, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Routing.Router", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1453,7 +1453,7 @@ } }, { - "HashCode": 376483043, + "HashCode": 1163279839, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Routing.Router", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1562,7 +1562,7 @@ } }, { - "HashCode": -532910373, + "HashCode": -506279482, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Routing.Router.NotFound", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1583,7 +1583,7 @@ } }, { - "HashCode": -2133435360, + "HashCode": -1905242632, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Routing.Router.NotFound", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1605,7 +1605,7 @@ } }, { - "HashCode": -138653334, + "HashCode": 1909848535, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Routing.Router.Found", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1638,7 +1638,7 @@ } }, { - "HashCode": -720593583, + "HashCode": -1503944918, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Routing.Router.Found", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1672,7 +1672,7 @@ } }, { - "HashCode": -1166597044, + "HashCode": 296149924, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Routing.Router.Navigating", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1693,7 +1693,7 @@ } }, { - "HashCode": 1493169191, + "HashCode": 1721162116, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Routing.Router.Navigating", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -1715,7 +1715,7 @@ } }, { - "HashCode": 1204392702, + "HashCode": 2138884834, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator", "AssemblyName": "Microsoft.AspNetCore.Components.Forms", @@ -1734,7 +1734,7 @@ } }, { - "HashCode": -2057680783, + "HashCode": -1726141312, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator", "AssemblyName": "Microsoft.AspNetCore.Components.Forms", @@ -1754,7 +1754,7 @@ } }, { - "HashCode": -54423564, + "HashCode": 617303784, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.EditForm", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -1859,7 +1859,7 @@ } }, { - "HashCode": -221355168, + "HashCode": -226639366, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.EditForm", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -1965,7 +1965,7 @@ } }, { - "HashCode": 1197639909, + "HashCode": 251671449, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -1998,7 +1998,7 @@ } }, { - "HashCode": 1532561492, + "HashCode": -802482929, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2032,7 +2032,7 @@ } }, { - "HashCode": 1359003861, + "HashCode": -1732439571, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputCheckbox", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2104,7 +2104,7 @@ } }, { - "HashCode": -1325163829, + "HashCode": -1178412920, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputCheckbox", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2177,7 +2177,7 @@ } }, { - "HashCode": -1251209413, + "HashCode": 1584431875, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputDate", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2285,7 +2285,7 @@ } }, { - "HashCode": 559850502, + "HashCode": -1939308158, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputDate", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2394,7 +2394,7 @@ } }, { - "HashCode": 2137030748, + "HashCode": -1938633324, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputFile", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2436,7 +2436,7 @@ } }, { - "HashCode": -573600858, + "HashCode": -58148343, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputFile", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2479,7 +2479,7 @@ } }, { - "HashCode": 1495078479, + "HashCode": 1608802304, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputNumber", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2576,7 +2576,7 @@ } }, { - "HashCode": 1277786851, + "HashCode": -106532415, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputNumber", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2674,7 +2674,7 @@ } }, { - "HashCode": 2120805165, + "HashCode": 1780186474, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputRadio", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2738,7 +2738,7 @@ } }, { - "HashCode": 397907112, + "HashCode": 1160881632, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputRadio", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2803,7 +2803,7 @@ } }, { - "HashCode": -206940093, + "HashCode": -1867655573, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -2911,7 +2911,7 @@ } }, { - "HashCode": 1427504997, + "HashCode": -322364741, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3020,7 +3020,7 @@ } }, { - "HashCode": -146977920, + "HashCode": -1940860039, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3041,7 +3041,7 @@ } }, { - "HashCode": -874558471, + "HashCode": 540867841, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3063,7 +3063,7 @@ } }, { - "HashCode": 541757255, + "HashCode": -106769615, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputSelect", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3161,7 +3161,7 @@ } }, { - "HashCode": 660618876, + "HashCode": 967346459, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputSelect", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3260,7 +3260,7 @@ } }, { - "HashCode": 680320131, + "HashCode": 1802080065, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3281,7 +3281,7 @@ } }, { - "HashCode": 1073781372, + "HashCode": 603053343, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3303,7 +3303,7 @@ } }, { - "HashCode": 414776953, + "HashCode": 18350627, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputText", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3375,7 +3375,7 @@ } }, { - "HashCode": 1279999982, + "HashCode": 1951476813, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputText", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3448,7 +3448,7 @@ } }, { - "HashCode": 111867562, + "HashCode": -1714748305, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputTextArea", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3520,7 +3520,7 @@ } }, { - "HashCode": 870517506, + "HashCode": -892911069, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.InputTextArea", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3593,7 +3593,7 @@ } }, { - "HashCode": 1780524834, + "HashCode": 1722726632, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.ValidationMessage", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3647,7 +3647,7 @@ } }, { - "HashCode": -908100927, + "HashCode": 2116052064, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.ValidationMessage", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3702,7 +3702,7 @@ } }, { - "HashCode": 1135641982, + "HashCode": 216731725, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.ValidationSummary", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3743,7 +3743,7 @@ } }, { - "HashCode": -1210087536, + "HashCode": -1897589113, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Forms.ValidationSummary", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3785,7 +3785,7 @@ } }, { - "HashCode": 867261877, + "HashCode": -153240425, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Routing.FocusOnNavigate", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3826,7 +3826,7 @@ } }, { - "HashCode": -1397420539, + "HashCode": 451809259, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Routing.FocusOnNavigate", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3868,7 +3868,7 @@ } }, { - "HashCode": 1913364975, + "HashCode": 163476057, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Routing.NavigationLock", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3910,7 +3910,7 @@ } }, { - "HashCode": 1366494839, + "HashCode": 525262583, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Routing.NavigationLock", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -3953,7 +3953,7 @@ } }, { - "HashCode": 641492996, + "HashCode": -597732918, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Routing.NavLink", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4016,7 +4016,7 @@ } }, { - "HashCode": -246061944, + "HashCode": 1987426080, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Routing.NavLink", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4080,7 +4080,7 @@ } }, { - "HashCode": 1412865968, + "HashCode": -97500612, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Routing.NavLink.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4101,7 +4101,7 @@ } }, { - "HashCode": 1339764825, + "HashCode": -508698693, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Routing.NavLink.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4123,7 +4123,7 @@ } }, { - "HashCode": 1358663704, + "HashCode": -1191337557, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Web.HeadContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4155,7 +4155,7 @@ } }, { - "HashCode": -759058959, + "HashCode": -1367431732, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Web.HeadContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4188,7 +4188,7 @@ } }, { - "HashCode": 670046814, + "HashCode": -1202764706, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.HeadContent.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4209,7 +4209,7 @@ } }, { - "HashCode": -1275492190, + "HashCode": -245254574, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.HeadContent.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4231,7 +4231,7 @@ } }, { - "HashCode": -494568350, + "HashCode": 53407710, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Web.HeadOutlet", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4250,7 +4250,7 @@ } }, { - "HashCode": 1303828243, + "HashCode": 1592823281, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Web.HeadOutlet", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4270,7 +4270,7 @@ } }, { - "HashCode": 127066492, + "HashCode": -27413047, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Web.PageTitle", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4302,7 +4302,7 @@ } }, { - "HashCode": -5459787, + "HashCode": -2052089393, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Web.PageTitle", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4335,7 +4335,7 @@ } }, { - "HashCode": 1989524914, + "HashCode": -1599533257, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.PageTitle.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4356,7 +4356,7 @@ } }, { - "HashCode": -1460185519, + "HashCode": -1832304242, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.PageTitle.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4378,7 +4378,7 @@ } }, { - "HashCode": 1761419552, + "HashCode": 1103093872, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Web.ErrorBoundary", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4441,7 +4441,7 @@ } }, { - "HashCode": 1478100621, + "HashCode": 1227910967, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Web.ErrorBoundary", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4505,7 +4505,7 @@ } }, { - "HashCode": 1526093997, + "HashCode": -1244184447, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.ErrorBoundary.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4526,7 +4526,7 @@ } }, { - "HashCode": -2054478048, + "HashCode": 1355231872, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.ErrorBoundary.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4548,7 +4548,7 @@ } }, { - "HashCode": 717798227, + "HashCode": 300746010, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.ErrorBoundary.ErrorContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4581,7 +4581,7 @@ } }, { - "HashCode": -1484053508, + "HashCode": 1510426369, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.ErrorBoundary.ErrorContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4615,7 +4615,7 @@ } }, { - "HashCode": 1616807847, + "HashCode": -656536749, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4747,7 +4747,7 @@ } }, { - "HashCode": 16403972, + "HashCode": 1748903725, "Kind": "Components.Component", "Name": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4880,7 +4880,7 @@ } }, { - "HashCode": 1226074785, + "HashCode": -471100990, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4913,7 +4913,7 @@ } }, { - "HashCode": -112296056, + "HashCode": -1425500081, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ChildContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4947,7 +4947,7 @@ } }, { - "HashCode": -559533148, + "HashCode": 1984403513, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -4980,7 +4980,7 @@ } }, { - "HashCode": 784236506, + "HashCode": 377714681, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemContent", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -5014,7 +5014,7 @@ } }, { - "HashCode": -521146859, + "HashCode": 1728198104, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Placeholder", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -5047,7 +5047,7 @@ } }, { - "HashCode": -363189506, + "HashCode": 25998782, "Kind": "Components.ChildContent", "Name": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Placeholder", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -5081,7 +5081,7 @@ } }, { - "HashCode": -2004282693, + "HashCode": 591806183, "Kind": "Components.EventHandler", "Name": "onfocus", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -5164,7 +5164,7 @@ } }, { - "HashCode": 1103436297, + "HashCode": -1045042076, "Kind": "Components.EventHandler", "Name": "onblur", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -5247,7 +5247,7 @@ } }, { - "HashCode": 767633559, + "HashCode": 1226743369, "Kind": "Components.EventHandler", "Name": "onfocusin", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -5330,7 +5330,7 @@ } }, { - "HashCode": 1412543418, + "HashCode": 474124252, "Kind": "Components.EventHandler", "Name": "onfocusout", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -5413,7 +5413,7 @@ } }, { - "HashCode": -1024204785, + "HashCode": 1781919460, "Kind": "Components.EventHandler", "Name": "onmouseover", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -5496,7 +5496,7 @@ } }, { - "HashCode": 1695869441, + "HashCode": 2100933448, "Kind": "Components.EventHandler", "Name": "onmouseout", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -5579,7 +5579,7 @@ } }, { - "HashCode": -606939689, + "HashCode": -560044169, "Kind": "Components.EventHandler", "Name": "onmouseleave", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -5662,7 +5662,7 @@ } }, { - "HashCode": -1657777398, + "HashCode": -1563982657, "Kind": "Components.EventHandler", "Name": "onmouseenter", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -5745,7 +5745,7 @@ } }, { - "HashCode": -90010333, + "HashCode": -408838314, "Kind": "Components.EventHandler", "Name": "onmousemove", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -5828,7 +5828,7 @@ } }, { - "HashCode": -1462425775, + "HashCode": -1684584726, "Kind": "Components.EventHandler", "Name": "onmousedown", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -5911,7 +5911,7 @@ } }, { - "HashCode": 1460503283, + "HashCode": 1140020419, "Kind": "Components.EventHandler", "Name": "onmouseup", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -5994,7 +5994,7 @@ } }, { - "HashCode": -1063294561, + "HashCode": -1556483903, "Kind": "Components.EventHandler", "Name": "onclick", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6077,7 +6077,7 @@ } }, { - "HashCode": 2135362546, + "HashCode": 1380269784, "Kind": "Components.EventHandler", "Name": "ondblclick", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6160,7 +6160,7 @@ } }, { - "HashCode": 880613911, + "HashCode": 1230627557, "Kind": "Components.EventHandler", "Name": "onwheel", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6243,7 +6243,7 @@ } }, { - "HashCode": -1805060007, + "HashCode": 452553749, "Kind": "Components.EventHandler", "Name": "onmousewheel", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6326,7 +6326,7 @@ } }, { - "HashCode": 1165581215, + "HashCode": 1444166515, "Kind": "Components.EventHandler", "Name": "oncontextmenu", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6409,7 +6409,7 @@ } }, { - "HashCode": 339977941, + "HashCode": -524909692, "Kind": "Components.EventHandler", "Name": "ondrag", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6492,7 +6492,7 @@ } }, { - "HashCode": -2025597845, + "HashCode": 1678779789, "Kind": "Components.EventHandler", "Name": "ondragend", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6575,7 +6575,7 @@ } }, { - "HashCode": 991342449, + "HashCode": -1164374857, "Kind": "Components.EventHandler", "Name": "ondragenter", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6658,7 +6658,7 @@ } }, { - "HashCode": -723332055, + "HashCode": 1491279272, "Kind": "Components.EventHandler", "Name": "ondragleave", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6741,7 +6741,7 @@ } }, { - "HashCode": 1269720320, + "HashCode": 1927557257, "Kind": "Components.EventHandler", "Name": "ondragover", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6824,7 +6824,7 @@ } }, { - "HashCode": -379501543, + "HashCode": 1343856467, "Kind": "Components.EventHandler", "Name": "ondragstart", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6907,7 +6907,7 @@ } }, { - "HashCode": -1236144335, + "HashCode": -566164809, "Kind": "Components.EventHandler", "Name": "ondrop", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -6990,7 +6990,7 @@ } }, { - "HashCode": 1212580386, + "HashCode": 1315618147, "Kind": "Components.EventHandler", "Name": "onkeydown", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7073,7 +7073,7 @@ } }, { - "HashCode": 983431993, + "HashCode": -431522310, "Kind": "Components.EventHandler", "Name": "onkeyup", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7156,7 +7156,7 @@ } }, { - "HashCode": 1066637459, + "HashCode": -138317870, "Kind": "Components.EventHandler", "Name": "onkeypress", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7239,7 +7239,7 @@ } }, { - "HashCode": 422715953, + "HashCode": 1343832660, "Kind": "Components.EventHandler", "Name": "onchange", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7322,7 +7322,7 @@ } }, { - "HashCode": 626431091, + "HashCode": 1208294319, "Kind": "Components.EventHandler", "Name": "oninput", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7405,7 +7405,7 @@ } }, { - "HashCode": 748535803, + "HashCode": 1042255466, "Kind": "Components.EventHandler", "Name": "oninvalid", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7488,7 +7488,7 @@ } }, { - "HashCode": -655198190, + "HashCode": 1349766273, "Kind": "Components.EventHandler", "Name": "onreset", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7571,7 +7571,7 @@ } }, { - "HashCode": -498121552, + "HashCode": 436948699, "Kind": "Components.EventHandler", "Name": "onselect", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7654,7 +7654,7 @@ } }, { - "HashCode": 843817097, + "HashCode": -1616364443, "Kind": "Components.EventHandler", "Name": "onselectstart", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7737,7 +7737,7 @@ } }, { - "HashCode": -1294576924, + "HashCode": 1469600388, "Kind": "Components.EventHandler", "Name": "onselectionchange", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7820,7 +7820,7 @@ } }, { - "HashCode": 1336670575, + "HashCode": -1426145126, "Kind": "Components.EventHandler", "Name": "onsubmit", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7903,7 +7903,7 @@ } }, { - "HashCode": -14080119, + "HashCode": 82295944, "Kind": "Components.EventHandler", "Name": "onbeforecopy", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -7986,7 +7986,7 @@ } }, { - "HashCode": 976953376, + "HashCode": -1519092575, "Kind": "Components.EventHandler", "Name": "onbeforecut", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8069,7 +8069,7 @@ } }, { - "HashCode": 1750764727, + "HashCode": -235513189, "Kind": "Components.EventHandler", "Name": "onbeforepaste", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8152,7 +8152,7 @@ } }, { - "HashCode": -1587516137, + "HashCode": 1763091805, "Kind": "Components.EventHandler", "Name": "oncopy", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8235,7 +8235,7 @@ } }, { - "HashCode": -633146798, + "HashCode": -1060219006, "Kind": "Components.EventHandler", "Name": "oncut", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8318,7 +8318,7 @@ } }, { - "HashCode": -1422228034, + "HashCode": 859725354, "Kind": "Components.EventHandler", "Name": "onpaste", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8401,7 +8401,7 @@ } }, { - "HashCode": -320073283, + "HashCode": 1671496806, "Kind": "Components.EventHandler", "Name": "ontouchcancel", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8484,7 +8484,7 @@ } }, { - "HashCode": -82597528, + "HashCode": 556505489, "Kind": "Components.EventHandler", "Name": "ontouchend", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8567,7 +8567,7 @@ } }, { - "HashCode": 1624830272, + "HashCode": -2138034570, "Kind": "Components.EventHandler", "Name": "ontouchmove", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8650,7 +8650,7 @@ } }, { - "HashCode": 89929800, + "HashCode": -857888044, "Kind": "Components.EventHandler", "Name": "ontouchstart", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8733,7 +8733,7 @@ } }, { - "HashCode": -1518498731, + "HashCode": -981698441, "Kind": "Components.EventHandler", "Name": "ontouchenter", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8816,7 +8816,7 @@ } }, { - "HashCode": -466736291, + "HashCode": -472421196, "Kind": "Components.EventHandler", "Name": "ontouchleave", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8899,7 +8899,7 @@ } }, { - "HashCode": -2121735380, + "HashCode": -41761181, "Kind": "Components.EventHandler", "Name": "ongotpointercapture", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -8982,7 +8982,7 @@ } }, { - "HashCode": 1172506987, + "HashCode": -781451151, "Kind": "Components.EventHandler", "Name": "onlostpointercapture", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9065,7 +9065,7 @@ } }, { - "HashCode": -534491714, + "HashCode": -316221569, "Kind": "Components.EventHandler", "Name": "onpointercancel", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9148,7 +9148,7 @@ } }, { - "HashCode": -604137460, + "HashCode": 1027728377, "Kind": "Components.EventHandler", "Name": "onpointerdown", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9231,7 +9231,7 @@ } }, { - "HashCode": -1589246937, + "HashCode": -591151342, "Kind": "Components.EventHandler", "Name": "onpointerenter", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9314,7 +9314,7 @@ } }, { - "HashCode": -137380720, + "HashCode": 1675688116, "Kind": "Components.EventHandler", "Name": "onpointerleave", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9397,7 +9397,7 @@ } }, { - "HashCode": 248186127, + "HashCode": 1550357541, "Kind": "Components.EventHandler", "Name": "onpointermove", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9480,7 +9480,7 @@ } }, { - "HashCode": -105944854, + "HashCode": 332218995, "Kind": "Components.EventHandler", "Name": "onpointerout", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9563,7 +9563,7 @@ } }, { - "HashCode": -1268786298, + "HashCode": 1512132124, "Kind": "Components.EventHandler", "Name": "onpointerover", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9646,7 +9646,7 @@ } }, { - "HashCode": -1774018443, + "HashCode": 1054238748, "Kind": "Components.EventHandler", "Name": "onpointerup", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9729,7 +9729,7 @@ } }, { - "HashCode": -131815273, + "HashCode": -1548707371, "Kind": "Components.EventHandler", "Name": "oncanplay", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9812,7 +9812,7 @@ } }, { - "HashCode": 394822628, + "HashCode": -305682065, "Kind": "Components.EventHandler", "Name": "oncanplaythrough", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9895,7 +9895,7 @@ } }, { - "HashCode": 406945353, + "HashCode": 482090987, "Kind": "Components.EventHandler", "Name": "oncuechange", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -9978,7 +9978,7 @@ } }, { - "HashCode": -876645463, + "HashCode": 1339566519, "Kind": "Components.EventHandler", "Name": "ondurationchange", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10061,7 +10061,7 @@ } }, { - "HashCode": 1022939271, + "HashCode": -2023644546, "Kind": "Components.EventHandler", "Name": "onemptied", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10144,7 +10144,7 @@ } }, { - "HashCode": -1458763104, + "HashCode": 1050613001, "Kind": "Components.EventHandler", "Name": "onpause", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10227,7 +10227,7 @@ } }, { - "HashCode": -1964947746, + "HashCode": -153577016, "Kind": "Components.EventHandler", "Name": "onplay", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10310,7 +10310,7 @@ } }, { - "HashCode": 380196409, + "HashCode": -1611466549, "Kind": "Components.EventHandler", "Name": "onplaying", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10393,7 +10393,7 @@ } }, { - "HashCode": -377255141, + "HashCode": 417748927, "Kind": "Components.EventHandler", "Name": "onratechange", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10476,7 +10476,7 @@ } }, { - "HashCode": 2010618319, + "HashCode": -863803202, "Kind": "Components.EventHandler", "Name": "onseeked", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10559,7 +10559,7 @@ } }, { - "HashCode": 934674067, + "HashCode": 961714315, "Kind": "Components.EventHandler", "Name": "onseeking", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10642,7 +10642,7 @@ } }, { - "HashCode": -1124093076, + "HashCode": -1514305545, "Kind": "Components.EventHandler", "Name": "onstalled", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10725,7 +10725,7 @@ } }, { - "HashCode": -321475004, + "HashCode": -195362921, "Kind": "Components.EventHandler", "Name": "onstop", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10808,7 +10808,7 @@ } }, { - "HashCode": 1692489326, + "HashCode": 1996644499, "Kind": "Components.EventHandler", "Name": "onsuspend", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10891,7 +10891,7 @@ } }, { - "HashCode": 1665469290, + "HashCode": 1329320386, "Kind": "Components.EventHandler", "Name": "ontimeupdate", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -10974,7 +10974,7 @@ } }, { - "HashCode": 1688822003, + "HashCode": 815873735, "Kind": "Components.EventHandler", "Name": "onvolumechange", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11057,7 +11057,7 @@ } }, { - "HashCode": -953309530, + "HashCode": 751543572, "Kind": "Components.EventHandler", "Name": "onwaiting", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11140,7 +11140,7 @@ } }, { - "HashCode": -400467225, + "HashCode": 1469096918, "Kind": "Components.EventHandler", "Name": "onloadstart", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11223,7 +11223,7 @@ } }, { - "HashCode": -724539509, + "HashCode": 935132672, "Kind": "Components.EventHandler", "Name": "ontimeout", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11306,7 +11306,7 @@ } }, { - "HashCode": 2111107473, + "HashCode": 1470046185, "Kind": "Components.EventHandler", "Name": "onabort", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11389,7 +11389,7 @@ } }, { - "HashCode": 1244270557, + "HashCode": 842075949, "Kind": "Components.EventHandler", "Name": "onload", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11472,7 +11472,7 @@ } }, { - "HashCode": -1810375672, + "HashCode": 1628249425, "Kind": "Components.EventHandler", "Name": "onloadend", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11555,7 +11555,7 @@ } }, { - "HashCode": -664465089, + "HashCode": -1862188535, "Kind": "Components.EventHandler", "Name": "onprogress", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11638,7 +11638,7 @@ } }, { - "HashCode": 955656053, + "HashCode": -1093189117, "Kind": "Components.EventHandler", "Name": "onerror", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11721,7 +11721,7 @@ } }, { - "HashCode": 1900605921, + "HashCode": 983037827, "Kind": "Components.EventHandler", "Name": "onactivate", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11804,7 +11804,7 @@ } }, { - "HashCode": 232478404, + "HashCode": 412714631, "Kind": "Components.EventHandler", "Name": "onbeforeactivate", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11887,7 +11887,7 @@ } }, { - "HashCode": -598966910, + "HashCode": 53882549, "Kind": "Components.EventHandler", "Name": "onbeforedeactivate", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -11970,7 +11970,7 @@ } }, { - "HashCode": 1563947846, + "HashCode": -1184481604, "Kind": "Components.EventHandler", "Name": "ondeactivate", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12053,7 +12053,7 @@ } }, { - "HashCode": 1621635668, + "HashCode": 60802417, "Kind": "Components.EventHandler", "Name": "onended", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12136,7 +12136,7 @@ } }, { - "HashCode": 1989343209, + "HashCode": 1979747540, "Kind": "Components.EventHandler", "Name": "onfullscreenchange", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12219,7 +12219,7 @@ } }, { - "HashCode": -723981578, + "HashCode": 1168730113, "Kind": "Components.EventHandler", "Name": "onfullscreenerror", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12302,7 +12302,7 @@ } }, { - "HashCode": 1748659774, + "HashCode": -1107272837, "Kind": "Components.EventHandler", "Name": "onloadeddata", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12385,7 +12385,7 @@ } }, { - "HashCode": 1028500782, + "HashCode": -913196908, "Kind": "Components.EventHandler", "Name": "onloadedmetadata", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12468,7 +12468,7 @@ } }, { - "HashCode": 1427987674, + "HashCode": -1872854966, "Kind": "Components.EventHandler", "Name": "onpointerlockchange", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12551,7 +12551,7 @@ } }, { - "HashCode": -293418576, + "HashCode": 1880885904, "Kind": "Components.EventHandler", "Name": "onpointerlockerror", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12634,7 +12634,7 @@ } }, { - "HashCode": -161239907, + "HashCode": -632402051, "Kind": "Components.EventHandler", "Name": "onreadystatechange", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12717,7 +12717,7 @@ } }, { - "HashCode": 1616742158, + "HashCode": -1721440666, "Kind": "Components.EventHandler", "Name": "onscroll", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12800,7 +12800,7 @@ } }, { - "HashCode": 246099411, + "HashCode": -1964234454, "Kind": "Components.EventHandler", "Name": "ontoggle", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12883,7 +12883,7 @@ } }, { - "HashCode": 733750373, + "HashCode": -1368763600, "Kind": "Components.Splat", "Name": "Attributes", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -12922,7 +12922,7 @@ } }, { - "HashCode": -551342519, + "HashCode": 1073069746, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.Razor", @@ -13239,7 +13239,7 @@ } }, { - "HashCode": 1769006181, + "HashCode": -925605391, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -13438,7 +13438,7 @@ } }, { - "HashCode": 765388250, + "HashCode": 790435181, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -13567,7 +13567,7 @@ } }, { - "HashCode": -568209648, + "HashCode": -829764790, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -13624,7 +13624,7 @@ } }, { - "HashCode": -1071040808, + "HashCode": 874334220, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -13758,7 +13758,7 @@ } }, { - "HashCode": -1685914093, + "HashCode": 1841482938, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -13806,7 +13806,7 @@ } }, { - "HashCode": -1115216665, + "HashCode": 480891565, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -14225,7 +14225,7 @@ } }, { - "HashCode": 1033488047, + "HashCode": 655694042, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -14329,7 +14329,7 @@ } }, { - "HashCode": 298240313, + "HashCode": -883878792, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -14377,7 +14377,7 @@ } }, { - "HashCode": -1083534367, + "HashCode": 769717372, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -14449,7 +14449,7 @@ } }, { - "HashCode": 433536455, + "HashCode": 1036299466, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -14484,7 +14484,7 @@ } }, { - "HashCode": 943187284, + "HashCode": 48293061, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -14682,7 +14682,7 @@ } }, { - "HashCode": -1732195736, + "HashCode": 865432171, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -14712,7 +14712,7 @@ } }, { - "HashCode": 1219585637, + "HashCode": 629829289, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -14795,7 +14795,7 @@ } }, { - "HashCode": -109531776, + "HashCode": -245027455, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.PersistComponentStateTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -14826,7 +14826,7 @@ } }, { - "HashCode": 612860705, + "HashCode": 1898795343, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -14981,7 +14981,7 @@ } }, { - "HashCode": 354679860, + "HashCode": 2023900575, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -15042,7 +15042,7 @@ } }, { - "HashCode": 1366515157, + "HashCode": -1566644463, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -15086,7 +15086,7 @@ } }, { - "HashCode": -1201629795, + "HashCode": 146491582, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -15121,7 +15121,7 @@ } }, { - "HashCode": 1588239484, + "HashCode": 193886230, "Kind": "ITagHelper", "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper", "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", @@ -15157,7 +15157,7 @@ } }, { - "HashCode": -1897494107, + "HashCode": -1890475769, "Kind": "Components.Bind", "Name": "Bind", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -15253,7 +15253,7 @@ } }, { - "HashCode": 989762333, + "HashCode": 2052439791, "Kind": "Components.Bind", "Name": "Bind", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -15375,7 +15375,7 @@ } }, { - "HashCode": 918519053, + "HashCode": -882833655, "Kind": "Components.Bind", "Name": "Bind_value", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -15497,7 +15497,7 @@ } }, { - "HashCode": -619990712, + "HashCode": 238779568, "Kind": "Components.Bind", "Name": "Bind", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -15630,7 +15630,7 @@ } }, { - "HashCode": -561613835, + "HashCode": 1118329928, "Kind": "Components.Bind", "Name": "Bind", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -15763,7 +15763,7 @@ } }, { - "HashCode": -1996963484, + "HashCode": 42984192, "Kind": "Components.Bind", "Name": "Bind", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -15896,7 +15896,7 @@ } }, { - "HashCode": 294891502, + "HashCode": 672417493, "Kind": "Components.Bind", "Name": "Bind_value", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -16029,7 +16029,7 @@ } }, { - "HashCode": 1192139, + "HashCode": -553094028, "Kind": "Components.Bind", "Name": "Bind", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -16162,7 +16162,7 @@ } }, { - "HashCode": -763703327, + "HashCode": 1313440925, "Kind": "Components.Bind", "Name": "Bind_value", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -16295,7 +16295,7 @@ } }, { - "HashCode": 643198770, + "HashCode": 1175121792, "Kind": "Components.Bind", "Name": "Bind", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -16428,7 +16428,7 @@ } }, { - "HashCode": 2043201412, + "HashCode": -1178210267, "Kind": "Components.Bind", "Name": "Bind_value", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -16561,7 +16561,7 @@ } }, { - "HashCode": 1493910515, + "HashCode": 2059319411, "Kind": "Components.Bind", "Name": "Bind", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -16694,7 +16694,7 @@ } }, { - "HashCode": -407799254, + "HashCode": -300501825, "Kind": "Components.Bind", "Name": "Bind_value", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -16827,7 +16827,7 @@ } }, { - "HashCode": -112066035, + "HashCode": 1723487363, "Kind": "Components.Bind", "Name": "Bind", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -16960,7 +16960,7 @@ } }, { - "HashCode": -638971651, + "HashCode": -148483249, "Kind": "Components.Bind", "Name": "Bind_value", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -17093,7 +17093,7 @@ } }, { - "HashCode": -95114426, + "HashCode": -884100662, "Kind": "Components.Bind", "Name": "Bind", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -17215,7 +17215,7 @@ } }, { - "HashCode": -2079861736, + "HashCode": -1172635602, "Kind": "Components.Bind", "Name": "Bind", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -17337,7 +17337,7 @@ } }, { - "HashCode": -27749271, + "HashCode": -24929389, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputCheckbox", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -17424,7 +17424,7 @@ } }, { - "HashCode": 1672336951, + "HashCode": -2123253951, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputCheckbox", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -17512,7 +17512,7 @@ } }, { - "HashCode": -785124683, + "HashCode": 303482104, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputDate", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -17599,7 +17599,7 @@ } }, { - "HashCode": 1899002396, + "HashCode": -321524023, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputDate", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -17687,7 +17687,7 @@ } }, { - "HashCode": 471052294, + "HashCode": -685691537, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputNumber", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -17774,7 +17774,7 @@ } }, { - "HashCode": -30092469, + "HashCode": 934620358, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputNumber", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -17862,7 +17862,7 @@ } }, { - "HashCode": 1633685732, + "HashCode": -260459826, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -17949,7 +17949,7 @@ } }, { - "HashCode": 100326077, + "HashCode": -1279581684, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -18037,7 +18037,7 @@ } }, { - "HashCode": -1497142038, + "HashCode": 101825203, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputSelect", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -18124,7 +18124,7 @@ } }, { - "HashCode": -1069272740, + "HashCode": -1310659868, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputSelect", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -18212,7 +18212,7 @@ } }, { - "HashCode": 1714970370, + "HashCode": -1696162796, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputText", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -18299,7 +18299,7 @@ } }, { - "HashCode": 1540803926, + "HashCode": 1003800466, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputText", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -18387,7 +18387,7 @@ } }, { - "HashCode": 2121901110, + "HashCode": 273897083, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputTextArea", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -18474,7 +18474,7 @@ } }, { - "HashCode": 567671204, + "HashCode": 1037426835, "Kind": "Components.Bind", "Name": "Microsoft.AspNetCore.Components.Forms.InputTextArea", "AssemblyName": "Microsoft.AspNetCore.Components.Web", @@ -18562,7 +18562,7 @@ } }, { - "HashCode": 1339738156, + "HashCode": -985186680, "Kind": "Components.Ref", "Name": "Ref", "AssemblyName": "Microsoft.AspNetCore.Components", @@ -18601,7 +18601,7 @@ } }, { - "HashCode": -901733359, + "HashCode": 2046754903, "Kind": "Components.Key", "Name": "Key", "AssemblyName": "Microsoft.AspNetCore.Components",