public ActionResult AddSort(int?categoryId) { SortingCategory sortingCategory = _context.SortingCategory .Include(s => s.NewOptions) .Include(s => s.SortingGroup) .FirstOrDefault(s => s.Id == categoryId); if (sortingCategory != null) { currentSortingCategory = sortingCategory; } foreach (NewOptions option in sortingCategory.NewOptions) { newOpts.Add(option.SortingGroupId); } List <Exercise> filteredExercises = GetExercises(); //Narrow down the list of exercises to display based on what the user has selected SortingCategory sc = currentSortingCategory; if (sc.Name.Contains("Pull") || sc.Name.Contains("Push") || sc.Name.Contains("Legs")) { filteredExercises = PushPullLegsSearch(sc.Name, sc.SortingGroup.ExerciseColumnName, filteredExercises); } else { //Uses reflection to get the column based on ExerciseColumnname and then compare that value to the sortby string filteredExercises = filteredExercises.Where(e => e.GetType().GetProperty(sc.SortingGroup.ExerciseColumnName).GetValue(e, null) != null).ToList(); filteredExercises = filteredExercises.Where(e => e.GetType().GetProperty(sc.SortingGroup.ExerciseColumnName).GetValue(e, null).ToString() == sc.SortBy).ToList(); } currentSortingCategory = null; currentExercises = filteredExercises; return(PartialView("Views/Home/_PartialGrid.cshtml", currentExercises)); }
public ActionResult AddMultiSort(string categoryIds) { categoryIds = categoryIds.TrimEnd(','); int[] ids = Array.ConvertAll(categoryIds.Split(','), int.Parse); multiChoiceCategories = new List <SortingCategory>(); foreach (int id in ids) { SortingCategory sortingCategory = _context.SortingCategory .Include(sc => sc.NewOptions) .Include(sc => sc.SortingGroup) .FirstOrDefault(sc => sc.Id == id); multiChoiceCategories.Add(sortingCategory); } List <Exercise> filteredExercises = GetExercises(); if (multiChoiceCategories.Count() > 0) { filteredExercises = filteredExercises.Where(e => multiChoiceCategories .Any(s => s.SortBy == e.Equipment.ToString() || s.SortBy == e.Difficulty.ToString())).ToList(); multiChoiceCategories.Clear(); } currentExercises = filteredExercises; return(PartialView("Views/Home/_PartialGrid.cshtml", currentExercises)); }
public void GetSortingCategoryTest_ValidOption(SortingOption sortingOption, SortingCategory expectedSortingCategory) { //Arrange SortingCategory actualSortingCategory; //Act actualSortingCategory = MobileSortingService.GetSortingCategory(sortingOption); //Assert Assert.AreEqual(expectedSortingCategory, actualSortingCategory); }