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