Skip to content

Commit 7a4741a

Browse files
committed
TD-2522 Fixes issues highlighted by tests relating to validation
1 parent 563e818 commit 7a4741a

File tree

4 files changed

+49
-37
lines changed

4 files changed

+49
-37
lines changed

DigitalLearningSolutions.Web.Tests/ViewModels/TrackingSystem/Centre/Reports/EditFilterViewModelTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public void Missing_end_date_doesnt_trigger_validation_when_EndDate_bool_is_fals
5656
StartMonth = 1,
5757
StartYear = 2021,
5858
EndDate = false,
59+
ReportInterval = Data.Enums.ReportInterval.Months,
5960
};
6061

6162
// When
@@ -75,6 +76,7 @@ public void Missing_end_date_triggers_validation_when_EndDate_bool_is_true()
7576
StartMonth = 1,
7677
StartYear = 2021,
7778
EndDate = true,
79+
ReportInterval = Data.Enums.ReportInterval.Months,
7880
};
7981
const string expectedErrorMessage = "Enter an End Date";
8082

@@ -146,6 +148,7 @@ int endYear
146148
EndMonth = endMonth,
147149
EndYear = endYear,
148150
EndDate = false,
151+
ReportInterval = Data.Enums.ReportInterval.Months,
149152
};
150153

151154
// When

DigitalLearningSolutions.Web/ViewModels/SuperAdmin/PlatformReports/CourseUsageEditFiltersViewModel.cs

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -221,19 +221,22 @@ private void ValidateEndDateIsAfterStartDate(List<ValidationResult> endDateValid
221221
}
222222
private void ValidatePeriodIsCompatibleWithDateRange(List<ValidationResult> periodValidationResults)
223223
{
224-
var startDate = GetValidatedStartDate();
225-
var endDate = GetValidatedEndDate();
226-
if (!ReportValidationHelper.IsPeriodCompatibleWithDateRange(ReportInterval, startDate, endDate))
224+
if (!periodValidationResults.Any())
227225
{
228-
periodValidationResults.Add(
229-
new ValidationResult(
230-
CommonValidationErrorMessages.ReportFilterReturnsTooManyRows,
231-
new[]
232-
{
226+
var startDate = GetValidatedStartDate();
227+
var endDate = GetValidatedEndDate();
228+
if (!ReportValidationHelper.IsPeriodCompatibleWithDateRange(ReportInterval, startDate, endDate))
229+
{
230+
periodValidationResults.Add(
231+
new ValidationResult(
232+
CommonValidationErrorMessages.ReportFilterReturnsTooManyRows,
233+
new[]
234+
{
233235
nameof(ReportInterval),
234-
}
235-
)
236-
);
236+
}
237+
)
238+
);
239+
}
237240
}
238241
}
239242
}

DigitalLearningSolutions.Web/ViewModels/SuperAdmin/PlatformReports/SelfAssessmentsEditFiltersViewModel.cs

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -219,22 +219,24 @@ private void ValidateEndDateIsAfterStartDate(List<ValidationResult> endDateValid
219219
}
220220
private void ValidatePeriodIsCompatibleWithDateRange(List<ValidationResult> periodValidationResults)
221221
{
222-
var startDate = GetValidatedStartDate();
223-
var endDate = GetValidatedEndDate();
224-
225-
if (!ReportValidationHelper.IsPeriodCompatibleWithDateRange(ReportInterval, startDate, endDate))
222+
if (!periodValidationResults.Any())
226223
{
227-
periodValidationResults.Add(
228-
new ValidationResult(
229-
CommonValidationErrorMessages.ReportFilterReturnsTooManyRows,
230-
new[]
231-
{
224+
var startDate = GetValidatedStartDate();
225+
var endDate = GetValidatedEndDate();
226+
227+
if (!ReportValidationHelper.IsPeriodCompatibleWithDateRange(ReportInterval, startDate, endDate))
228+
{
229+
periodValidationResults.Add(
230+
new ValidationResult(
231+
CommonValidationErrorMessages.ReportFilterReturnsTooManyRows,
232+
new[]
233+
{
232234
nameof(ReportInterval),
233-
}
234-
)
235-
);
235+
}
236+
)
237+
);
238+
}
236239
}
237-
238240
}
239241
}
240242
}

DigitalLearningSolutions.Web/ViewModels/TrackingSystem/Centre/Reports/EditFiltersViewModel.cs

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ private void ValidateEndDate(List<ValidationResult> validationResults)
174174
.ToValidationResultList(nameof(EndDay), nameof(EndMonth), nameof(EndYear));
175175

176176
ValidateEndDateIsAfterStartDate(endDateValidationResults);
177-
177+
ValidatePeriodIsCompatibleWithDateRange(endDateValidationResults);
178178
validationResults.AddRange(endDateValidationResults);
179179
}
180180

@@ -203,22 +203,26 @@ private void ValidateEndDateIsAfterStartDate(List<ValidationResult> endDateValid
203203
)
204204
);
205205
}
206+
206207
}
207208
private void ValidatePeriodIsCompatibleWithDateRange(List<ValidationResult> periodValidationResults)
208209
{
209-
var startDate = GetValidatedStartDate();
210-
var endDate = GetValidatedEndDate();
211-
if (!ReportValidationHelper.IsPeriodCompatibleWithDateRange(ReportInterval, startDate, endDate))
212-
{
213-
periodValidationResults.Add(
214-
new ValidationResult(
215-
CommonValidationErrorMessages.ReportFilterReturnsTooManyRows,
216-
new[]
217-
{
210+
if (!periodValidationResults.Any())
211+
{
212+
var startDate = GetValidatedStartDate();
213+
var endDate = GetValidatedEndDate();
214+
if (!ReportValidationHelper.IsPeriodCompatibleWithDateRange(ReportInterval, startDate, endDate))
215+
{
216+
periodValidationResults.Add(
217+
new ValidationResult(
218+
CommonValidationErrorMessages.ReportFilterReturnsTooManyRows,
219+
new[]
220+
{
218221
nameof(ReportInterval),
219-
}
220-
)
221-
);
222+
}
223+
)
224+
);
225+
}
222226
}
223227
}
224228
}

0 commit comments

Comments
 (0)