Esempio n. 1
0
        public CommonStatisticsModel PrepareCommonStatisticsModel()
        {
            var model = new CommonStatisticsModel
            {
                NumberOfDayVisitors     = _visitorCounterService.GetCounterCount(DateTime.Now),
                NumberOfCustomers       = _customerService.GetAllCustomers().Count(),
                NumberOfTotalVisitCount = _visitorCounterService.GetByListCounter().Sum(x => x.Count)
            };
            var blogIds         = new List <int>();
            var newsIds         = new List <int>();
            var newsCounterList = _newsCounterService.GetByListCounter(entityName: "NewsItem");

            model.NumberOfNewsRead = newsCounterList.Count;
            foreach (var counter in newsCounterList)
            {
                newsIds.Add(counter.EntityId);
            }
            var blogPostCounetrList = _newsCounterService.GetByListCounter(entityName: "BlogPost");

            model.NumberOfReadBlogPost = blogPostCounetrList.Count;
            foreach (var counter in blogPostCounetrList)
            {
                blogIds.Add(counter.EntityId);
            }
            var newsListIds = _newsService.GetAllNewsItemsIds().ToArray();
            var blogListIds = _blogService.GetBlogListIds().ToArray();

            model.NumberOfNotReadNews     = newsListIds.Except(newsIds).Count();
            model.NumberOfNotReadBlogPost = blogListIds.Except(blogIds).Count();
            return(model);
        }
Esempio n. 2
0
        /// <summary>
        /// Prepare the news item model
        /// </summary>
        /// <param name="model">News item model</param>
        /// <param name="newsItem">News item</param>
        /// <param name="prepareComments">Whether to prepare news comment models</param>
        /// <returns>News item model</returns>
        public virtual NewsItemModel PrepareNewsItemModel(NewsItemModel model, NewsItem newsItem, bool prepareComments)
        {
            if (model == null)
            {
                return(null);
            }

            if (newsItem == null)
            {
                return(null);
            }

            var category = _categoryService.GetNewsItemCategoriesByCategorysId(newsItem.Id);

            model.Id              = newsItem.Id;
            model.MetaTitle       = newsItem.MetaTitle;
            model.MetaDescription = newsItem.MetaDescription;
            model.MetaKeywords    = newsItem.MetaKeywords;
            model.SeName          = FriendlyUrlHelper.GetFriendlyTitle(_urlRecordService.GetSeName(newsItem), true);
            model.Title           = newsItem.Title;
            model.EndDateUtc      = newsItem.EndDateUtc;
            model.Short           = newsItem.Short;
            model.Full            = newsItem.Full;
            model.AllowComments   = newsItem.AllowComments;
            model.CreatedOn       = newsItem.StartDateUtc ?? newsItem.CreatedOnUtc;
            model.PictureUrl      = _pictureService.GetPictureUrl(newsItem.PictureId);
            model.VideoId         = newsItem.VideoId;
            model.PictureModels   = PreParePictureListModel(newsItem.Id);
            model.Category        = category;
            model.CategorySeName  = _urlRecordService.GetSeName(category);
            model.CategoryName    = _categoryService.GetNewsItemCategoriesByCategorysId(newsItem.Id).Name;
            if (newsItem.CustomerId > 0)
            {
                model.CustomerName = _customerService.GetCustomerById(newsItem.CustomerId).Name;
                model.AvatarUrl    =
                    _pictureService.GetPictureUrl(
                        Convert.ToInt32(_customerService.GetCustomerById(newsItem.CustomerId).Zip), 120, defaultPictureType: PictureType.Avatar);
            }


            //number of news comments
            int storeId = _newsSettings.ShowNewsCommentsPerStore ? _storeContext.CurrentStore.Id : 0;

            model.NumberOfComments  = _newsService.GetNewsCommentsCount(newsItem, storeId, true);
            model.NumberOfRead      = _newsCounterService.GetByListCounter(newsItem.Id, "NewsItem", null).Sum(x => x.TotalVisitor);
            model.VideoGalleryModel = _videoFactory.PrepareVideoGalleryModel(model.VideoId);

            if (prepareComments)
            {
                var newsComments = newsItem.NewsComments.Where(comment => comment.IsApproved);
                foreach (NewsComment nc in newsComments.OrderBy(comment => comment.CreatedOnUtc))
                {
                    NewsCommentModel commentModel = PrepareNewsCommentModel(nc);
                    model.Comments.Add(commentModel);
                }
            }

            return(model);
        }
Esempio n. 3
0
        /// <summary>
        /// Prepare blog post model
        /// </summary>
        /// <param name="model">Blog post model</param>
        /// <param name="blogPost">Blog post entity</param>
        /// <param name="prepareComments">Whether to prepare blog comments</param>
        public virtual void PrepareBlogPostModel(BlogPostModel model, BlogPost blogPost, bool prepareComments)
        {
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }

            if (blogPost == null)
            {
                throw new ArgumentNullException(nameof(blogPost));
            }

            model.Id              = blogPost.Id;
            model.MetaTitle       = blogPost.MetaTitle;
            model.MetaDescription = blogPost.MetaDescription;
            model.MetaKeywords    = blogPost.MetaKeywords;
            model.SeName          = _urlRecordService.GetSeName(blogPost);
            model.Title           = blogPost.Title;
            model.Body            = blogPost.Body;
            model.BodyOverview    = blogPost.BodyOverview;
            model.AllowComments   = blogPost.AllowComments;
            model.CreatedOn       = blogPost.StartDateUtc ?? Convert.ToDateTime(blogPost.CreatedOnUtc);
            model.Tags            = _blogservice.ParseTags(blogPost);
            model.NumberOfRead    = _newsCounterService.GetByListCounter(blogPost.Id, "BlogPost", null).Sum(x => x.TotalVisitor);
            //number of blog comments
            model.NumberOfComments = _blogservice.GetBlogCommentsCount(blogPost, _storeContext.CurrentStore.Id, true);

            if (prepareComments)
            {
                var blogComments = blogPost.BlogComments.Where(comment => comment.IsApproved);
                foreach (var bc in blogComments.OrderBy(comment => comment.CreatedOnUtc))
                {
                    var commentModel = PrepareBlogPostCommentModel(bc);
                    model.Comments.Add(commentModel);
                }
            }

            var customer    = _customerService.GetCustomerById(blogPost.CustomerId);
            var appUser     = _customerService.GetApplicationUserById(customer.OwnerId);
            var editorModel = new EditorModel
            {
                EditorId  = customer.Id,
                FirstName = appUser.FirstName,
                LastName  = appUser.LastName,
                AvatarUrl = _pictureService.GetPictureUrl(
                    Convert.ToInt32(_customerService.GetCustomerById(customer.Id).Zip), 120, defaultPictureType: PictureType.Avatar),
                Email = appUser.Email
            };
            var claimsAsync = _customerService.GetUserClaim(customer.OwnerId);

            foreach (var item in claimsAsync)
            {
                if (item.ClaimValue == "FacebookLink")
                {
                    editorModel.FaceBookLink = item.ClaimValue ?? "";
                }
                else if (item.ClaimType == "InstagramLink")
                {
                    editorModel.InstagramLink = item.ClaimValue ?? "";
                }
                else if (item.ClaimType == "TwitterLink")
                {
                    editorModel.TwitterLink = item.ClaimValue ?? "";
                }
            }

            model.EditorModel = editorModel;
        }