Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }