Ejemplo n.º 1
0
        /// <summary>
        /// Prepare Email options for various system requests
        /// </summary>
        /// <param name="requestViewModel"></param>
        /// <returns></returns>
        private EmailOptions PrepareEmailOptions(RequestViewModel requestViewModel)
        {
            var emailOptions = new EmailOptions();
            var msgBody      = SendGridMailHelper.MailBody(_hostingEnvironment, emailOptions.Template);

            if (!string.IsNullOrEmpty(msgBody))
            {
                emailOptions.Subject = "Request Received - SubQuip";
                emailOptions.CcMail  = new MailUser {
                    Name = requestViewModel.MailUsers[0].Name, Email = requestViewModel.MailUsers[0].Email
                };
                emailOptions.HtmlBody    = msgBody.Replace("{Name}", emailOptions.CcMail.Name).Replace("{Email}", emailOptions.CcMail.Email).Replace("{Company}", requestViewModel.Company).Replace("{PhoneNumber}", requestViewModel.PhoneNumber).Replace("{FromDate}", requestViewModel.FromDate.ToString("dd-MM-yyyy")).Replace("{ToDate}", requestViewModel.ToDate.ToString("dd-MM-yyyy")).Replace("{Description}", requestViewModel.Description).Replace("{Type}", requestViewModel.Type.ToString());
                emailOptions.PlainBody   = string.Empty;
                emailOptions.Template    = MailTemplate.Request;
                emailOptions.ToMailsList = new List <MailUser> {
                    new MailUser {
                        Name = "SubQuip", Email = _configuration["requestEmail"]
                    }
                };
                emailOptions.Attachments = new List <Attachment>
                {
                    new Attachment()
                    {
                        Content     = System.Text.Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(requestViewModel)),
                        Name        = "Request.json",
                        ContentType = "text/json"
                    }
                };
            }
            return(emailOptions);
        }
Ejemplo n.º 2
0
        public async Task <IResult> Create()
        {
            IResult result           = null;
            var     requestViewModel = JsonConvert.DeserializeObject <RequestViewModel>(Request.Form["model"]);

            if (requestViewModel != null)
            {
                var fileList = new List <FileDetails>();
                var files    = Request.Form.Files;
                if (files.Any())
                {
                    foreach (var file in files)
                    {
                        var fileModel = FileHelper.GetFileDetails(file);
                        fileList.Add(fileModel);
                    }
                }
                result = _requestManager.InsertRequest(fileList, requestViewModel);
                if (result.Status == Status.Success)
                {
                    var emailOptions = PrepareEmailOptions(requestViewModel);
                    if (!string.IsNullOrEmpty(emailOptions.HtmlBody))
                    {
                        #region Append attach files
                        foreach (var file in files)
                        {
                            byte[] content = null;
                            using (var ms = new MemoryStream())
                            {
                                file.CopyTo(ms);
                                content = ms.ToArray();
                            }
                            emailOptions.Attachments.Add(new Attachment
                            {
                                Name        = file.FileName,
                                ContentType = file.ContentType,
                                Content     = content
                            });
                        }
                        #endregion

                        var response = await SendGridMailHelper.SendEmail(_configuration, emailOptions);

                        if (response.StatusCode == HttpStatusCode.Accepted)
                        {
                            result.Message += "; Mail sent.";
                        }
                        else
                        {
                            result.Message += "; Mail not sent to provided email.";
                        }
                    }
                    else
                    {
                        result.Message += "; Mail not sent, as email template not found";
                    }
                }
            }
            return(result);
        }
        public async Task <IResult> Create([FromBody] ContactUsViewModel contactUsViewModel)
        {
            var options = new EmailOptions
            {
                Subject = "Contact form received - SubQuip",
                CcMail  = new MailUser {
                    Name = contactUsViewModel.Name, Email = contactUsViewModel.Email
                },
                ToMailsList = new List <MailUser> {
                    new MailUser {
                        Name = "SubQuip", Email = _configuration["contactEmail"]
                    }
                },
                PlainBody = string.Empty,
                Template  = MailTemplate.ContactUs
            };
            var msgBody = SendGridMailHelper.MailBody(_hostingEnvironment, options.Template);

            if (!string.IsNullOrEmpty(msgBody))
            {
                var result = new Result {
                    Status = Status.Success, Message = string.Empty, Body = string.Empty, Operation = Operation.Create
                };
                options.HtmlBody = msgBody.Replace("{Name}", contactUsViewModel.Name).Replace("{Email}", contactUsViewModel.Email).Replace("{Company}", contactUsViewModel.Company).Replace("{Message}", contactUsViewModel.Message).Replace("{PhoneNumber}", contactUsViewModel.PhoneNumber);
                var response = await SendGridMailHelper.SendEmail(_configuration, options);

                if (response.StatusCode == System.Net.HttpStatusCode.Accepted)
                {
                    result.Message = "Mail sent.";
                    result.Body    = "Mail Sent";
                }
                else
                {
                    result.Message = "Mail not sent to provided email.";
                }
                return(result);
            }
            return(new Result {
                Status = Status.Fail, Message = "Mail not sent, as email template not found", Body = "Mail not sent", Operation = Operation.Create
            });
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Prepare Email options for material requests
        /// </summary>
        /// <param name="requestViewModel"></param>
        /// <returns></returns>
        private EmailOptions PrepareEmailOptions(MaterialRequestViewModel requestViewModel)
        {
            var emailOptions = new EmailOptions
            {
                Template    = MailTemplate.Material,
                PlainBody   = string.Empty,
                Attachments = new List <Attachment>()
            };
            var msgBody = SendGridMailHelper.MailBody(_hostingEnvironment, emailOptions.Template);

            if (!string.IsNullOrEmpty(msgBody))
            {
                emailOptions.Subject = "Request for Material/Part Received - SubQuip";
                emailOptions.CcMail  = new MailUser {
                    Name = "SubQuip", Email = _configuration["requestEmail"]
                };
                emailOptions.ToMailsList = requestViewModel.MailUsers;
                emailOptions.HtmlBody    = msgBody.Replace("{MaterialNumber}", requestViewModel.MaterialNumber).Replace("{FromDate}", requestViewModel.FromDate.ToString("dd-MM-yyyy")).Replace("{ToDate}", requestViewModel.ToDate.ToString("dd-MM-yyyy"));
            }
            return(emailOptions);
        }