コード例 #1
0
        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);
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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)));
        }