Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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));
        }