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

                IFactoryDAO fabrica   = FactoryFactoryDAO.GetFabrica();
                IColunaDAO  colunaDAO = fabrica.GetColunaDAO();

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

                if (coluna.Codigo <= 0)
                {
                    return(colunaDAO.Cadastrar(coluna));
                }

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

                return(colunaDAO.Excluir(codigo));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Pesquisa a coluna pelo código
        /// </summary>
        /// <param name="codigo">Código para filtro</param>
        public Dominio.Coluna PesquisarColuna(int codigo)
        {
            try
            {
                IFactoryDAO fabrica   = FactoryFactoryDAO.GetFabrica();
                IColunaDAO  colunaDAO = fabrica.GetColunaDAO();

                return(colunaDAO.Pesquisar(codigo));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Pesquisa colunas utilizando os atributos da coluna passada
        /// </summary>
        /// <param name="coluna">Objeto para filtro</param>
        /// <param name="qtde">Quantidade de registros a retornar ("0" para todos)</param>
        public IList <Dominio.Coluna> PesquisarColuna(Dominio.Coluna coluna, int qtde, int pagina, bool ultimas = false, int[] CodigosUsuarios = null)
        {
            // TODO : Refactorin this shit...
            try
            {
                IFactoryDAO fabrica = FactoryFactoryDAO.GetFabrica();

                if (!ultimas)
                {
                    IColunaDAO colunaDAO = fabrica.GetColunaDAO();
                    return(colunaDAO.Pesquisar(coluna, qtde, pagina, CodigosUsuarios));
                }
                else
                {
                    Persistencia.MySQL.ColunaMySQL colunaDAO = (Persistencia.MySQL.ColunaMySQL)fabrica.GetColunaDAO(false);
                    return(colunaDAO.PesquisarUltimasColunas());
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }