/// <summary>
        /// Exclui a aventura pelo código
        /// </summary>
        /// <param name="codigo">Código para exclusão</param>
        public bool ExcluirAventura(int codigo)
        {
            try
            {
                IFactoryDAO  fabrica     = FactoryFactoryDAO.GetFabrica();
                IAventuraDAO aventuraDAO = fabrica.GetAventuraDAO();

                return(aventuraDAO.Excluir(codigo));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Pesquisa aventura pelo código
        /// </summary>
        /// <param name="codigo">Código para filtro</param>
        public Dominio.Aventura PesquisarAventura(int codigo)
        {
            try
            {
                IFactoryDAO  fabrica     = FactoryFactoryDAO.GetFabrica();
                IAventuraDAO aventuraDAO = fabrica.GetAventuraDAO();

                return(aventuraDAO.Pesquisar(codigo));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Salva a aventura e o arquivo vinculado
        /// </summary>
        /// <param name="aventura">Objeto para salvar</param>
        /// <param name="arquivoRota">Arquivo de rota para salvar</param>
        public Dominio.Aventura SalvarAventura(Dominio.Aventura aventura, HttpPostedFileBase arquivoRota)
        {
            try
            {
                if (aventura == null)
                {
                    throw new ArgumentNullException("aventura");
                }

                IFactoryDAO  fabrica     = FactoryFactoryDAO.GetFabrica();
                IAventuraDAO aventuraDAO = fabrica.GetAventuraDAO();

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

                if (arquivoRota != null)
                {
                    string caminho     = "~/AppData/Rota/";
                    string nomeArquivo = new Regex(@"[^0-9]").Replace(DateTime.Now.ToString(), "") + Path.GetFileName(arquivoRota.FileName);

                    if (aventura.Rota == null)
                    {
                        aventura.Rota = new Rota()
                        {
                            Caminho = string.Format("Rota/{0}", nomeArquivo)
                        }
                    }
                    ;

                    this.SalvarArquivo(caminho, nomeArquivo, arquivoRota);
                }

                if (aventura.Codigo <= 0)
                {
                    return(aventuraDAO.Cadastrar(aventura));
                }

                aventuraDAO.Alterar(aventura);
                return(aventura);
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Pesquisa aventuras utilizando os atributos da aventura
        /// </summary>
        /// <param name="aventura">Objeto para filtro</param>
        /// <param name="qtde">Quantidade de registros para retornar ("0" para todos)</param>
        public IList <Dominio.Aventura> PesquisarAventura(Dominio.Aventura aventura, int qtde, int pagina)
        {
            try
            {
                IFactoryDAO  fabrica     = FactoryFactoryDAO.GetFabrica();
                IAventuraDAO aventuraDAO = fabrica.GetAventuraDAO();

                if (qtde > 0)
                {
                    return(aventuraDAO.Pesquisar(aventura, qtde, pagina));
                }

                return(aventuraDAO.Pesquisar(aventura));
            }
            catch (Exception e)
            {
                throw e;
            }
        }