/// <summary>
        /// Salva a categoria
        /// </summary>
        /// <param name="categoria">Objeto para salvar</param>
        public Dominio.Categoria SalvarCategoria(Dominio.Categoria categoria)
        {
            try
            {
                if (categoria == null)
                {
                    throw new ArgumentNullException("categoria");
                }

                IFactoryDAO   fabrica      = FactoryFactoryDAO.GetFabrica();
                ICategoriaDAO categoriaDAO = fabrica.GetCategoriaDAO();

                if (categoria.Codigo <= 0)
                {
                    return(categoriaDAO.Cadastrar(categoria));
                }

                categoriaDAO.Alterar(categoria);
                return(categoria);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Exclui a categoria pelo código
        /// </summary>
        /// <param name="codigo">Código para exclusão</param>
        public bool ExcluirCategoria(int codigo)
        {
            try
            {
                IFactoryDAO   fabrica      = FactoryFactoryDAO.GetFabrica();
                ICategoriaDAO categoriaDAO = fabrica.GetCategoriaDAO();

                return(categoriaDAO.Excluir(codigo));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Pesquisa categoria pelo código
        /// </summary>
        /// <param name="codigo">Código para filtro</param>
        public Dominio.Categoria PesquisarCategoria(int codigo)
        {
            try
            {
                IFactoryDAO   fabrica      = FactoryFactoryDAO.GetFabrica();
                ICategoriaDAO categoriaDAO = fabrica.GetCategoriaDAO();

                return(categoriaDAO.Pesquisar(codigo));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Pesquisa categorias pelos atributos da categoria
        /// </summary>
        /// <param name="categoria">Objeto para filtro</param>
        public IList <Dominio.Categoria> PesquisarCategoria(Dominio.Categoria categoria)
        {
            try
            {
                IFactoryDAO   fabrica      = FactoryFactoryDAO.GetFabrica();
                ICategoriaDAO categoriaDAO = fabrica.GetCategoriaDAO();

                return(categoriaDAO.Pesquisar(categoria));
            }
            catch (Exception e)
            {
                throw e;
            }
        }