Exemple #1
0
        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));
        }
Exemple #2
0
        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);
            });
        }