Beispiel #1
0
        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));
        }
Beispiel #2
0
        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);
        }