public IActionResult Search(string itemID, GradeLevels gradeLevels, string[] subjects, string[] interactionTypes, string[] claims, bool performanceOnly) { var parms = new ItemsSearchParams(itemID, gradeLevels, subjects, interactionTypes, claims, performanceOnly); var items = sampleItemsSearchRepo.GetItemCards(parms); return(Json(items)); }
public void TestGetItemCardsEmptyList() { var parameters = new ItemsSearchParams("-1", GradeLevels.High, null, new string[] { }, new string[] { }, false); var cards = SampleItemsSearchRepo.GetItemCards(parameters); Assert.NotNull(cards); Assert.Empty(cards); }
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 void TestGetItemCardsItemKey() { var parameters = new ItemsSearchParams(BadItemKey.ToString(), GradeLevels.All, null, new string[] { }, new string[] { }, false); var cards = SampleItemsSearchRepo.GetItemCards(parameters); var cardsCheck = Context.ItemCards.Where(c => c.ItemKey.ToString().StartsWith(BadItemKey.ToString())).ToList(); Assert.NotNull(cards); Assert.Equal(cardsCheck.Count, cards.Count); Assert.Equal(Sort(cardsCheck), Sort(cards)); }
public void TestGetItemCardsNull() { var parameters = new ItemsSearchParams(null, GradeLevels.All, null, null, null, false); var cards = SampleItemsSearchRepo.GetItemCards(parameters); var cardsCheck = Context.ItemCards; Assert.NotNull(cards); Assert.Equal(cards.Count, cardsCheck.Count()); Assert.Equal(Sort(cards), Sort(cardsCheck)); }
public void TestNonIntegerItemId() { var parameters = new ItemsSearchParams("NOT A NUMBER!", GradeLevels.All, null, new string[] { }, new string[] { }, false); var cards = SampleItemsSearchRepo.GetItemCards(parameters); var cardsCheck = Context.ItemCards; Assert.NotNull(cards); Assert.Equal(cards.Count, cardsCheck.Count()); Assert.Equal(Sort(cards), Sort(cardsCheck)); }
public void TestGetItemCardsClaimNoSubject() { var parameters = new ItemsSearchParams(null, GradeLevels.All, null, new string[] { }, new string[] { Claim2.Code }, false); var cards = SampleItemsSearchRepo.GetItemCards(parameters); Assert.NotNull(cards); Assert.Equal(Context.ItemCards.Count(), cards.Count); //Shouldn't filter cards because no subject Assert.Equal(Sort(Context.ItemCards), Sort(cards)); }
public void TestGetItemCardsMultipleGrade() { var parameters = new ItemsSearchParams(null, GradeLevels.Grade9 | GradeLevels.Grade4, null, new string[] { }, new string[] { }, false); var cards = SampleItemsSearchRepo.GetItemCards(parameters); var cardsCheck = Context.ItemCards.Where(c => c.Grade == GradeLevels.Grade9 || c.Grade == GradeLevels.Grade4 || c.Grade == GradeLevels.Elementary || c.Grade == GradeLevels.High).ToList(); Assert.NotNull(cards); Assert.Equal(cards.Count, 3); Assert.Equal(Sort(cards), Sort(cardsCheck)); }
public void TestGetItemCardsSubjectAndClaim() { var parameters = new ItemsSearchParams(null, GradeLevels.All, new List <string>() { Math.Code }, new string[] { }, new string[] { Claim2.Code }, false); var cards = SampleItemsSearchRepo.GetItemCards(parameters); var cardsCheck = Context.ItemCards.Where(c => c.SubjectCode == Math.Code && c.ClaimCode == Claim2.Code).ToList(); Assert.NotNull(cards); Assert.Equal(cardsCheck.Count, cards.Count); Assert.Equal(Sort(cardsCheck), Sort(cards)); }
public void TestSearchItemType() { var parameters = new ItemsSearchParams(null, GradeLevels.All, new List <string>() { Math.Code, Ela.Code }, new string[] { ItEla.Code }, new string[] { }, false); var cards = SampleItemsSearchRepo.GetItemCards(parameters); var cardsCheck = Context.ItemCards.Where(c => c.InteractionTypeCode == ItEla.Code).ToList(); Assert.NotNull(cards); Assert.Equal(cards.Count, cardsCheck.Count); Assert.Equal(Sort(cards), Sort(cardsCheck)); }
public void TestSearchAllCategories() { var parameters = new ItemsSearchParams(GoodItemKey.ToString(), GradeLevels.Grade6, new List <string>() { Math.Code }, new string[] { ItMath.Code }, new string[] { Claim1.Code }, false); var cards = SampleItemsSearchRepo.GetItemCards(parameters); var cardsCheck = Context.ItemCards.Where(c => c.SubjectCode == Math.Code && c.ItemKey == GoodItemKey && c.Grade == GradeLevels.Grade6 && c.InteractionTypeCode == ItMath.Code && c.ClaimCode == Claim1.Code).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()); }