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