/// <summary>
        /// Pesquisar banner por código
        /// </summary>
        /// <param name="codigo">Código do banner</param>
        /// <returns>Banner</returns>
        public Dominio.Banner PesquisarBanner(int codigo)
        {
            try
            {
                IFactoryDAO fabrica   = FactoryFactoryDAO.GetFabrica();
                IBannerDAO  bannerDAO = fabrica.GetBannerDAO();

                return(bannerDAO.Pesquisar(codigo));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Pesquisa banner com os atributos que estiverem preenchidos
        /// </summary>
        /// <param name="banner">Banner para pesquisa</param>
        /// <returns>List<Banner></returns>
        public IList <Dominio.Banner> PesquisarBanner(Dominio.Banner banner)
        {
            try
            {
                IFactoryDAO fabrica   = FactoryFactoryDAO.GetFabrica();
                IBannerDAO  bannerDAO = fabrica.GetBannerDAO();

                return(bannerDAO.Pesquisar(banner));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Pesquisa banner com o código do local
        /// </summary>
        /// <param name="banner">Banner para pesquisa</param>
        /// <returns>List<Banner></returns>
        public Dominio.Banner PesquisarBannerPorLocal(int codigo)
        {
            try
            {
                IFactoryDAO fabrica   = FactoryFactoryDAO.GetFabrica();
                IBannerDAO  bannerDAO = fabrica.GetBannerDAO();

                Dominio.Banner banner = new Dominio.Banner();
                banner.Local = new Dominio.Local()
                {
                    Codigo = codigo
                };

                IList <Dominio.Banner> banners = bannerDAO.Pesquisar(banner);
                return(banners.First());
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Exclui o registro de banner.
        /// </summary>
        /// <param name="codigo"></param>
        /// <returns></returns>
        public bool ExcluirBanner(int codigo)
        {
            try
            {
                IFactoryDAO fabrica   = FactoryFactoryDAO.GetFabrica();
                IBannerDAO  bannerDAO = fabrica.GetBannerDAO();

                string path = HttpContext.Current.Server.MapPath("~/AppData/Banner");

                Dominio.Banner banner = bannerDAO.Pesquisar(codigo);
                if (File.Exists(string.Format(@"{0}\{1}", path, banner.Caminho)))
                {
                    File.Delete(string.Format(@"{0}\{1}", path, banner.Caminho));
                }

                return(bannerDAO.Excluir(codigo));
            }
            catch (Exception e)
            {
                throw e;
            }
        }
        /// <summary>
        /// Salva o banner e o arquivo
        /// </summary>
        /// <param name="banner">Banner</param>
        /// <param name="arquivo">Arquivo de imagem ou multimídia</param>
        public Dominio.Banner SalvarBanner(Dominio.Banner banner, HttpPostedFileBase arquivo, string AntigoBanner)
        {
            try
            {
                if (banner == null)
                {
                    throw new ArgumentNullException("usuario");
                }

                IFactoryDAO fabrica   = FactoryFactoryDAO.GetFabrica();
                IBannerDAO  bannerDAO = fabrica.GetBannerDAO();

                if (arquivo != null)
                {
                    banner.Caminho = new Regex(@"[^0-9]").Replace(DateTime.Now.ToString(), "") + arquivo.FileName;
                    string path = "~/AppData/Banner/" + banner.Caminho;

                    this.SalvarArquivo(path, arquivo);
                }
                else
                {
                    banner.Caminho = AntigoBanner;
                }

                if (banner.Codigo == 0)
                {
                    return(bannerDAO.Cadastrar(banner));
                }

                bannerDAO.Alterar(banner);

                return(banner);
            }
            catch (Exception e)
            {
                throw e;
            }
        }