示例#1
0
        public ActionResult SendEmail(EmailBodyViewModel contactModel)
        {
            if (!ModelState.IsValid)
            {
                //Not necessary, but another way to get hold of validation errors
                IEnumerable <ModelError> allErrors = ModelState.Values.SelectMany(v => v.Errors);

                List <string> errorList = new List <string>();

                var modelErrors = allErrors as ModelError[] ?? allErrors.ToArray();
                errorList.Add("<ul class=\"list-unstyled\">");
                foreach (var error in modelErrors)
                {
                    errorList.Add($"<li class=\"text-danger\">{error.ErrorMessage}</li>");
                }
                errorList.Add("</ul>");

                string displayErrors = string.Join(" ", errorList.ToArray());
                TempData["ErrorList"] = displayErrors;

                return(View("Home"));
            }

            EmailBodyViewModel emailBodyModel = new EmailBodyViewModel
            {
                Email   = contactModel.Email,
                Name    = contactModel.Name,
                Subject = contactModel.Subject,
                Message = contactModel.Message
            };

            //Instead of using stringbuilder to create email body, use an online source to create email body such as https://chamaileon.io/
            var emailBody = _renderMvcPartialsContact.RenderPartialViewToString("pvContactPartialViewTemplate", emailBodyModel);

            EmailParametersHelper emailModel = new EmailParametersHelper
            {
                BodyText         = emailBody,
                EmailModelHelper = emailBodyModel
            };
            bool emailSentStatus = SendEmailHelper.SendEmail(emailModel);

            if (emailSentStatus)
            {
                TempData["Status"] = "Email Sent";
                return(View());
            }

            TempData["Status"] = "Email Failed";
            return(View());
        }
示例#2
0
        public async Task <IActionResult> FillEmailForm(string id)
        {
            try
            {
                var emailDto = new EmailContentDto
                {
                    GmailId = id
                };
                var email = await this.service.TakeBodyAsync(emailDto);

                var encryptBody = this.encodeDecodeService.Decrypt(email.Body);

                var result = new EmailBodyViewModel(id, encryptBody);

                return(View("FillEmailForm", result));
            }
            catch (EmailExeption ex)
            {
                return(View("Message", new MessageViewModel {
                    Message = ex.Message
                }));
            }
        }
示例#3
0
        public async Task <IActionResult> CheckBody(string id)
        {
            try
            {
                var emailDto = new EmailContentDto
                {
                    UserId  = User.FindFirstValue(ClaimTypes.NameIdentifier),
                    GmailId = id
                };
                var email = await this.service.CheckEmailBodyAsync(emailDto);

                var decodeBody = this.encodeDecodeService.Decrypt(email.Body);

                var result = new EmailBodyViewModel(id, decodeBody);

                return(View("CheckBody", result));
            }
            catch (EmailExeption ex)
            {
                return(View("Message", new MessageViewModel {
                    Message = ex.Message
                }));
            }
        }