public ActionResult LoadNexNews(string noticiaUrl, bool allowComments) { //Recupera a origem var origem = Request.UrlReferrer?.AbsolutePath.TrimEnd('/') ?? string.Empty; //Get the location id var locationId = CookieFx.GetLocationId(Request); //Remove .html noticiaUrl = noticiaUrl.Remove(noticiaUrl.Length - 5, 5); var url = noticiaUrl.TrimStart('/').Split('/').Last(); var objNoticia = Noticia.GetByUrl(url); ViewBag.AllowComments = allowComments; return(PartialView("_NoticiaItem", new NewsItemViewModel(objNoticia, ControllerContext))); }
private ActionResult LoadIndexNews(string editorialUrl, string categoryUrl, string blogurl, string newsUrl, bool isPreview = false) { try { // redirect where curitiba if (editorialUrl == "where-curitiba") { return(new RedirectResult("http://www.wherecuritiba.com.br", true)); } var newsId = ToolService.GetIdByUrl(Request.Url.ToString()); //Get the news object var objNoticia = null as Noticia; if (newsId.HasValue) { objNoticia = Noticia.Load(newsId.Value); } if (objNoticia == null) { objNoticia = Noticia.GetByUrl(newsUrl); } #region Validations //Redirect 301 to new url if (!isPreview) { #region Redirect var originUrl = Request.RawUrl.Remove(Request.RawUrl.Length - 5); if (objNoticia != null) { if (originUrl != objNoticia.UrlFull) { return(new RedirectResult($"{objNoticia.UrlFull}.html", true)); } } else { var redirectUrl = UrlRedirect.GetByUrl(originUrl); if (!string.IsNullOrEmpty(redirectUrl)) { return(new RedirectResult($"{redirectUrl}.html", true)); } } #endregion } if (objNoticia == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } if (objNoticia.Autores != null && objNoticia.Autores.Count() > 0) { //19 = Estadão, 65 = Folhapress var objAutorGoogleNews = objNoticia.Autores.Where(a => a.Id == 19 || a.Id == 65).FirstOrDefault(); ViewBag.isAutorGoogleNews = objAutorGoogleNews != null ? true : false; } //Caso a noticia for inativa responde com redirect permanente para a home if ((objNoticia.StatusId == Status.Inativa.Id || !objNoticia.Categoria.Status) && !isPreview) { return(new RedirectResult("/", true)); } //Caso a noticia for diferente de publicada responde com 404 if (objNoticia.StatusId != Status.Publicada.Id && !isPreview) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } #endregion //Recupera a origem var urlReferrer = Request.UrlReferrer?.AbsolutePath.TrimEnd('/') ?? string.Empty; //Ultimas Notícias var lastestNews = new List <Noticia>(); //Get the location id var locationId = CookieFx.GetLocationId(Request); //Get the user city var objCidade = Cidade.Load(locationId); //getTemperature(locationId); if (urlReferrer.StartsWith("/tag")) { var tagUrl = urlReferrer.Split('/').Last(); var tag = Tag.GetByUrl(tagUrl); if (tag == null) { return(null); } var isNewsWithTag = false; var newsWithTag = NoticiaSrv.GetTagsByNewsIdCached(objNoticia.Id); foreach (var item in newsWithTag) { if (item.Id == tag.Id) { isNewsWithTag = true; break; } } if (isNewsWithTag) { lastestNews = GetValuesOfTag(urlReferrer, objNoticia).ToList(); } else if (editorialUrl == "blogs") { lastestNews = GetValuesOfBlogCategory(objNoticia).ToList(); } else if (objNoticia.CidadeId.HasValue && objNoticia.CategoriaUrl.Equals("plantao")) { if (objNoticia.Cidade.MicroregiaoId == objCidade.MicroregiaoId) { lastestNews = GetValuesOfMyRegion(objCidade.MicroregiaoId, objNoticia).ToList(); } else if (objNoticia.Cidade.MicroregiaoId != objCidade.MicroregiaoId) { lastestNews = GetValuesOfParana(objCidade.MicroregiaoId, objNoticia).ToList(); } } else if (!objNoticia.CidadeId.HasValue && objNoticia.CategoriaUrl.Equals("plantao")) { lastestNews = GetValuesOfParana(objCidade.MicroregiaoId, objNoticia).ToList(); } else { lastestNews = GetValuesOfCategory(objNoticia).ToList(); } } else if (urlReferrer.StartsWith("/fotos")) { lastestNews = GetValuesOfGallery().ToList(); } else if (editorialUrl == "blogs") { lastestNews = GetValuesOfBlogCategory(objNoticia).ToList(); } else { if (objNoticia.CidadeId.HasValue) { //If the news has the category 'plantao' if (objNoticia.CategoriaUrl.Equals("plantao")) { if (objNoticia.Cidade.MicroregiaoId == objCidade.MicroregiaoId) { //Sua Região lastestNews = GetValuesOfMyRegion(objCidade.MicroregiaoId, objNoticia).ToList(); } else if (objNoticia.Cidade.MicroregiaoId != objCidade.MicroregiaoId) { //Paraná lastestNews = GetValuesOfParana(objCidade.MicroregiaoId, objNoticia).ToList(); } } else { //If the news is's category 'plantao lastestNews = GetValuesOfCategory(objNoticia).ToList(); } } else { //If the news has the category 'plantao' if (objNoticia.CategoriaUrl.Equals("plantao")) { //Paraná lastestNews = GetValuesOfParana(objCidade.MicroregiaoId, objNoticia).ToList(); } else { //If the news is's category 'plantao lastestNews = GetValuesOfCategory(objNoticia).ToList(); } } } //Habilita Comentários ViewBag.AllowComments = !isPreview; //Caso a notícia exista na lista é removida para evitar duplicidade if (lastestNews.Any(n => n.Id == objNoticia.Id)) { lastestNews.Remove(lastestNews.Single(n => n.Id == objNoticia.Id)); } //insere noticia na lista de notícias lastestNews.Insert(0, objNoticia); ViewBag.NavItems = lastestNews.Select(n => new NoticiaNavItem(n, lastestNews.IndexOf(n).Equals(0))); ViewBag.Lastest4News = lastestNews.Take(4).ToList(); //Set the list of categories if (objNoticia.Categoria.EditorialId == 4 && ViewBag.NavigationType == "categoria") { ViewBag.Categorias = NoticiaSrv.GetCategoriasByEditorial(objNoticia.Categoria.EditorialId); ViewBag.MenuCategoriaId = objNoticia.Categoria.CategoriaPaiId.HasValue ? objNoticia.Categoria.CategoriaPaiId : objNoticia.Categoria.Id; } ViewBag.AmpLink = $"{Constants.UrlWeb}/amp{objNoticia.UrlFull}.html"; /* base model defaults */ var model = new NoticiaModel { //Title = $"{objNoticia.Titulo} - Massa News {objNoticia.Cidade.Nome}", Description = $"{(objNoticia.Conteudo.Length > 220 ? Text.RemoveHtmlTags(objNoticia.Conteudo.Substring(0, 220) + "... Leia mais no Massa News!") : Text.RemoveHtmlTags(objNoticia.Conteudo) + " Leia no Massa News!")}", Robots = isPreview ? "noindex, nofollow" : "index, follow", Canonical = $"{Constants.UrlWeb}{objNoticia.UrlFull}.html", News = new NewsItemViewModel(objNoticia, ControllerContext) }; if (objNoticia.Cidade != null && !string.IsNullOrEmpty(objNoticia.Cidade.Nome)) { model.Title = $"{objNoticia.Titulo} - Massa News {objNoticia.Cidade.Nome}"; } else if (objNoticia.Blog != null && !string.IsNullOrEmpty(objNoticia.Blog.Titulo)) { model.Title = $"{objNoticia.Titulo} - {objNoticia.Blog.Titulo} - Massa News"; } else { model.Title = $"{objNoticia.Titulo} - Massa News"; } if (!string.IsNullOrEmpty(objNoticia.ImgLg)) { model.ImgOpenGraph = $"{Constants.UrlDominioEstaticoUploads}/{"noticias"}/{objNoticia.ImgLg}"; } else if (objNoticia.Blog != null) { model.ImgOpenGraph = $"{Constants.UrlWeb}/content/images/avatar/blogs/{objNoticia.Blog.Url}.jpg"; } // Página ViewBag.Pagina = "interna"; // ID ViewBag.Id = objNoticia.Id; // Editoria ViewBag.EditoriaUrl = objNoticia.Categoria.Editorial.Url; ViewBag.EditoriaTitulo = objNoticia.Categoria.Editorial.Titulo; // Categoria ViewBag.Categoria = objNoticia.CategoriaUrl; //Formata Noticia Site Antigo Negocio da Terra if (editorialUrl == "negocios-da-terra" && objNoticia.DataPublicacao < new DateTime(2017, 09, 12)) { var aux = model.News.News.Conteudo.Split('\n'); model.News.News.Conteudo = ""; foreach (var item in aux) { if (!String.IsNullOrEmpty(item)) { model.News.News.Conteudo = model.News.News.Conteudo + "<p>" + item + "</p>"; } } } return(View("index", model)); } catch (Exception ex) { var vars = new Dictionary <string, string> { { "Editorial", editorialUrl }, { "Category", categoryUrl }, { "NewsUrl", newsUrl } }; NewRelic.Api.Agent.NewRelic.NoticeError(ex, vars); throw; } }
//[Route("Videos/{section}/{url}.html")] public ActionResult Interna(string url) { #region redirect var redirectUrl = !string.IsNullOrEmpty(NoticiaSrv.GetRedirectUrlContains(url)) ? NoticiaSrv.GetRedirectUrlContains(url).Split('/')[3] : null; if (!string.IsNullOrEmpty(redirectUrl) && !redirectUrl.Equals(url)) { return(new RedirectResult($"/videos/{redirectUrl}.html", true)); } #endregion var noticiaUrl = redirectUrl ?? url; //Get the news object var objNoticia = Noticia.GetByUrl(noticiaUrl); var objVideo = VideoModel.Map(objNoticia); #region Validations //Redirect 301 to new url var originUrl = $"/videos/{noticiaUrl}.html"; if (objNoticia != null) { if (originUrl != objVideo.InternaUrl) { return(new RedirectResult(objVideo.InternaUrl, true)); } } //Return not found if (objNoticia == null) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } //Caso a noticia for inativa responde com redirect permanente para a home if ((objNoticia.StatusId == Status.Inativa.Id || !objNoticia.Categoria.Status)) { return(new RedirectResult("/", true)); } //Caso a noticia for diferente de publicada responde com 404 if (objNoticia.StatusId != Status.Publicada.Id) { return(new HttpStatusCodeResult(HttpStatusCode.NotFound)); } #endregion var model = new VideoInterna { //Base Title = $"Vídeo: {objNoticia.Titulo} - Massa News", Description = $"{(objNoticia.Conteudo.Length > 220 ? Text.RemoveHtmlTags(objNoticia.Conteudo.Substring(0, 220) + "... Veja o vídeo no Massa News!") : Text.RemoveHtmlTags(objNoticia.Conteudo) + " Veja o vídeo no Massa News!")}", Robots = "noindex, follow", Canonical = $"{objNoticia.UrlFull}.html", Url = $"{objVideo.InternaUrl}", //Model Video = objVideo, SectionUrl = objVideo.Section, SectionLink = $"/videos/{objVideo.Section}", CloseLink = (Request.UrlReferrer != null && Request.UrlReferrer.ToString().StartsWith(Constants.UrlWeb)) ? "#" : $"/videos/{objVideo.Section}" }; if (!string.IsNullOrEmpty(objNoticia.ImgLg)) { model.ImgOpenGraph = $"{Constants.UrlDominioEstaticoUploads}/{"noticias"}/{objNoticia.ImgLg}"; } var lstNoticias = new List <Noticia>(); const int take = 20; switch (objVideo.Section) { case "curitiba-regiao": lstNoticias = NoticiaSrv.GetLastestVideoNewsByMicroregion(take, MicroRegionEnum.Curitiba.GetHashCode()).ToList(); model.SectionTitle = "Curitiba e região"; break; case "maringa-regiao": lstNoticias = NoticiaSrv.GetLastestVideoNewsByMicroregion(take, MicroRegionEnum.Maringa.GetHashCode()).ToList(); model.SectionTitle = "Maringá e região"; break; case "foz-do-iguacu-regiao": lstNoticias = NoticiaSrv.GetLastestVideoNewsByMicroregion(take, MicroRegionEnum.FozDoIguacu.GetHashCode()).ToList(); model.SectionTitle = "Foz do Iguaçu e região"; break; case "londrina-regiao": lstNoticias = NoticiaSrv.GetLastestVideoNewsByMicroregion(take, MicroRegionEnum.Londrina.GetHashCode()).ToList(); model.SectionTitle = "Londrina e região"; break; case "ponta-grossa-regiao": lstNoticias = NoticiaSrv.GetLastestVideoNewsByMicroregion(take, MicroRegionEnum.PontaGrossa.GetHashCode()).ToList(); model.SectionTitle = "Ponta Grossa e região"; break; case "noticias": lstNoticias = NoticiaSrv.GetLastestVideoNewsByEditory(take, EditorialEnum.Noticias.GetHashCode()).ToList(); model.SectionTitle = "Notícias"; break; case "esportes": lstNoticias = NoticiaSrv.GetLastestVideoNewsByEditory(take, EditorialEnum.Esportes.GetHashCode()).ToList(); model.SectionTitle = "Esportes"; break; case "entretenimento": lstNoticias = NoticiaSrv.GetLastestVideoNewsByEditory(take, EditorialEnum.Entretenimento.GetHashCode()).ToList(); model.SectionTitle = "Entretenimento"; break; case "negocios-da-terra": lstNoticias = NoticiaSrv.GetLastestVideoNewsByEditory(take, EditorialEnum.NegociosDaTerra.GetHashCode()).ToList(); model.SectionTitle = "Negócios da Terra"; break; case "where-curitiba": lstNoticias = NoticiaSrv.GetLastestVideoNewsByEditory(take, EditorialEnum.WhereCuritiba.GetHashCode()).ToList(); model.SectionTitle = "Where Curitiba"; break; case "blogs": lstNoticias = NoticiaSrv.GetLastestVideoNewsByEditory(take, EditorialEnum.Blogs.GetHashCode()).ToList(); model.SectionTitle = "Blogs"; break; case "massa-news-live-on": lstNoticias = NoticiaSrv.GetLastestVideoNewsByTag(take, 752).ToList(); model.SectionTitle = "Massa News Live On"; break; case "descobrindo-curitiba": lstNoticias = NoticiaSrv.GetLastestVideoNewsByTag(take, 754).ToList(); model.SectionTitle = "Descobrindo Curitiba"; break; } //Remove iten if (lstNoticias.Any(n => n.Id == objNoticia.Id)) { lstNoticias.Remove(lstNoticias.Single(n => n.Id == objNoticia.Id)); } //Add current iten at the fist position lstNoticias.Insert(0, objNoticia); model.MenuItems = lstNoticias.ToList().Select(MenuItemModel.Map).ToList(); model.MenuItems.First().Selected = true; //ViewBag's ViewBag.IsVideo = true; ViewBag.IsInternaVideo = true; return(View(model)); }