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")); } }