Exemplo n.º 1
0
        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);
                }
            }
        }
Exemplo n.º 2
0
        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);
        }