public void TestSearchGradeLevel() { var parameters = new ItemsSearchParams(null, GradeLevels.High, null, new string[] { }, new string[] { }, false); var cards = SampleItemsSearchRepo.GetItemCards(parameters); var cardsCheck = Context.ItemCards.Where(c => GradeLevelsUtils.Contains(GradeLevels.High, c.Grade)).ToList(); Assert.NotNull(cards); Assert.Equal(cards.Count, cardsCheck.Count); Assert.Equal(Sort(cards), Sort(cardsCheck)); }
public IList <ItemCardViewModel> GetItemCards(ItemsSearchParams parms) { var query = context.ItemCards.Where(i => i.Grade != GradeLevels.NA && !i.BrailleOnlyItem); if (parms == null) { return(query.ToList()); } int itemId; if (int.TryParse(parms.ItemId, out itemId)) { query = query.Where(i => i.ItemKey.ToString().StartsWith(itemId.ToString())); } if (parms.Grades != GradeLevels.All && parms.Grades != GradeLevels.NA) { query = query.Where(i => GradeLevelsUtils.Contains(parms.Grades, i.Grade)); } if (parms.Subjects != null && parms.Subjects.Any()) { query = query.Where(i => parms.Subjects.Contains(i.SubjectCode)); if (parms.InteractionTypes.Any()) { query = query.Where(i => parms.InteractionTypes.Contains(i.InteractionTypeCode)); } if (parms.ClaimIds.Any()) { query = query.Where(i => parms.ClaimIds.Contains(i.ClaimCode)); } } if (parms.PerformanceOnly) { query = query.Where(i => i.IsPerformanceItem); } return(query.OrderBy(i => i.SubjectCode).ThenBy(i => i.Grade).ThenBy(i => i.ClaimCode).ToList()); }