Skip to content
Merged
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ int EnrolOnActivitySelfAssessment(int selfAssessmentId, int candidateId, int sup
public IEnumerable<DelegateAssessmentStatistics> GetDelegateAssessmentStatisticsAtCentre(string searchString, int centreId, string categoryName, string isActive, int? categoryId);

bool IsSelfEnrollmentAllowed(int customisationId);
Customisation? GetCourse(int customisationId);
Customisation? GetCourse(int? customisationId);
}

public class CourseDataService : ICourseDataService
Expand Down Expand Up @@ -2024,7 +2024,7 @@ public bool IsSelfEnrollmentAllowed(int customisationId)
return selfRegister > 0;
}

public Customisation? GetCourse(int customisationId)
public Customisation? GetCourse(int? customisationId)
{
return connection.Query<Customisation>(
@"SELECT CustomisationID
Expand All @@ -2040,6 +2040,7 @@ public bool IsSelfEnrollmentAllowed(int customisationId)
,DiagObjSelect
,HideInLearnerPortal
,NotificationEmails
,Q1Options
FROM Customisations
WHERE CustomisationID = @customisationID ",
new { customisationId }).FirstOrDefault();
Expand Down
27 changes: 27 additions & 0 deletions DigitalLearningSolutions.Data/Helpers/FilteringHelper.cs
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,34 @@ public static string BuildFilterValueString(string group, string propertyName, s
? defaultFilterValue
: AddNewFilterToFilterString(existingFilterString, newFilterToAdd);
}
public static string? GetFilterString(
string? existingFilterString,
string? newFilterToAdd,
bool clearFilters,
HttpRequest request,
string cookieName,
string? q1Options,
string? defaultFilterValue = null
)
{
var cookieHasBeenSet = request.Cookies.ContainsKey(cookieName);
var noFiltersInQueryParams = existingFilterString == null && newFilterToAdd == null;
var cookieValue = request.Cookies[cookieName];
if ((clearFilters) || (q1Options == null && cookieValue != null && cookieValue.Contains("Answer1|Not Allowed") ||
(cookieValue != null && cookieValue.Contains("Answer1|Allowed"))))
{
return null;
}

if (cookieHasBeenSet && noFiltersInQueryParams)
{
return request.Cookies[cookieName] == EmptyFiltersCookieValue ? null : request.Cookies[cookieName];
}

return noFiltersInQueryParams
? defaultFilterValue
: AddNewFilterToFilterString(existingFilterString, newFilterToAdd);
}
public static string? GetCategoryAndTopicFilterString(
string? categoryFilterString,
string? topicFilterString
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ public Customisation(
public string? NotificationEmails { get; set; }
public int CustomisationId { get; set; }
public bool Active { get; set; }
public string? Q1Options { get; set; }

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -95,13 +95,14 @@ public IActionResult Index(

sortBy ??= DefaultSortByOptions.Name.PropertyName;
sortDirection ??= GenericSortingHelper.Ascending;

existingFilterString = FilteringHelper.GetFilterString(
var course = courseService.GetCourse(customisationId);
existingFilterString = FilteringHelper.GetFilterString(
existingFilterString,
newFilterToAdd,
clearFilters,
Request,
filterCookieName,
course.Q1Options,
CourseDelegateAccountStatusFilterOptions.Active.FilterValue
);

Expand Down
4 changes: 2 additions & 2 deletions DigitalLearningSolutions.Web/Services/CourseService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ int diagCompletionThreshold
int GetNumberOfActiveCoursesAtCentreFilteredByCategory(int centreId, int? categoryId);
public IEnumerable<Course> GetApplicationsAvailableToCentre(int centreId);
bool IsSelfEnrollmentAllowed(int customisationId);
Customisation? GetCourse(int customisationId);
Customisation? GetCourse(int? customisationId);
}

public class CourseService : ICourseService
Expand Down Expand Up @@ -632,7 +632,7 @@ public bool IsSelfEnrollmentAllowed(int customisationId)
return courseDataService.IsSelfEnrollmentAllowed(customisationId);
}

public Customisation? GetCourse(int customisationId)
public Customisation? GetCourse(int? customisationId)
{
return courseDataService.GetCourse(customisationId);
}
Expand Down
Loading