Ejemplo n.º 1
0
        public async Task <IActionResult> Home(int?PageIndex)
        {
            BlogPostsIndex viewModelIndex = await GetBlogPostsPaginated(false, PageIndex, null);

            viewModelIndex.ShowNavbarPagination = false; // Oculto la navegacion de la paginacion
            return(View(viewModelIndex));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> GetPartialView_SectionPostPaginated(bool RegisterPostVisit, bool ShowNavbarPagination, int?PageIndex, int?TotalItems, string Query = null)
        {
            try
            {
                BlogPostsIndex viewModelIndex = await GetBlogPostsPaginated(RegisterPostVisit, PageIndex, TotalItems, Query);

                viewModelIndex.ShowNavbarPagination = ShowNavbarPagination;
                var viewHtmlPaginationPosts = viewModelIndex.BlogPosts.Count > 0 ? _viewRenderService.RenderToStringAsync("_PaginationBlogPosts", viewModelIndex).Result : "";
                var viewHtmlPost            = RegisterPostVisit ? _viewRenderService.RenderToStringAsync("_BlogPost", viewModelIndex.LastBlogPost).Result : "";
                int totalPostnumber         = await GetTotalPostNumber();

                return(new JsonResult(new { Response = "true", ViewPaginationPosts = viewHtmlPaginationPosts, ViewPostActive = viewHtmlPost, TotalPostnumber = totalPostnumber }));
            }
            catch (Exception ex)
            {
                return(new JsonResult(new { Response = "false", Error = ex.Message }));
            }
        }
Ejemplo n.º 3
0
        private async Task <BlogPostsIndex> GetBlogPostsPaginated(bool RegisterPostVisit, int?PageIndex, int?TotalItems, string Query = null)
        {
            PageIndex = PageIndex == 0 ? 1 : PageIndex;
            if (TotalItems > 0)
            {
                PageIndex = (TotalItems / NUMBER_OF_ITEMS_PER_REQUEST) + 1;
            }

            BlogPostsIndex        viewModelIndex = new BlogPostsIndex();
            IQueryable <BlogPost> blogPosts      = null;

            if (Query == null)
            {
                blogPosts = _context.Posts
                            .Include(x => x.BlogPostComments)
                            .Include(x => x.BlogPostVisits)
                            .OrderByDescending(x => x.DateCreated)
                            .AsNoTracking();
            }
            else
            {
                var words = Query.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                blogPosts = _context.Posts
                            .Include(x => x.BlogPostComments)
                            .Include(x => x.BlogPostVisits)
                            .OrderByDescending(x => x.DateCreated)
                            .WhereAll_AND(words.Select(w => (Expression <Func <BlogPost, bool> >)(x => EF.Functions.Like(x.Title + x.Fullname + x.Specialty_customized, "%" + w + "%"))).ToArray())
                            .AsNoTracking();
            }

            viewModelIndex.BlogPosts = await PaginatedList <BlogPost> .CreateAsync(blogPosts, PageIndex ?? 1, NUMBER_OF_ITEMS_PER_REQUEST);

            viewModelIndex.LastBlogPost = viewModelIndex.BlogPosts.Count > 0 ? viewModelIndex.BlogPosts.First() : new BlogPost();

            if (RegisterPostVisit)
            {
                // Registro la visita del Post
                this.RegisterPostVisit(viewModelIndex.LastBlogPost.Id);
            }
            return(viewModelIndex);
        }
Ejemplo n.º 4
0
        // GET: BlogPosts
        public async Task <IActionResult> Index(int?PageIndex)
        {
            BlogPostsIndex viewModelIndex = await GetBlogPostsPaginated(true, PageIndex, null);

            return(View(viewModelIndex));
        }