public ActionResult CadastrarArtigo()
        {
            ConteudoFacade facade = new ConteudoFacade();
            ViewData["Categorias"] = new SelectList(facade.PesquisarCategoria(null), "Codigo", "Titulo");

            Artigo artigo = new Artigo()
            {
                Data = DateTime.Now
            };

            return View(artigo);
        }
 public ActionResult CadastrarArtigo(Artigo artigo)
 {
     ConteudoFacade facade = new ConteudoFacade();
     try
     {
         facade.SalvarArtigo(artigo);
         return RedirectToAction("Index");
     }
     catch
     {
         ViewData["Categorias"] = new SelectList(facade.PesquisarCategoria(null), "Codigo", "Titulo");
         return View(artigo);
     }
 }
        //
        // GET: /Home/
        public ActionResult Index()
        {
            ConteudoFacade conteudoFacade = new ConteudoFacade();
            MultimidiaFacade multimidiaFacade = new MultimidiaFacade();
            UsuarioFacade usuarioFacade = new UsuarioFacade();

            IFactoryDAO fabrica = FactoryFactoryDAO.GetFabrica();

            ArtigoNHibernate artigoH = (ArtigoNHibernate)fabrica.GetArtigoDAO();

            ViewData["BannerSuperior"] = multimidiaFacade.PesquisarBannerPorLocal(5);
            ViewData["BannerInferior"] = multimidiaFacade.PesquisarBannerPorLocal(3);

            ViewData["BannerCapaSuperior"] = multimidiaFacade.PesquisarBannerPorLocal(1);
            ViewData["BannerCapaMeio"] = multimidiaFacade.PesquisarBannerPorLocal(2);
            ViewData["BannerMeio"] = multimidiaFacade.PesquisarBannerPorLocal(6);

            ServicoNHibernate servico = (ServicoNHibernate)fabrica.GetServicoDAO();

            ViewData["ServicoLateral"] = servico.Pesquisar(new Servico() { Ativo = true }, 1, 0, true, new int[0], 1)[0];

            CategoriaEmpresaNHibernate categoriaEmpresas = (CategoriaEmpresaNHibernate)fabrica.GetCategoriaEmpresaDAO();

            IList<CategoriaEmpresa> categorias = categoriaEmpresas.Pesquisar(null);
            ViewBag.Categorias = categorias;

            //ViewData["ListaArtigos"] = conteudoFacade.PesquisarArtigoArtigoTecnico(null);
            // Artigos tecnicos: pesquisar artigos aleatorios que nao sejam na categoria 3 (saude)
            IList<Artigo> artigos = artigoH.PesquisarAleatorio(4, null, null, new int[] { 3 });
            ViewData["ListaArtigos"] = artigos;

            int[] Codigos = new int[artigos.Count];

            for (int i = 0; i < artigos.Count; i++)
            {
                Codigos[i] = artigos[i].Codigo;
            }

            ViewData["ListaNoticiasDestaque"] = conteudoFacade.PesquisarNoticia(new Noticia() { Destaque = true, AnteTitulo = "UsarDestaque" }, 7);
            ViewData["ListaNoticias"] = conteudoFacade.PesquisarNoticia(new Noticia() { Destaque = false, AnteTitulo = "UsarDestaque" }, (short)4);

            IList<Coluna> colunas = conteudoFacade.PesquisarColuna(null, 6, true);

            foreach (Coluna item in colunas)
            {
                item.Autor = usuarioFacade.PesquisarUsuario(item.Autor.Codigo);
            }

            ViewData["ListaColunas"] = colunas;

            ViewData["ListaAventuras"] = conteudoFacade.PesquisarAventura(null, 5);

            //ViewData["ListaArtigosSaude"] = conteudoFacade.PesquisarArtigoSaude(null);
            ViewData["ListaArtigosSaude"] = artigoH.PesquisarAleatorio(3, new int[] { 3 }, Codigos, null);

            try
            {
                //ViewData["ListaArtigoEquipamentos"] = conteudoFacade.PesquisarArtigoCategoria(null, new Categoria() { Codigo = 5 }, 1)[0];

                ViewData["ListaArtigoEquipamentos"] = artigoH.PesquisarAleatorio(1, new int[] { 5 }, Codigos, null)[0];
            }
            catch
            {
                ViewData["ListaArtigoEquipamentos"] = new Artigo() { Texto = "", Titulo = "", AnteTitulo = "", FotoCapa = new Foto() };
            }

            try
            {
                //ViewData["ListaArtigoMeioAmbiente"] = conteudoFacade.PesquisarArtigoCategoria(null, new Categoria() { Codigo = 13 }, 1)[0];
                ViewData["ListaArtigoMeioAmbiente"] = artigoH.PesquisarAleatorio(1, new int[] { 13 }, Codigos, null)[0];
            }
            catch
            {
                ViewData["ListaArtigoMeioAmbiente"] = new Artigo() { Texto = "", Titulo = "", AnteTitulo = "", FotoCapa = new Foto() };
            }

            try
            {
                //ViewData["ListaArtigoHistoria"] = conteudoFacade.PesquisarArtigoCategoria(null, new Categoria() { Codigo = 12 }, 1)[0];
                ViewData["ListaArtigoHistoria"] = artigoH.PesquisarAleatorio(1, new int[] { 12 }, Codigos, null)[0];
            }
            catch
            {
                ViewData["ListaArtigoHistoria"] = new Artigo() { Texto = "", Titulo = "", AnteTitulo = "", FotoCapa = new Foto() };
            }

            try
            {
                //ViewData["ListaArtigoEntrevistas"] = conteudoFacade.PesquisarArtigoCategoria(null, new Categoria() { Codigo = 10 }, 1)[0];
                ViewData["ListaArtigoEntrevistas"] = artigoH.PesquisarAleatorio(1, new int[] { 10 }, Codigos, null)[0];
            }
            catch
            {
                ViewData["ListaArtigoEntrevistas"] = new Artigo() { Texto = "", Titulo = "", AnteTitulo = "", FotoCapa = new Foto() };
            }

            return View(ViewData);
        }
        public IList<Artigo> Pesquisar(Artigo objeto, int qtde, int pagina)
        {
            ICriteria criteria = NHibernate.HttpModule.RecuperarSessao.CreateCriteria(typeof(Dominio.Artigo));
            criteria.AddOrder(Order.Desc("Data"));

            if (pagina > 0)
            {
                criteria.SetFirstResult((pagina - 1) * qtde);
                criteria.SetMaxResults(qtde);
            }

            //criteria.Add(Expression.Between("Data", DateTime.MinValue, DateTime.Now));

            if (objeto == null)
                return criteria.List<Dominio.Artigo>();

            if (objeto.Codigo > 0)
                criteria = criteria.Add(Expression.Eq("Codigo", objeto.Codigo));
            if (objeto.ObjCategoria != null)
                criteria = criteria.Add(Expression.Eq("ObjCategoria.Codigo", objeto.ObjCategoria.Codigo));
            if (objeto.Data > DateTime.MinValue)
                criteria = criteria.Add(Expression.Eq("Data", objeto.Data));
            if (!string.IsNullOrEmpty(objeto.Titulo))
                criteria = criteria.Add(Expression.Eq("Titulo", objeto.Titulo));

            IList<Artigo> artigos = criteria.List<Artigo>();

            return artigos;
        }