public BlogSinglePostViewModel GetBlogPostByIdFull(int id) { BlogSinglePostViewModel blogSinglePostView = _unitOfWork.BlogPostSchoolRepository.Get(filter: x => x.BlogPostID == id, orderBy: null, includeProperties: "Author") .FirstOrDefault() .ToBlogSinglePostViewModel(); blogSinglePostView.AuthorAverageLikes = AuthorAverageLikes(blogSinglePostView.Author.AuthorID); return(blogSinglePostView); }
public BlogSinglePostViewModel GetLatestBlogPost() { BlogSinglePostViewModel blogSinglePostView = _unitOfWork.BlogPostSchoolRepository.Get(filter: null, orderBy: x => x.OrderByDescending(entity => entity.DateTime), includeProperties: "Author") .Select(StaticHelpers.ToBlogSinglePostViewModel) .FirstOrDefault(); blogSinglePostView.AuthorAverageLikes = AuthorAverageLikes(blogSinglePostView.Author.AuthorID); return(blogSinglePostView); }
public BlogSinglePostViewModel GetRandomBlogPost() { //TODO: Investigate List <BlogPost> posts = _unitOfWork.BlogPostSchoolRepository.Get(null, x => x.OrderByDescending(entity => entity.DateTime), "Author") .ToList(); if (posts.Count is 0) { return(null); } Random rnd = new Random(); var randomPost = posts[rnd.Next(posts.Count)]; BlogSinglePostViewModel blogSinglePostViewModel = randomPost.ToBlogSinglePostViewModel(); blogSinglePostViewModel.AuthorAverageLikes = AuthorAverageLikes(blogSinglePostViewModel.Author.AuthorID); return(blogSinglePostViewModel); }
public int GetAuthorAvgLike(int id) { //testing likes BlogSinglePostViewModel blogPostVm = _unitOfWork.BlogPostSchoolRepository.Get(filter: x => x.BlogPostID == id, orderBy: null, includeProperties: "Author") .FirstOrDefault() .ToBlogSinglePostViewModel(); int blogPostAuthId = blogPostVm.Author.AuthorID; List <int> blogPostsLikes = _unitOfWork.BlogPostSchoolRepository .Get(b => b.Author.AuthorID == blogPostAuthId, b => b.OrderByDescending(d => d.DateTime), "Author") .Select(b => b.LikeQty).ToList(); if (blogPostsLikes.Any()) { int noOfBlogs = blogPostsLikes.Count(); int totalLikes = blogPostsLikes.Sum(); if (blogPostsLikes.Sum() > 0) { int avgLikes = Convert.ToInt32(totalLikes / noOfBlogs); if (avgLikes > 0) { return(avgLikes); } else { return(1); } } else { return(0); } } return(0); }