private async Task CheckLateOnUpdate(Tuple <List <object[]>, List <UserViewModel> > auditUploadModel) { if (auditUploadModel.Item1.Count > 0) { string host = Request.Host.ToSafetyString(); string contentForAuditUpload = System.IO.File.ReadAllText(host + "/Templates/LateOnUpDateData.html"); contentForAuditUpload = contentForAuditUpload .Replace("{{{href}}}", host) .Replace("{{{content}}}", @"<b style='color:red'>Late On Update Data</b><br/>Your KPIs have expired as below list: "); var htmlForUpload = string.Empty; var count = 0; foreach (var item2 in auditUploadModel.Item1) { count++; htmlForUpload += @"<tr> <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{no}}</td> <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{area}}</td> <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{ockpicode}}</td> <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{kpiname}}</td> <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{year}}</td> <td valign='top' style='padding:5px; font-family: Arial,sans-serif; font-size: 16px; line-height:20px;'>{{deadline}}</td> </tr>" .Replace("{{no}}", count.ToSafetyString()) .Replace("{{area}}", item2[3].ToSafetyString()) .Replace("{{kpiname}}", item2[0].ToSafetyString()) .Replace("{{ockpicode}}", item2[2].ToSafetyString()) .Replace("{{year}}", item2[4].ToSafetyString()) .Replace("{{deadline}}", item2[1].ToSafetyString()); } contentForAuditUpload = contentForAuditUpload.Replace("{{{html-template}}}", htmlForUpload); await _mailHelper.SendEmailRange(auditUploadModel.Item2.Select(x => x.Email).ToList(), "[KPI System-07] Late on upload data", contentForAuditUpload); } }
public async Task <IActionResult> AddComment([FromBody] AddCommentViewModel entity) { string token = Request.Headers["Authorization"]; var userID = Extensions.GetDecodeTokenByProperty(token, "nameid").ToInt(); var levelNumberOfUserComment = Extensions.GetDecodeTokenByProperty(token, "LevelId").ToInt(); var data = await _commentService.AddComment(entity, levelNumberOfUserComment); //await _hubContext.Clients.All.SendAsync("ReceiveMessage", "user", "message"); var tos = new List <string>(); await _hubContext.Clients.All.SendAsync("ReceiveMessage", data, "message"); if (data.ListEmails.Count > 0 && await _settingService.IsSendMail("ADDCOMMENT")) { var model = data.ListEmails.DistinctBy(x => x); //string from = ConfigurationManager.AppSettings["FromEmailAddress"].ToSafetyString(); string content = @"<p><b>*PLEASE DO NOT REPLY* this email was automatically sent from the KPI system.</b></p> <p>The account <b>" + model.First()[0] + "</b> mentioned you in KPI System Apps. </p>" + "<p>Content: " + model.First()[4] + "</p>" + "<p>Link: <a href='" + data.QueryString + "'>Click Here</a></p>" + "<br/>" + @"<p><b>*請勿回信*這封信是KPI系統自動寄出.</b></p> <p> 帳號 <b> " + model.First()[0] + " </b> 在 KPI 系統提及您. </p>" + "<p>內容: " + model.First()[4] + "</p>" + "<p>連結: <a href='" + data.QueryString + "'>點選這裡</a></p>"; Thread thread = new Thread(async() => { await _mailHelper.SendEmailRange(model.Select(x => x[1]).ToList(), "[KPI System-02] Comment", content); }); thread.Start(); } return(Ok(new { status = data.Status, isSendmail = true })); }