|
14 | 14 | using Microsoft.FeatureManagement.Mvc; |
15 | 15 | using Microsoft.Extensions.Configuration; |
16 | 16 | using ConfigurationExtensions = DigitalLearningSolutions.Data.Extensions.ConfigurationExtensions; |
| 17 | + using ClosedXML.Excel; |
| 18 | + |
17 | 19 | [FeatureGate(FeatureFlags.RefactoredTrackingSystem)] |
18 | 20 | [Authorize(Policy = CustomPolicies.UserCentreAdmin)] |
19 | 21 | [SetDlsSubApplication(nameof(DlsSubApplication.TrackingSystem))] |
@@ -78,10 +80,19 @@ public IActionResult StartUpload() |
78 | 80 | public IActionResult StartUpload(UploadDelegatesViewModel model) |
79 | 81 | { |
80 | 82 | int MaxBulkUploadRows = GetMaxBulkUploadRowsLimit(); |
81 | | - int ExcelRowsCount = delegateUploadFileService.GetBulkUploadExcelRowCount(model.DelegatesFile); |
82 | | - if (ExcelRowsCount > MaxBulkUploadRows) |
| 83 | + if (model.DelegatesFile != null) |
83 | 84 | { |
84 | | - ModelState.AddModelError("MaxBulkUploadRows", string.Format(CommonValidationErrorMessages.MaxBulkUploadRowsLimit, MaxBulkUploadRows)); |
| 85 | + var workbook = new XLWorkbook(model.DelegatesFile.OpenReadStream()); |
| 86 | + if (!workbook.Worksheets.Contains(DelegateDownloadFileService.DelegatesSheetName)) |
| 87 | + { |
| 88 | + ModelState.AddModelError("MaxBulkUploadRows", CommonValidationErrorMessages.InvalidBulkUploadExcelFile); |
| 89 | + return View("StartUpload", model); |
| 90 | + } |
| 91 | + int ExcelRowsCount = delegateUploadFileService.GetBulkUploadExcelRowCount(model.DelegatesFile); |
| 92 | + if (ExcelRowsCount > MaxBulkUploadRows) |
| 93 | + { |
| 94 | + ModelState.AddModelError("MaxBulkUploadRows", string.Format(CommonValidationErrorMessages.MaxBulkUploadRowsLimit, MaxBulkUploadRows)); |
| 95 | + } |
85 | 96 | } |
86 | 97 | if (!ModelState.IsValid) |
87 | 98 | { |
|
0 commit comments