public ActionResult BlogPosts(string categoria, string blog, int p = 1) { if (categoria == null || blog == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } var objBlog = Db.Blogs.FirstOrDefault(b => b.Url == blog); if (objBlog == null) { var slugBlogNotFound = $"/blogs/{categoria}/{blog}/posts"; string urlDestino = UrlRedirect.GetByUrl(slugBlogNotFound); if (!string.IsNullOrEmpty(urlDestino)) { return(new RedirectResult($"{urlDestino}")); } else { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } } if (objBlog.Categoria.Url != categoria) { return(new RedirectResult($"/blogs/{objBlog.Categoria.Url}/{objBlog.Url}/posts/", true)); } ViewBag.TotalRegistros = objBlog.Noticias.Count; //Get the list of blog autors var lstAutors = Autor.GetAllByBlogId(objBlog.Id).ToList(); //Set the path in the images lstAutors.ForEach(a => a.Avatar = $"{Constants.UrlDominioEstaticoUploads}/{"autores"}/{a.Avatar}"); var model = new BlogPostViewModel { Blog = objBlog, Autors = lstAutors }; var lstNoticiasHighlights = GetNoticiasByBlogHighlight(objBlog.CategoriaId, objBlog.Id); var noticias = objBlog.Noticias.Where(post => post.StatusId == Status.Publicada.Id) .OrderByDescending(b => b.DataPublicacao) .Skip((p - 1) * Constants.TakeNoticias) .Take(Constants.TakeNoticias) .ToList(); if (p == 1) { model.NoticiasHighlights = lstNoticiasHighlights?.Select(Service.Models.Noticia.Map).ToList(); } model.Blog.Noticias = noticias.Where(n => !lstNoticiasHighlights.Any(n2 => n2.Id == n.Id)).ToList(); //Paginação ViewBag.PaginaAtual = p; var totalPaginas = Math.Ceiling(((double)ViewBag.TotalRegistros / Constants.TakeNoticias)); if (Convert.ToInt32(totalPaginas) > 1) { ViewBag.Paginacao = Pagination.AddPagination(ViewBag.PaginaAtual, Convert.ToInt32(totalPaginas), 5, true); } //base model defaults model.Title = $"Blog {objBlog.Titulo} - Massa News"; model.Description = $"{objBlog.Descricao} Confira o Blog {objBlog.Titulo}!"; model.Robots = "index, follow"; model.Canonical = $"{Constants.UrlWeb}/blogs/{categoria}/{blog}/posts"; model.ImgOpenGraph = $"{Constants.UrlWeb}/content/images/avatar/blogs/{blog}.jpg"; ViewBag.ActiveNav = objBlog.Titulo; // Página ViewBag.Pagina = "blog"; // Editoria ViewBag.EditoriaUrl = "blogs"; // Categoria ViewBag.Categoria = model.Blog.Categoria.Url; // Blog ViewBag.Blog = model.Blog.Url; return(View(model)); }