コード例 #1
0
        public async Task CreateAssignment_RightObjectPassed_ReturnsCreatedAtAction()
        {
            // Arrange
            var controller      = new DeckAssignmentsController(flashcardDbContextMock.Object, GetMockUserManager().Object, emailService, logger);
            var rightAssignment = new DeckAssignmentDTO
            {
                Deck = new DeckInfoDTO()
                {
                    Id          = 2,
                    Name        = "Teszt csomag 2",
                    Module      = Module.A,
                    Deck_number = 2,
                    Status      = DeckStatus.Approved
                },
                User = new UserDTO()
                {
                    Id    = "268e543e-2020-ue63-a111-98321798c21",
                    Email = "*****@*****.**",
                    Name  = "Teszt User 2",
                }
            };

            // Act
            var result = await controller.CreateDeckAssignment(rightAssignment);

            // Asssert
            Assert.IsType <CreatedAtActionResult>(result.Result);
        }
コード例 #2
0
        public async Task <ActionResult <DeckAssignmentDTO> > CreateDeckAssignment([FromBody] DeckAssignmentDTO deckAssignmentDTO)
        {
            if (!ModelState.IsValid)
            {
                _logger.LogError("ModelState is invalid in the CreateDeckAssignment() method");
                return(BadRequest(ModelState));
            }
            var deckAssignment = new DeckAssignment
            {
                DeckId            = deckAssignmentDTO.Deck.Id,
                ApplicationUserId = deckAssignmentDTO.User.Id
            };

            _context.DeckAssignment.Add(deckAssignment);
            await _context.SaveChangesAsync();

            try
            {
                var from    = "Tanulókártya";
                var subject = "Tanulókártya hozzárendelés";
                var name    = deckAssignmentDTO.User.Name;
                var email   = deckAssignmentDTO.User.Email;

                var body = "Kedves <b>" + name + "! </b><br/>" + "A tanulókártya projektben hozzárendeltek egy kártyacsomaghoz!";
                await emailService.SendEmail(from, email, subject, body);
            }
            catch (System.Exception)
            {
                _logger.LogError("BadRequest the CreateDeckAssignment() method");
                return(BadRequest(new { message = "SendEmail was not successful. " }));
            }

            _logger.LogInformation("Creating assignment in the CreateDeckAssignment() method");
            return(CreatedAtAction(nameof(GetDeckAssignmentByUserId), deckAssignment));
        }
コード例 #3
0
        public async Task CreateDeckAssignment_InvalidObjectPassed_ReturnsBadRequest()
        {
            // Arrange
            var controller = new DeckAssignmentsController(flashcardDbContextMock.Object, GetMockUserManager().Object, emailService, logger);
            var deckIdMissingAssignment = new DeckAssignmentDTO
            {
                Deck = new DeckInfoDTO()
                {
                    Id          = 2,
                    Name        = "Teszt csomag 2",
                    Module      = Module.A,
                    Deck_number = 2,
                    Status      = DeckStatus.Approved
                },
                User = new UserDTO()
                {
                    Id    = "268e543e-2020-ue63-a111-98321798c21",
                    Email = "*****@*****.**",
                    Name  = "Teszt User 2",
                }
            };

            controller.ModelState.AddModelError("DeckId", "Required");

            // Act
            var result = await controller.CreateDeckAssignment(deckIdMissingAssignment);

            // Asssert
            Assert.IsType <BadRequestObjectResult>(result.Result);
        }