public async Task <IActionResult> Body(string articleName) { logService.LogInformation($"{nameof(this.Body)} has been called"); var model = new BodyViewModel { Content = new HtmlString("Find a course: Body element") }; model.SideBar = GetSideBarViewModel(); model.SideBar.OrderByOptions = ListFilters.GetOrderByOptions(); logService.LogInformation($"{nameof(this.Body)} generated the model and ready to pass to the view"); return(await SearchCourse(string.Empty).ConfigureAwait(true)); }
public async Task <IActionResult> SearchCourse(string searchTerm) { logService.LogInformation($"{nameof(this.SearchCourse)} has been called"); var model = new BodyViewModel(); var courseSearchFilters = new CourseSearchFilters { CourseType = new List <CourseType> { CourseType.All }, CourseHours = new List <CourseHours> { CourseHours.All }, StartDate = StartDate.Anytime, CourseStudyTime = new List <Fac.AttendancePattern> { Fac.AttendancePattern.Undefined }, SearchTerm = string.IsNullOrEmpty(searchTerm) ? string.Empty : searchTerm, }; model.SideBar = GetSideBarViewModel(); model.SideBar.OrderByOptions = ListFilters.GetOrderByOptions(); model.CurrentSearchTerm = searchTerm; model.SideBar.CurrentSearchTerm = searchTerm; model.RequestPage = 1; try { model.Results = await findACourseService.GetFilteredData(courseSearchFilters, CourseSearchOrderBy.StartDate, 1).ConfigureAwait(true); } catch (Exception ex) { logService.LogError($"{nameof(this.SearchCourse)} threw an exception" + ex.Message); } logService.LogInformation($"{nameof(this.SearchCourse)} generated the model and ready to pass to the view"); return(Results(model)); }
public IActionResult Results(BodyViewModel model) { logService.LogInformation($"{nameof(this.Results)} has been called"); var sideBarViewModel = GetSideBarViewModel(); foreach (var item in sideBarViewModel.DistanceOptions) { if (item.Value == model.SideBar.DistanceValue) { item.Selected = true; break; } } sideBarViewModel.DistanceValue = model.SideBar.DistanceValue; sideBarViewModel.TownOrPostcode = model.SideBar.TownOrPostcode; sideBarViewModel.StartDateValue = model.SideBar.StartDateValue; sideBarViewModel.DistanceValue = model.SelectedDistanceValue; sideBarViewModel.CurrentSearchTerm = model.CurrentSearchTerm; sideBarViewModel.FiltersApplied = model.SideBar.FiltersApplied; sideBarViewModel.SelectedOrderByValue = model.SideBar.SelectedOrderByValue; sideBarViewModel.D = model.SideBar.D; if (model.SideBar.CourseType != null && model.SideBar.CourseType.SelectedIds.Any()) { model.SideBar.CourseType = CheckCheckboxState(model.SideBar.CourseType, sideBarViewModel.CourseType); sideBarViewModel.CourseType.SelectedIds = model.SideBar.CourseType.SelectedIds; } if (model.SideBar.CourseHours != null && model.SideBar.CourseHours.SelectedIds.Any()) { model.SideBar.CourseHours = CheckCheckboxState(model.SideBar.CourseHours, sideBarViewModel.CourseHours); sideBarViewModel.CourseHours.SelectedIds = model.SideBar.CourseHours.SelectedIds; } if (model.SideBar.CourseStudyTime != null && model.SideBar.CourseStudyTime.SelectedIds.Any()) { model.SideBar.CourseStudyTime = CheckCheckboxState(model.SideBar.CourseStudyTime, sideBarViewModel.CourseStudyTime); sideBarViewModel.CourseStudyTime.SelectedIds = model.SideBar.CourseStudyTime.SelectedIds; } if (model.Results?.Courses != null && model.Results.Courses.Any()) { foreach (var item in model.Results.Courses) { if (item.Description.Length > 220) { item.Description = item.Description.Substring(0, 200) + "..."; } } } var town = model.SideBar.TownOrPostcode; var distance = model.SideBar.DistanceValue; var courseType = model.SideBar.CourseType != null && model.SideBar.CourseType.SelectedIds?.Count > 0 ? JsonConvert.SerializeObject(model.SideBar.CourseType.SelectedIds) : null; var courseHours = model.SideBar.CourseHours != null && model.SideBar.CourseHours.SelectedIds?.Count > 0 ? JsonConvert.SerializeObject(model.SideBar.CourseHours.SelectedIds) : null; var courseStudyTime = model.SideBar.CourseStudyTime != null && model.SideBar.CourseStudyTime?.SelectedIds.Count > 0 ? JsonConvert.SerializeObject(model.SideBar.CourseStudyTime.SelectedIds) : null; var startDate = model.SideBar.StartDateValue; var searchTerm = sideBarViewModel.CurrentSearchTerm; var page = model.RequestPage; var filtera = model.SideBar.FiltersApplied; var orderByValue = model.SideBar.SelectedOrderByValue; if (!model.IsTest) { TempData["params"] = $"{nameof(searchTerm)}={searchTerm}&" + $"{nameof(town)}={town}&" + $"{nameof(courseType)}={courseType}&" + $"{nameof(courseHours)}={courseHours}&" + $"{nameof(courseStudyTime)}={courseStudyTime}&" + $"{nameof(startDate)}={startDate}&" + $"{nameof(distance)}={distance}&" + $"{nameof(filtera)}={filtera}&" + $"{nameof(page)}={page}&" + $"{nameof(orderByValue)}={orderByValue}"; } model.SideBar = sideBarViewModel; model.SideBar.OrderByOptions = ListFilters.GetOrderByOptions(); logService.LogInformation($"{nameof(this.Results)} generated the model and ready to pass to the view"); return(View("Body", model)); }