|
1 | 1 | using ClosedXML.Excel; |
2 | 2 | using Course_Scheduler.Data; |
3 | 3 | using Course_Scheduler.Models; |
| 4 | +using Course_Scheduler.Models.Enum; |
4 | 5 | using Course_Scheduler.Services; |
5 | 6 | using Microsoft.AspNetCore.Mvc; |
6 | 7 | using Microsoft.EntityFrameworkCore; |
@@ -46,21 +47,95 @@ public async Task<IActionResult> GeneticAlgorithm(int semesterId,int Count = 100 |
46 | 47 | .Where(fc => fc.SemesterId == semesterId) |
47 | 48 | .ToList(); |
48 | 49 | var coursePrerequisites = _context.CoursePrerequisites.ToList(); |
49 | | - |
| 50 | + var corequisiteCourse = _context.CorequisitesCourses.ToList(); |
50 | 51 | var schedules = new List<Schedule>(); |
51 | 52 |
|
52 | 53 | GeneticAlgorithm ga = new GeneticAlgorithm(courses, courseToTeachers, coursePenaltys, |
53 | | - teachers, fixedCourses, coursePrerequisites); |
| 54 | + teachers, fixedCourses, coursePrerequisites, |
| 55 | + corequisiteCourse); |
54 | 56 |
|
55 | 57 | schedules.AddRange(await ga.CreateSchedules(Count,UnhealtyCount)); |
56 | 58 |
|
57 | 59 | schedules = schedules.OrderBy(s => s.Penalty.TotalPenalty).ToList(); |
58 | 60 |
|
59 | 61 |
|
60 | | - |
61 | 62 |
|
62 | 63 |
|
63 | 64 |
|
| 65 | + //using (var workbook = new XLWorkbook()) |
| 66 | + //{ |
| 67 | + // // Add a worksheet to the workbook |
| 68 | + // var worksheet = workbook.Worksheets.Add("My Worksheet2"); |
| 69 | + |
| 70 | + // // Set headers |
| 71 | + |
| 72 | + |
| 73 | + // // Populate data |
| 74 | + // var cell = 0; |
| 75 | + // int row = 0; |
| 76 | + // int id = 0; |
| 77 | + // foreach (var schedule in schedules) |
| 78 | + // { |
| 79 | + // worksheet.Cell(row, cell + 1).Value = "T1"; |
| 80 | + // worksheet.Cell(row, cell + 2).Value = "T2"; |
| 81 | + // worksheet.Cell(row, cell + 3).Value = "T3"; |
| 82 | + // worksheet.Cell(row, cell + 4).Value = "T4"; |
| 83 | + // worksheet.Cell(row, cell + 5).Value = "T5"; |
| 84 | + |
| 85 | + // worksheet.Cell(row+1, cell).Value = "sa"; |
| 86 | + // worksheet.Cell(row+2, cell).Value = "su"; |
| 87 | + // worksheet.Cell(row+3, cell).Value = "m"; |
| 88 | + // worksheet.Cell(row+4, cell).Value = "t"; |
| 89 | + // worksheet.Cell(row+5, cell).Value = "w"; |
| 90 | + |
| 91 | + // foreach (var CTT in schedule.CourseTeacherClassTimes) |
| 92 | + // { |
| 93 | + // foreach (var time in CTT.ClassTimes) |
| 94 | + // { |
| 95 | + // switch (time.ClassTime.ToString().Substring(0, time.ClassTime.ToString().IndexOf('T'))) |
| 96 | + // { |
| 97 | + // case "Saturday": |
| 98 | + // // کد مربوط به روز شنبه |
| 99 | + // switch (time.ClassTime.ToString().Substring(time.ClassTime.ToString().IndexOf('T')), time.ClassTime.ToString().Length) |
| 100 | + // { |
| 101 | + // //case "": |
| 102 | + // // break; |
| 103 | + // } |
| 104 | + |
| 105 | + // //worksheet.Cell(row+1,); |
| 106 | + // break; |
| 107 | + // case "Sunday": |
| 108 | + // // کد مربوط به روز یکشنبه |
| 109 | + // break; |
| 110 | + // case "Monday": |
| 111 | + // // کد مربوط به روز دوشنبه |
| 112 | + // break; |
| 113 | + // case "Tuesday": |
| 114 | + // // کد مربوط به روز سه شنبه |
| 115 | + // break; |
| 116 | + // case "Wednesday": |
| 117 | + // // کد مربوط به روز چهارشنبه |
| 118 | + // break; |
| 119 | + // case "Thursday": |
| 120 | + // // کد مربوط به روز پنجشنبه |
| 121 | + // break; |
| 122 | + // case "Friday": |
| 123 | + // // کد مربوط به روز جمعه |
| 124 | + // break; |
| 125 | + // default: |
| 126 | + // // کد مربوط به زمانی که روز مشخص نیست |
| 127 | + // break; |
| 128 | + // } |
| 129 | + // } |
| 130 | + // } |
| 131 | + // row++; |
| 132 | + // } |
| 133 | + |
| 134 | + // // Save the workbook |
| 135 | + // workbook.SaveAs("TimeTable.xlsx"); |
| 136 | + //} |
| 137 | + |
| 138 | + |
64 | 139 | // Create a new Excel workbook |
65 | 140 | using (var workbook = new XLWorkbook()) |
66 | 141 | { |
|
0 commit comments