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(); }
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); }
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); }