예제 #1
0
        /// <summary>
        /// Salva a notícia
        /// </summary>
        /// <param name="noticia">Objeto para salvar</param>
        public Dominio.Noticia SalvarNoticia(Dominio.Noticia noticia)
        {
            try
            {
                if (noticia == null)
                {
                    throw new ArgumentNullException("noticia");
                }

                if (noticia.UsuarioCadastro == null)
                {
                    noticia.UsuarioCadastro = Utilitario.Sessao.UsuarioLogado;
                }

                IFactoryDAO fabrica    = FactoryFactoryDAO.GetFabrica();
                INoticiaDAO noticiaDAO = fabrica.GetNoticiaDAO();

                /*if (noticia.Destaque)
                 * {
                 *  string asdf = noticia.FotoCapa.Caminho;
                 *
                 *  IFotoDAO fotoDAO = fabrica.GetFotoDAO();
                 *  noticia.FotoCapa = fotoDAO.Pesquisar(noticia.FotoCapa.Codigo);
                 *
                 *  HttpContext.Current.Session.Clear();
                 *
                 *  string caminhoOriginal = HttpContext.Current.Server.MapPath("~/AppData/Foto/full/" + noticia.FotoCapa.Caminho);
                 *
                 *  FileInfo info = new FileInfo(caminhoOriginal);
                 *
                 *  if (info.Exists)
                 *  {
                 *      MultimidiaFacade multFacade = new MultimidiaFacade();
                 *
                 *      string caminho = string.Format(@"{0}\{1}\", HttpContext.Current.Server.MapPath("~/AppData/Foto"), "320x240");
                 *
                 *      if (!Directory.Exists(caminho))
                 *          Directory.CreateDirectory(caminho);
                 *
                 *      StreamReader stream = new StreamReader(caminhoOriginal);
                 *
                 *      multFacade.SalvarImagem(multFacade.RedimensionarImagem(stream.BaseStream, 320, 240), caminho + noticia.FotoCapa.Caminho);
                 *  }
                 *
                 * }*/

                if (noticia.Codigo <= 0)
                {
                    return(noticiaDAO.Cadastrar(noticia));
                }

                noticiaDAO.Alterar(noticia);
                return(noticia);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public IList <Dominio.Noticia> Pesquisar(Dominio.Noticia objeto, int qtde, int pagina)
        {
            ICriteria criteria = NHibernate.HttpModule.RecuperarSessao.CreateCriteria(typeof(Dominio.Noticia));

            criteria.AddOrder(Order.Desc("Data"));

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

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

            if (objeto == null)
            {
                return(criteria.List <Dominio.Noticia>());
            }

            if (objeto.Codigo > 0)
            {
                criteria = criteria.Add(Expression.Eq("Codigo", objeto.Codigo));
            }
            if (objeto.UsuarioCadastro != null)
            {
                criteria = criteria.Add(Expression.Eq("CodUsuario", objeto.UsuarioCadastro.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));
            }

            if (objeto.AnteTitulo == "UsarDestaque")
            {
                criteria = criteria.Add(Expression.Eq("Destaque", objeto.Destaque));
            }

            IList <Dominio.Noticia> noticias = criteria.List <Dominio.Noticia>();

            return(noticias);
        }
예제 #3
0
        /// <summary>
        /// Pesquisa notícias pelos atributos da notícia passada
        /// </summary>
        /// <param name="noticia">Objeto para filtro</param>
        /// <param name="qtde">Quantidade de registros a retornar ("0" para todos)</param>
        public IList <Dominio.Noticia> PesquisarNoticia(Dominio.Noticia noticia, int pagina, int qtde = 0)
        {
            try
            {
                IFactoryDAO fabrica    = FactoryFactoryDAO.GetFabrica();
                INoticiaDAO noticiaDAO = fabrica.GetNoticiaDAO();

                if (qtde > 0)
                {
                    return(noticiaDAO.Pesquisar(noticia, qtde, pagina));
                }

                return(noticiaDAO.Pesquisar(noticia));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        public void Alterar(Dominio.Noticia objeto)
        {
            try
            {
                MySQL.ConteudoMySQL conteudoDAO = new MySQL.ConteudoMySQL();
                NHibernate.HttpModule.RecuperarSessao.Update(objeto);

                NHibernate.HttpModule.RecuperarSessao.Flush();

                conteudoDAO.VincularFotos(objeto);
                if (objeto.ListaPalavrasChave != null)
                {
                    conteudoDAO.VincularPalavraChave(objeto);
                }
            }
            catch
            {
                throw;
            }
        }
        public Dominio.Noticia Cadastrar(Dominio.Noticia objeto)
        {
            try
            {
                MySQL.ConteudoMySQL conteudoDAO = new MySQL.ConteudoMySQL();
                NHibernate.HttpModule.RecuperarSessao.Transaction.Begin();

                objeto.Codigo = (int)NHibernate.HttpModule.RecuperarSessao.Save(objeto);

                NHibernate.HttpModule.RecuperarSessao.Transaction.Commit();
                conteudoDAO.VincularFotos(objeto);
                if (objeto.ListaPalavrasChave != null)
                {
                    conteudoDAO.VincularPalavraChave(objeto);
                }

                return(objeto);
            }
            catch
            {
                throw;
            }
        }
        public bool Excluir(int codigo)
        {
            Dominio.Noticia noticia = this.Pesquisar(codigo);

            using (ISession session = NHibernate.HttpModule.RecuperarSessao)
                using (ITransaction transaction = session.BeginTransaction())
                {
                    try
                    {
                        MySQL.ConteudoMySQL conteudoDAO = new MySQL.ConteudoMySQL();
                        conteudoDAO.DesvincularFotos(noticia);

                        NHibernate.HttpModule.RecuperarSessao.Delete(noticia);
                        transaction.Commit();
                    }
                    catch (HibernateException e)
                    {
                        transaction.Rollback();
                        throw new ApplicationException("Existem outros registros vinculados, notícia não pode ser excluída", e.InnerException);
                    }
                }

            return(true);
        }