diff --git a/Data/DatabaseSeeder.cs b/Data/DatabaseSeeder.cs index dce2411..7950f2e 100644 --- a/Data/DatabaseSeeder.cs +++ b/Data/DatabaseSeeder.cs @@ -309,7 +309,57 @@ namespace BMA.EHR.Recurit.Exam.Service.Data } } } + public static async Task SeedPeriodExamAsync(WebApplication app) + { + using var scope = app.Services.CreateScope(); + var service = scope.ServiceProvider.GetRequiredService(); + var insertedPeriodExam = new List(); + + if ((await service.GetsAsync()).Count() == 0) + { + // read excels into object + var excelFile = "SeedPeriodExam.xlsx"; + using (var excel = new ExcelPackage(new FileInfo(excelFile))) + { + // 1. Seed PeriodExam + var workSheet = excel.Workbook.Worksheets.FirstOrDefault(x => x.Name.ToLower() == "periodexam"); + var totalRows = workSheet?.Dimension.Rows; + + int row = 2; + + while (row <= totalRows) + { + var cell1 = workSheet?.Cells[row, 1]?.GetValue(); + if (cell1 == "" || cell1 == null) break; + + var PeriodExam = insertedPeriodExam.Where(x => x.Name == (workSheet?.Cells[row, 1]?.GetValue() ?? "")).FirstOrDefault(); + if (PeriodExam == null) + { + + var inserted = new PeriodExam + { + Id = Guid.NewGuid(), + Name = workSheet?.Cells[row, 1]?.GetValue() ?? "", + Round = workSheet?.Cells[row, 2]?.GetValue() ?? 0, + Fee = workSheet?.Cells[row, 3]?.GetValue() ?? 0, + StartDate = workSheet?.Cells[row, 4]?.GetValue() ?? DateTime.Now.Date, + EndDate = workSheet?.Cells[row, 5]?.GetValue() ?? DateTime.Now.Date, + Year = workSheet?.Cells[row, 6]?.GetValue() ?? 0, + AnnounceDate = workSheet?.Cells[row, 7]?.GetValue() ?? DateTime.Now.Date, + IsActive = true, + CreatedFullName = "System Administrator", + CreatedAt = DateTime.Now + }; + insertedPeriodExam.Add(inserted); + + await service.CreateAsync(inserted); + } + row++; + } + } + } + } #endregion } } diff --git a/Program.cs b/Program.cs index 9a95809..daae0a3 100644 --- a/Program.cs +++ b/Program.cs @@ -139,7 +139,7 @@ await DatabaseSeeder.SeedEducationLevelAsync(app); await DatabaseSeeder.SeedReligionAsync(app); await DatabaseSeeder.SeedRelationshipAsync(app); await DatabaseSeeder.SeedProvinceAsync(app); - +await DatabaseSeeder.SeedPeriodExamAsync(app); app.Run(); void ConfigureLogs() diff --git a/SeedPeriodExam.xlsx b/SeedPeriodExam.xlsx new file mode 100644 index 0000000..c64aba6 Binary files /dev/null and b/SeedPeriodExam.xlsx differ