Beispiel #1
0
        public SearchViewModel Search(string query)
        {
            SearchViewModel results = new SearchViewModel();

            results.Card = new Card();

            string[] tags = query.Split(' ', ',', '+');
            foreach (string tag in tags)
            {
                results.SearchTerms.Add(new Tag()
                {
                    Name = tag.ToLower()
                });
            }

            HashSet <int> uniqueCardIds = new HashSet <int>();

            foreach (Tag tag in results.SearchTerms)
            {
                uniqueCardIds = cardSqlDAL.SearchForCard(tag);
            }

            foreach (int id in uniqueCardIds)
            {
                results.SearchResults.Add(cardSqlDAL.GetCardById(id));
            }

            results.UserDecksSelectList = decksSqlDAL.GetUserDecksSelectList(authProvider.GetCurrentUser().Id);

            return(results);
        }
Beispiel #2
0
        public IActionResult AddCardFromSearch(SearchViewModel svm)
        {
            Card cardToAdd = cardSqlDAL.GetCardById(svm.Card.Id);

            cardToAdd.DeckId    = svm.Card.DeckId;
            cardToAdd.CardOrder = decksSqlDAL.GetNextCardOrder(cardToAdd.DeckId);
            cardToAdd           = cardSqlDAL.AddCardToDeck(cardToAdd);
            return(RedirectToAction("ViewDeck", new { deckId = cardToAdd.DeckId }));
        }
Beispiel #3
0
        public void GetCardByIdShouldReturnCorrectCard()
        {
            Card card = new Card()
            {
                Front     = "testFront",
                Back      = "testBack",
                CardOrder = 1,
                DeckId    = testDeckId,
                ImageURL  = "",
            };

            // Get new ID
            card = dal.AddCardToDeck(card);

            Card result = dal.GetCardById(card.Id);

            Assert.AreEqual(card.Front, result.Front);
            Assert.AreEqual(card.Back, result.Back);
            Assert.AreEqual(card.Id, result.Id);
            Assert.AreEqual(card.DeckId, result.DeckId);
        }