Skip to content

Commit fa34f84

Browse files
authored
Merge pull request #2144 from TechnologyEnhancedLearning/Develop/Fixes/TD-2865-Improve-error-messages-when-bulk-upload-Excel-file-doesn't-contain-correct-worksheet
TD-2865 improve error messages when bulk upload excel file doesn't contain correct worksheet
2 parents 6ee5e2a + 78e7065 commit fa34f84

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

DigitalLearningSolutions.Web/Controllers/TrackingSystem/Delegates/BulkUploadController.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
using Microsoft.FeatureManagement.Mvc;
1515
using Microsoft.Extensions.Configuration;
1616
using ConfigurationExtensions = DigitalLearningSolutions.Data.Extensions.ConfigurationExtensions;
17+
using ClosedXML.Excel;
18+
1719
[FeatureGate(FeatureFlags.RefactoredTrackingSystem)]
1820
[Authorize(Policy = CustomPolicies.UserCentreAdmin)]
1921
[SetDlsSubApplication(nameof(DlsSubApplication.TrackingSystem))]
@@ -78,10 +80,19 @@ public IActionResult StartUpload()
7880
public IActionResult StartUpload(UploadDelegatesViewModel model)
7981
{
8082
int MaxBulkUploadRows = GetMaxBulkUploadRowsLimit();
81-
int ExcelRowsCount = delegateUploadFileService.GetBulkUploadExcelRowCount(model.DelegatesFile);
82-
if (ExcelRowsCount > MaxBulkUploadRows)
83+
if (model.DelegatesFile != null)
8384
{
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+
}
8596
}
8697
if (!ModelState.IsValid)
8798
{

DigitalLearningSolutions.Web/Helpers/CommonValidationErrorMessages.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,6 @@ public static class CommonValidationErrorMessages
3535
"A user with this email address is already registered";
3636
public const string CentreNameAlreadyExist = "The centre name you have entered already exists, please enter a different centre name";
3737
public const string MaxBulkUploadRowsLimit = "File must contain no more than {0} rows";
38+
public const string InvalidBulkUploadExcelFile = "The uploaded file must contain a \"DelegatesBulkUpload\" worksheet. Use the \"Download delegates\" button to generate a template.";
3839
}
3940
}

0 commit comments

Comments
 (0)