public async Task SendEmailToUserAsync(ContactFormReplyInputModel inputModel) { var contactFormReply = new ContactFormReply { ReplyMessage = inputModel.ReplyMessage, ContactFormId = inputModel.ContactForm.Id, }; var contactFormToAnswer = this.contactsRepository.All() .FirstOrDefault(x => x.Id == inputModel.ContactForm.Id); if (contactFormToAnswer == null) { throw new NullReferenceException(string.Format(ExceptionMessages.ContactFormMissing, inputModel.ContactForm.Id)); } contactFormToAnswer.IsAnswered = true; this.contactsRepository.Update(contactFormToAnswer); await this.contactsRepliesRepository.AddAsync(contactFormReply); await this.contactsRepliesRepository.SaveChangesAsync(); await this.contactsRepository.SaveChangesAsync(); await this.emailSender.SendEmailAsync( GlobalConstants.AdinistratorEmail, GlobalConstants.SystemName, inputModel.ContactForm.Email, inputModel.ContactForm.Title, inputModel.ReplyMessage); }
public async Task <IActionResult> Reply(int id) { var contactToAnswer = await this.contactsService.GetByIdAsync <ContactFormViewModel>(id); var viewModel = new ContactFormReplyInputModel { ContactForm = contactToAnswer, }; return(this.View(viewModel)); }
public async Task <IActionResult> Reply(ContactFormReplyInputModel inputModel) { var contactToAnswer = await this.contactsService.GetByIdAsync <ContactFormViewModel>(inputModel.Id); if (!this.ModelState.IsValid) { inputModel.ContactForm = contactToAnswer; return(this.View(inputModel)); } inputModel.ContactForm = contactToAnswer; await this.contactsService.SendEmailToUserAsync(inputModel); this.TempData[GlobalConstants.RedirectedFromContactsReplyForm] = true; return(this.RedirectToAction(nameof(this.Success))); }