private async Task SendMail(IRouteManager routeManager, string siteId, CommentsDbModel commentsDbModel) { /* (new BusinessModuleFactory()).GetModule("NewsItem").GetInfoAsync(new GetModuleInput() * { * * });*/ var site = await SiteMap.SiteUrlAsync(routeManager, _dataFactory, siteId); var userIds = commentsDbModel.Comments .GroupBy(p => p.UserId) .Select(g => g.First().UserId) .ToList(); var administrators = await _userService.UserByRoleAsync(siteId); foreach (var administrator in administrators) { if (!userIds.Contains(administrator.Id)) { userIds.Add(administrator.Id); } } foreach (var userId in userIds) { var user = await _userService.FindApplicationUserByIdAsync(userId); if (user.IsUserNotifyComment && user.Id != Input.UserId) { var model = new CommentAddedMailModel { SiteName = site.Name, SiteUrl = site.Url, UserName = user.FullName, ArticleTitle = Input.Data.ArticleTitle, ArticleUrl = UrlHelper.Concat(site.Url, Input.Data.UrlPath) }; var identityMessage = new MailMessage(); identityMessage.Subject = string.Format("[{0}] Commentaire envoyé sur le site", model.SiteName); //TODO identityMessage.Body = new StringTemplateRenderer().Render( //Encoding.UTF8.GetString(TemplateResource.CommentAdded), model); identityMessage.Destination = user.Email; await _emailService.SendAsync(identityMessage); } } }
private static async Task <GetCommentsResult> GetCommentsResult(UserService _userService, CommentsDbModel comments, string userId) { var result = new GetCommentsResult(); result.Comments = new List <CommentItem>(); if (comments != null) { var list = comments.Comments.Where(c => !c.IsDeleted); foreach (var comment1 in list) { var commentItem = new CommentItem(); commentItem.Comment = comment1.Comment; commentItem.Id = comment1.Id; commentItem.DateCreate = comment1.DateCreate; commentItem.UserInfo = await _userService.GetUserInfoAsync(comment1.UserId); commentItem.CanDelete = comment1.UserId == userId; result.Comments.Add(commentItem); } } return(result); }