Exemple #1
0
        public async Task Post(int deckID, int multiverseID)
        {
            var deckCard = new DeckCards();

            //get card from service
            var card = await _mtgService.GetCardByID(multiverseID);

            //map to dto
            var model = _mapper.Map <CardDto>(card);

            deckCard.CardID = card.id;
            deckCard.DeckID = deckID;

            //insert card into db if it doesnt exist
            var dbCard = _context.Card.Where(x => x.id == card.id).SingleOrDefault();

            if (dbCard == null)
            {
                _context.Card.Add(model);
                _context.SaveChanges();
            }
            ;

            //insert into deckcard
            _context.DeckCards.Add(deckCard);
            _context.SaveChanges();
        }
        public async Task Post(int deckID, string cardID)
        {
            var deckCard = new DeckCards();

            deckCard.CardID = cardID;
            deckCard.DeckID = deckID;

            // cant make this block async as the _context.deckcards.add rely on a card in the database
            //insert card into db if it doesnt exist
            var dbCard = _context.Card.Where(x => x.id == cardID).SingleOrDefault();

            if (dbCard == null)
            {
                var card = await _mtgService.GetCardByID(cardID);

                var model = _mapper.Map <CardDto>(card);

                _context.Card.Add(model);
                _context.SaveChanges();
            }
            ;

            //insert into deckcard
            _context.DeckCards.Add(deckCard);
            _context.SaveChanges();
        }
Exemple #3
0
        public async Task <Deck> CreateNewDeck(MtgIdentity identity, NewDeckData newDeckData)
        {
            EnsureDeckDoesNotExist(identity, newDeckData.Title);
            var newDeck = Deck.New(identity, newDeckData);
            await _context.Decks.AddAsync(newDeck);

            _context.SaveChanges();
            return(newDeck);
        }
Exemple #4
0
        public IActionResult Create(Deck deck)
        {
            var UserIDString = _userManager.GetUserId(HttpContext.User);

            deck.UserID = new Guid(UserIDString);

            _context.Deck.Add(deck);

            _context.SaveChanges();

            return(RedirectToAction(nameof(Index)));
        }
        /// <summary>
        /// This is obsolete, use a card service instead
        /// </summary>
        private async Task <Card> TryCreateAndGetCard(Guid cardId)
        {
            var dbCard = _context.Cards.SingleOrDefault(x => x.Id == cardId);

            if (dbCard == null)
            {
                var card = await _mtgHttpClient.GetCardById(cardId);

                var model = _mapper.Map <Card>(card);

                await _context.Cards.AddAsync(model);

                _context.SaveChanges();
                dbCard = model;
            }
            ;
            return(dbCard);
        }