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); }
/// <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); }
/// <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; }