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