Ejemplo n.º 1
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));
        }
Ejemplo n.º 2
0
 /// <summary>
 /// This helper function converts the assignment to a DTO.
 /// </summary>
 private static DeckAssignmentDTO ItemToDTO(DeckAssignment deckAssignment, List <string> roles) =>
 new DeckAssignmentDTO
 {
     Deck = new DeckInfoDTO()
     {
         Id          = deckAssignment.Deck.Id,
         Name        = deckAssignment.Deck.Name,
         Module      = deckAssignment.Deck.Module,
         Status      = deckAssignment.Deck.Status,
         Deck_number = deckAssignment.Deck.Deck_number
     },
     User = new UserDTO()
     {
         Id    = deckAssignment.ApplicationUser.Id,
         Name  = deckAssignment.ApplicationUser.Name,
         Email = deckAssignment.ApplicationUser.Email,
         Roles = roles
     }
 };