Пример #1
0
        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);
            }
        }
Пример #2
0
        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 }));
        }