public async Task <bool> CopyDeckAsync(Guid userId, Guid deckId) { var deck = await deckRepository.FindByIdAsync(deckId); if (deck == null) { return(false); } var newDeck = new DeckEntity(userId, deck.Title); var result = await deckRepository.InsertAsync(newDeck); var cards = await cardRepository.GetCardsByDeckAsync(deck.Id); if (result == null || cards == null) { return(false); } var tasks = cards.Select(c => Task.Run(() => cardRepository.InsertAsync(new CardEntity(result.Id, c.Question, c.Answer)) )); var results = await Task.WhenAll(tasks); return(results.All(c => c != null)); }