Exemplo n.º 1
0
        public ActionResult PerfilEditar(Empresa EmpresaModel, HttpPostedFileBase Foto)
        {
            // Verifica se existe um arquivo escolhido
            if (Foto != null && Foto.ContentLength > 0)
            {
                AmazonUpload AmazonS3 = new AmazonUpload();

                //Verifica se possui arquivo antigo para substituição na amazon
                string ArquivoAntigo = Database.DBBuscaInfo("Empresas", "ID", Convert.ToString(EmpresaModel.ID), "Foto");

                // Pega o nome do arquivo
                EmpresaModel.Foto = Path.GetFileName(Foto.FileName);

                // Grava o arquivo em uma pasta local
                var Caminho = Path.Combine(Server.MapPath("~/Content/uploads"), EmpresaModel.Foto);
                Foto.SaveAs(Caminho);

                //Verifica se existe a pasta da empresa no Bucket
                if (!AmazonS3.ExistePasta(Convert.ToString(Session["EmpresaNome"]), "Fotos", ConfigurationManager.AppSettings["BucketName"]))
                {
                    //Cria uma pasta no Bucket com o nome da empresa
                    AmazonS3.CriaPasta(Convert.ToString(Session["EmpresaNome"]), "Fotos", ConfigurationManager.AppSettings["BucketName"]);
                }

                //Apaga arquivo antigo para fazer upload de um novo
                AmazonS3.ApagaArquivo(ConfigurationManager.AppSettings["BucketName"], Convert.ToString(Session["EmpresaNome"]), "Fotos", ArquivoAntigo);

                //Faz Upload do arquivo para o S3
                AmazonS3.EnviaArquivoS3(Caminho, ConfigurationManager.AppSettings["BucketName"], Convert.ToString(Session["EmpresaNome"]), "Fotos", EmpresaModel.Foto);

                //Seleta o arquivo salvo localmente
                System.IO.File.Delete(Caminho);
            }
            else
            {
                //Se não tem arquivo novo, mantém o antigo
                EmpresaModel.Foto = Database.DBBuscaInfo("Empresas", "ID", Convert.ToString(EmpresaModel.ID), "Foto");
            }

            if (EmpresaDAO.EditarPerfil(EmpresaModel))
            {
                Session["UsuarioFoto"] = EmpresaModel.Foto;

                return(RedirectToAction("Perfil", new { ID = EmpresaModel.ID }));
            }

            //Busca e retorna um dictionary contendo os dados
            var TodosEstados = SelectListMVC.CriaListaSelecao(EmpresaDAO.Estados());

            foreach (var item in TodosEstados)
            {
                if (item.Text == EmpresaModel.Estado)
                {
                    item.Selected = true;
                    break;
                }
            }

            ViewBag.Estados = TodosEstados;

            return(RedirectToAction("PerfilEditar", EmpresaModel));
        }