public ActionResult LoadSectionModule(int locationId, int sectionId)
        {
            //Get the city
            var city = Cidade.Load(locationId);

            var home = city.Microregion.Home;

            //Get list of news highlights
            var lstHighlights = Noticia.GetHighlightNewsByHome(home.Status ? home.Id : 1).ToList();

            //Create initial negation list with hiloghts id's
            var notInList = lstHighlights.Select(s => s.Id).ToList();

            //Get the section
            var section = Section.All().Where(s => s.Id == sectionId).Single();

            if (sectionId == Section.Videos.Id)
            {
                return(PartialView("_DestaqueVideos", GetVideoHighlights(city, ref notInList)));
            }

            //Get the other modules
            var model = GetDestaquesComtags(section, home, ref notInList);

            model.isLazy = false;

            return(PartialView("_DestaqueComTags", model));
        }
        private HomeIndex GetHomeIndexModel(int locationId)
        {
            var cacheSrv = new RedisCacheService();

            //Get the city
            var city = Cidade.Load(locationId);

            //Get the home object
            var objHome = city.Microregion.Home;

            #region GET CACHE

            //Set the const time value
            const int time = 1;

            //Set the cache key
            var key = $"Home:{objHome.Id}";

            //Find in the cache for the model
            var objModel = cacheSrv.Get <HomeIndex>(key);

            //If model exists in cache return the object
            if (objModel != null)
            {
                return(objModel);
            }
            #endregion

            //Save the current home state
            var currentHome = objHome;

            //If Home is disabled load the main home
            if (!objHome.Status)
            {
                objHome = Home.Load(1); //Home Curitiba
            }
            //Get list of news highlights
            var lstHighlights = Noticia.GetHighlightNewsByHome(objHome.Id).ToList();

            //Create initial negation list with hiloghts id's
            var notInList = lstHighlights.Select(s => s.Id).ToList();

            objModel = new HomeIndex
            {
                //Base
                Title       = "Massa News - A notícia em movimento!",
                Description = "O Massa News oferece a melhor cobertura jornalística do Paraná com notícias personalizadas da sua região.",
                Robots      = "index, follow",
                Canonical   = Constants.UrlWeb,

                //Model
                Cidade           = Cidade.Load(12), //Curitiba //objCidade,
                SidebarHighlight = objHome.SidebarHighlight,
                TemplateId       = objHome.Highlight.TemplateId,
                Highlights       = lstHighlights
            };

            //SUA REGIÃO
            //Este módulo recebe a cidade original
            objModel.DestaqueComTagsSuaRegiao = GetDestaquesComtags(Section.SuaRegiao, currentHome, ref notInList);

            //ESPORTES
            objModel.DestaqueComTagsEsportes = GetDestaquesComtags(Section.Esportes, currentHome, ref notInList);

            //ENTRETEDIMENTO
            objModel.DestaqueComTagsEntretedimento = GetDestaquesComtags(Section.Entretenimento, currentHome, ref notInList);

            //PARANÁ - TODOS OS PLANTÕES
            objModel.DestaqueComTagsParana = GetDestaquesComtags(Section.Parana, currentHome, ref notInList);

            //CATEGORIAS DESTAQUES
            objModel.CategoriasDestaquesModel = GetCategoriaDestaquesModel(objHome.Id, ref notInList);

            //VIAJAR É MASSA
            objModel.DestaqueComTagsViajarEMassa = GetDestaquesComtags(Section.ViajarEMassa, currentHome, ref notInList);

            //WHERE CURITIBA
            if (currentHome.Id == 1)
            {
                objModel.DestaqueComTagsWhereCuritiba = GetDestaquesComtags(Section.WhereCuritiba, currentHome, ref notInList);
            }

            //NEGÓCIOS DA TERRA
            objModel.DestaqueComTagsNegociosDaTerra = GetDestaquesComtags(Section.NegociosDaTerra, currentHome, ref notInList);

            //VIDEOS
            objModel.DestaqueVideo = GetVideoHighlights(city, ref notInList);

            //FOTOS (GALERIAS)
            objModel.HighlightsFotos = Noticia.GetBySection(8, Section.Fotos, 1, ref notInList, true).ToList();

            //BLOGS
            objModel.Blogs = GetBlogListByMicroregion(currentHome.MicroregiaoId);

            #region ENQUETE
            var statusEnquete = EnqueteSrv.GetStatusEnquete();

            switch (statusEnquete.Status)
            {
            case (int)EnqueteEnum.Estadual:
                objModel.ShowEnquete = true;
                objModel.EnqueteId   = Constants.EnqueteRegionalId;
                break;

            case (int)EnqueteEnum.Regional:
                foreach (var item in statusEnquete.RegioesEnquetes.Where(item => objHome.MicroregiaoId == item.MicroregiaoId && item.Status))
                {
                    objModel.ShowEnquete = true;
                    objModel.EnqueteId   = item.EnqueteId;
                }
                break;

            default:
                objModel.ShowEnquete = false;
                break;
            }
            #endregion

            //Set the cache
            cacheSrv.Set(key, objModel, time);

            return(objModel);
        }