public async Task <ActionResult <DeckModel> > CreateAsync(DeckCreateModel model, CancellationToken cancellationToken) { var userId = (await GetUserAsync(cancellationToken: cancellationToken)).Id; var newDeck = await _deckService.CreateDeckAsync(model, userId, cancellationToken : cancellationToken); return(CreatedAtAction(nameof(GetByIdAsync), new { id = newDeck.Id }, newDeck)); }
async Task <DeckModel> IDeckService.CreateDeckAsync(DeckCreateModel deck, int userId, CancellationToken cancellationToken) { var newDeckCreate = new DeckCreateData { Description = deck.Description, MaxCards = 5, Name = deck.Name, UserId = userId, }; var newDeck = await _deckRepository.CreateDeckAsync(newDeckCreate, cancellationToken : cancellationToken); return(_deckDataMapper.Map(newDeck)); }
public async Task <IActionResult> CreateAsync(DeckCreateModel deckCreateModel) { var newCards = await Task.WhenAll(deckCreateModel.Cards .Select(newCard => cardsService.CreateAsync(newCard.Question, newCard.Answer))); var newDeck = await decksService.CreateAsync(deckCreateModel.Name, newCards); return(CreatedAtAction(nameof(GetAsync), new { id = newDeck.Id }, new DeckModel { Id = newDeck.Id, Name = newDeck.Name, Cards = newCards .ToList() })); }
public async Task CreateAsync_ValidDeck_ReturnsNewDeck() { await RunAsync(async factory => { var deck = new DeckCreateModel { Description = "Test desc", Name = "Test name", }; var client = factory.CreateClientWithAuth(); var response = await client.PostJsonAsync("api/decks", deck); response.EnsureSuccessStatusCode(); var model = await response.Content.ReadAsAsync <DeckModel>(); Assert.NotNull(model); Assert.True(model.Id > 0); Assert.Equal(deck.Description, model.Description); Assert.Equal(deck.Name, model.Name); }); }