private void CreateMessange(EmailTemplateType type, DocumentTable docuTable, ApplicationUser userTable, string templateName, string documentUri, string bodyText, string subject, string[] parameters) { var emplTable = _EmplService.FirstOrDefault(x => x.ApplicationUserId == userTable.Id); if (emplTable == null) { return; } string processName = String.Empty; if (docuTable != null) { processName = docuTable.ProcessTable.ProcessName; } EmailParameterView emailParameter = FirstOrDefaultView(x => x.SmtpServer != String.Empty); new Task(() => { string absFile = HostingEnvironment.ApplicationPhysicalPath + templateName; string razorText = System.IO.File.ReadAllText(absFile); string currentLang = Thread.CurrentThread.CurrentCulture.Name; CultureInfo ci = CultureInfo.GetCultureInfo(userTable.Lang); Thread.CurrentThread.CurrentCulture = ci; Thread.CurrentThread.CurrentUICulture = ci; string body = String.Empty; switch (type) { case EmailTemplateType.Default: body = Razor.Parse(razorText, new { DocumentNum = String.Format("{0} - {1}", docuTable.DocumentNum, processName), DocumentUri = documentUri, EmplName = emplTable.FullName, BodyText = bodyText }); break; case EmailTemplateType.Comment: body = Razor.Parse(razorText, new { DocumentNum = String.Format("{0} - {1}", docuTable.DocumentNum, processName), DocumentUri = documentUri, EmplName = emplTable.FullName, BodyText = bodyText, LastComment = parameters[0] }); break; case EmailTemplateType.Delegation: body = Razor.Parse(razorText, new { DocumentUri = documentUri, EmplNameTo = parameters[0], EmplNameFrom = parameters[1], BodyText = bodyText }); break; } SendEmail(emailParameter, new string[] { userTable.Email }, new string[] { }, subject, body); ci = CultureInfo.GetCultureInfo(currentLang); Thread.CurrentThread.CurrentCulture = ci; Thread.CurrentThread.CurrentUICulture = ci; }).Start(); }
public void Save(EmailParameterView viewTable) { if (viewTable.Id == null) { var domainTable = new EmailParameterTable(); Mapper.Map(viewTable, domainTable); SaveDomain(domainTable); } else { var domainTable = Find(viewTable.Id); Mapper.Map(viewTable, domainTable); SaveDomain(domainTable); } }
public ActionResult Edit(EmailParameterView model) { if (ModelState.IsValid) { try { _Service.Save(model); return(RedirectToAction("Edit")); } catch (Exception e) { ModelState.AddModelError(string.Empty, e.GetOriginalException().Message); } } return(View(model)); }
public string SendEmail(EmailParameterView model, string[] emailTo, string[] ccTo, string subject, string body) { if (emailTo == null || emailTo.Length == 0) { return("Email To Address Empty"); } //var model = FirstOrDefaultView(x => x.SmtpServer != String.Empty); if (model == null) { return("No parameters"); } SmtpClient smtpClient = new SmtpClient(model.SmtpServer, model.SmtpPort); smtpClient.EnableSsl = model.EnableSsl; smtpClient.Timeout = model.Timeout; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.UseDefaultCredentials = true; smtpClient.Credentials = new NetworkCredential(model.UserName, model.Password); MailMessage message = new MailMessage(); smtpClient.SendCompleted += (s, e) => { smtpClient.Dispose(); message.Dispose(); }; message.From = new MailAddress(model.Email); message.Subject = subject == null ? "" : subject; message.Body = body == null ? "" : body; message.IsBodyHtml = true; message.BodyEncoding = UTF8Encoding.UTF8; message.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure; foreach (string email in emailTo) { message.To.Add(email); } if (emailTo != null && ccTo.Length > 0) { foreach (string emailCc in ccTo) { message.CC.Add(emailCc); } } try { smtpClient.Send(message); return("Email Send successFully"); } catch { return("Email Send failed"); } }