예제 #1
0
        /// <summary>
        /// Pesquisa artigo pelos atributos do artigo usado para trazer apenas artigos
        /// para visualizacao no container de Saude e Treinamento.
        /// </summary>
        /// <param name="artigo">Filtro para pesquisa</param>
        /// <param name="qtde">Quantidade de registros de retorno ("0" para todos)</param>
        public IList <Dominio.Artigo> PesquisarArtigoSaude(Dominio.Artigo artigo, short qtde = 3)
        {
            try
            {
                if (artigo == null)
                {
                    artigo = new Artigo();
                }

                artigo.ObjCategoria = new Categoria()
                {
                    Codigo = 3
                };

                IFactoryDAO fabrica   = FactoryFactoryDAO.GetFabrica();
                IArtigoDAO  artigoDAO = fabrica.GetArtigoDAO();

                if (qtde > 0)
                {
                    return(artigoDAO.Pesquisar(artigo, qtde));
                }

                return(artigoDAO.Pesquisar(artigo));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #2
0
        /// <summary>
        /// Salva o artigo
        /// </summary>
        /// <param name="artigo">Objeto para salvar</param>
        public Dominio.Artigo SalvarArtigo(Dominio.Artigo artigo)
        {
            try
            {
                if (artigo == null)
                {
                    throw new NotImplementedException("artigo");
                }

                IFactoryDAO fabrica   = FactoryFactoryDAO.GetFabrica();
                IArtigoDAO  artigoDAO = fabrica.GetArtigoDAO();

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

                if (artigo.Codigo <= 0)
                {
                    return(artigoDAO.Cadastrar(artigo));
                }

                artigoDAO.Alterar(artigo);
                return(artigo);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #3
0
        /// <summary>
        /// Pesquisa de Artigos
        /// </summary>
        /// <param name="artigo"></param>
        /// <param name="qtde">LIMIT RESULT SET</param>
        /// <returns></returns>
        public IList <Dominio.Artigo> Pesquisar(Dominio.Artigo artigo, short qtde)
        {
            ICriteria criteria = NHibernate.HttpModule.RecuperarSessao.CreateCriteria(typeof(Dominio.Artigo));

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

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

            if (artigo == null)
            {
                return(criteria.List <Dominio.Artigo>());
            }

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

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

            return(artigos);
        }
예제 #4
0
        public Dominio.Artigo Cadastrar(Dominio.Artigo objeto)
        {
            MySQL.ConteudoMySQL conteudoDAO = new MySQL.ConteudoMySQL();

            try
            {
                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 (Exception e)
            {
                NHibernate.HttpModule.RecuperarSessao.Transaction.Rollback();

                return(null);
            }
        }
예제 #5
0
        public void Alterar(Dominio.Artigo objeto)
        {
            try
            {
                MySQL.ConteudoMySQL conteudoDAO = new MySQL.ConteudoMySQL();

                NHibernate.HttpModule.RecuperarSessao.Transaction.Begin();

                NHibernate.HttpModule.RecuperarSessao.Update(objeto);

                NHibernate.HttpModule.RecuperarSessao.Transaction.Commit();

                conteudoDAO.VincularFotos(objeto);

                if (objeto.ListaPalavrasChave != null)
                {
                    conteudoDAO.VincularPalavraChave(objeto);
                }
            }
            catch
            {
                NHibernate.HttpModule.RecuperarSessao.Transaction.Rollback();
                throw;
            }
        }
예제 #6
0
        /// <summary>
        /// Pesquisa artigo pelos atributos do artigo usado para trazer apenas artigos
        /// para visualizacao no container de artigos.
        /// </summary>
        /// <param name="artigo">Filtro para pesquisa</param>
        /// <param name="qtde">Quantidade de registros de retorno ("0" para todos)</param>
        public IList <Dominio.Artigo> PesquisarArtigoArtigoTecnico(Dominio.Artigo artigo, short qtde = 4)
        {
            try
            {
                IFactoryDAO    fabrica   = FactoryFactoryDAO.GetFabrica();
                IArtigoDAO     artigoDAO = fabrica.GetArtigoDAO();
                IList <Artigo> lista     = artigoDAO.Pesquisar(artigo);

                // Remove os Itens de Historia do montanhismo.
                ((List <Artigo>)lista).RemoveAll(p => p.ObjCategoria.Codigo == 2);

                return((IList <Artigo>)((List <Artigo>)lista).GetRange(0, qtde));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #7
0
        /// <summary>
        /// Pesquisa artigo pelos atributos do artigo
        /// </summary>
        /// <param name="artigo">Filtro para pesquisa</param>
        /// <param name="qtde">Quantidade de registros de retorno ("0" para todos)</param>
        public IList <Dominio.Artigo> PesquisarArtigo(Dominio.Artigo artigo, int qtde, int pagina, int[] CodigosCategorias)
        {
            try
            {
                IFactoryDAO fabrica   = FactoryFactoryDAO.GetFabrica();
                IArtigoDAO  artigoDAO = fabrica.GetArtigoDAO();

                if (qtde > 0)
                {
                    return(artigoDAO.Pesquisar(artigo, qtde, pagina, CodigosCategorias));
                }

                return(artigoDAO.Pesquisar(artigo));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #8
0
        /// <summary>
        /// Pesquisa artigo pelos atributos do artigo
        /// </summary>
        /// <param name="artigo">Filtro para pesquisa</param>
        /// <param name="qtde">Quantidade de registros de retorno ("0" para todos)</param>
        public IList <Dominio.Artigo> PesquisarArtigo(Dominio.Artigo artigo, int qtde = 0)
        {
            try
            {
                IFactoryDAO fabrica   = FactoryFactoryDAO.GetFabrica();
                IArtigoDAO  artigoDAO = fabrica.GetArtigoDAO();

                if (qtde > 0)
                {
                    return(artigoDAO.Pesquisar(artigo, qtde));
                }

                return(artigoDAO.Pesquisar(artigo));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
예제 #9
0
        public bool Excluir(int codigo)
        {
            Dominio.Artigo artigo = Pesquisar(codigo);

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

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

            return(true);
        }