public bool SendEmailToParent(SendEmailToParentDTO sendEmailToParentDTO)
        {
            try
            {
                if (sendEmailToParentDTO == null)
                {
                    throw new ArgumentNullException($"DTO is null");
                }
                var teacher = _dbContext.Users.OfType <Teacher>()
                              .FirstOrDefault(x => x.Id == sendEmailToParentDTO.SenderId);
                if (teacher == null || _userManager.IsInRoleAsync(teacher, "Teacher").Result == false)
                {
                    throw new InvalidOperationException("Sender is not a teacher");
                }

                var student = _dbContext.Users.OfType <Student>()
                              .FirstOrDefault(x => x.Id == sendEmailToParentDTO.StudentId);
                if (student == null || !_userManager.IsInRoleAsync(student, "Student").Result)
                {
                    throw new InvalidOperationException("Given user is not a student");
                }

                var mailMessage = new MailMessage(to: student.Parent.Email, subject: sendEmailToParentDTO.Title, body: sendEmailToParentDTO.Content, from: teacher.Email);
                _smtpClient.Send(mailMessage);
                return(true);
            }
            catch (Exception ex)
            {
                return(false);
            }
        }
        public IActionResult Index(SendEmailToParentDTO sendEmailToParentDTO)
        {
            if (ModelState.IsValid)
            {
                /*if(_emailService.SendEmailToParent(sendEmailToParentDTO))
                 * {*/
                return(RedirectToAction("Details", new
                {
                    SenderId = sendEmailToParentDTO.SenderId,
                    StudentId = sendEmailToParentDTO.StudentId,
                    Title = sendEmailToParentDTO.Title,
                    Content = sendEmailToParentDTO.Content
                }));

                /*
                 * }*/
            }
            return(View("Error"));
        }
 public IActionResult Details(SendEmailToParentDTO sendEmailToParentDTO)
 {
     try
     {
         var student        = _userManager.FindByIdAsync(sendEmailToParentDTO.StudentId.ToString()).Result as Student;
         var parent         = _userManager.FindByIdAsync(student.ParentId.ToString()).Result as Parent;
         var sender         = _userManager.FindByIdAsync(sendEmailToParentDTO.SenderId.ToString()).Result;
         var emailToDisplay = new SentEmailVM()
         {
             SenderName  = $"{sender.FirstName} {sender.LastName}",
             ParentName  = $"{parent.FirstName} {parent.LastName}",
             StudentName = $"{student.FirstName} {student.LastName}",
             Title       = sendEmailToParentDTO.Title,
             Content     = sendEmailToParentDTO.Content
         };
         return(View(emailToDisplay));
     }
     catch (Exception)
     {
         return(RedirectToAction("Index"));
     }
 }