public ActionResult RenomearPasta(FormCollection PostFolder) { string _caminhoSolicitadoPasta = PostFolder["hidCaminhoComp"]; string _novoNomePasta = PostFolder["NomePasta"]; string _diretorioBaseUsuario = null; string _caminhoSemPasta = null; string _antigoNomePasta = null; string _nomePastaTemporaria = null; string _caminhoPastaOriginal = null; string _caminhoMiniPastaOriginal = null; string _caminhoPastaAlterada = null; string _caminhoPastaAlteradaTemp = null; string _caminhoMiniPastaAlterada = null; string _caminhoMiniPastaAlteradaTemp = null; string _caminhoPaiCompleto = null; UsuarioContext usuarioAcesso = new UsuarioContext(); var _retornoQueryUser = (from usuarioInfoAcesso in usuarioAcesso.CloudUsuariosAcesso where usuarioInfoAcesso.Uac_UserName == User.Identity.Name select usuarioInfoAcesso).SingleOrDefault(); _diretorioBaseUsuario = _retornoQueryUser.Uac_Fk.Usu_DiretorioBase; Encoding iso = Encoding.GetEncoding("ISO-8859-1"); _caminhoSolicitadoPasta = HttpUtility.UrlDecode(_caminhoSolicitadoPasta, iso); _caminhoSemPasta = _caminhoSolicitadoPasta.Substring(0, _caminhoSolicitadoPasta.LastIndexOf("/")); _antigoNomePasta = Path.GetFileName(_caminhoSemPasta); _caminhoSemPasta = _caminhoSemPasta.Substring(0, _caminhoSemPasta.LastIndexOf("/")); // DiretoriosArquivosContext diretoriosArquivosContext = new DiretoriosArquivosContext(); diretoriosArquivosContex.Configuration.AutoDetectChangesEnabled = false; using (var trans = diretoriosArquivosContex.Database.BeginTransaction(IsolationLevel.ReadCommitted)) { try { var _retornoQueryDiretorioArquivo = (from dirArquiInfo in diretoriosArquivosContex.CloudDiretoriosArquivos where dirArquiInfo.Dia_Nome == _antigoNomePasta && dirArquiInfo.Dia_CaminhoAtual == _caminhoSemPasta + "/" && dirArquiInfo.Dia_Fk_Usu_id == _retornoQueryUser.Uac_Fk.Usu_Id select dirArquiInfo).AsNoTracking().SingleOrDefault(); var diretoriosArquivos = new NewPhotoCloudDiretoriosArquivos { Dia_Id = _retornoQueryDiretorioArquivo.Dia_Id, Dia_Fk_Usu_id = _retornoQueryUser.Uac_Fk.Usu_Id, Dia_Nome = _novoNomePasta, Dia_CaminhoOriginal = _retornoQueryDiretorioArquivo.Dia_CaminhoOriginal, Dia_CaminhoAtual = _retornoQueryDiretorioArquivo.Dia_CaminhoAtual, Dia_Tipo = _retornoQueryDiretorioArquivo.Dia_Tipo, Dia_DataCriacao = _retornoQueryDiretorioArquivo.Dia_DataCriacao, Dia_DataExclusao = _retornoQueryDiretorioArquivo.Dia_DataExclusao, Dia_Status = _retornoQueryDiretorioArquivo.Dia_Status }; diretoriosArquivosContex.Entry(diretoriosArquivos).State = EntityState.Modified; diretoriosArquivosContex.SaveChanges(); try { // DiretoriosArquivosContext diretoriosArquivosFilhosContext = new DiretoriosArquivosContext(); var _retornoQueryDiretorioArquivoFilhos = (from dirArquiFilhoInfo in diretoriosArquivosContex.CloudDiretoriosArquivos where dirArquiFilhoInfo.Dia_CaminhoAtual.StartsWith(_caminhoSolicitadoPasta) && dirArquiFilhoInfo.Dia_Fk_Usu_id == _retornoQueryUser.Uac_Fk.Usu_Id select dirArquiFilhoInfo).AsNoTracking(); // List<NewPhotoCloudDiretoriosArquivos> _listArqDirUpdate = new List<NewPhotoCloudDiretoriosArquivos>(); foreach (var item in _retornoQueryDiretorioArquivoFilhos) { string _caminhoAlterado = item.Dia_CaminhoAtual.Replace("/" + _antigoNomePasta + "/", "/" + _novoNomePasta + "/"); var diretoriosArquivosFilhos = new NewPhotoCloudDiretoriosArquivos { Dia_Id = item.Dia_Id, Dia_Fk_Usu_id = _retornoQueryUser.Uac_Fk.Usu_Id, Dia_Nome = item.Dia_Nome, Dia_CaminhoOriginal = item.Dia_CaminhoOriginal, Dia_CaminhoAtual = _caminhoAlterado, // Dia_CaminhoAtual = _caminhoSemPasta + "/" + _novoNomePasta + "/", Dia_Tipo = item.Dia_Tipo, Dia_DataCriacao = item.Dia_DataCriacao, Dia_DataExclusao = item.Dia_DataExclusao, Dia_Status = item.Dia_Status }; diretoriosArquivosContex.Entry(diretoriosArquivosFilhos).State = EntityState.Modified; } diretoriosArquivosContex.ChangeTracker.DetectChanges(); diretoriosArquivosContex.SaveChanges(); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao registrar a alteração dos conteúdos da pasta: <strong>" + _novoNomePasta + "</strong>"; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _antigoNomePasta; return(PartialView()); } } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao registrar a alteração da pasta: <strong>" + _novoNomePasta + "</strong>"; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _antigoNomePasta; return(PartialView()); } try { _caminhoMiniPastaOriginal = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario + _caminhoSemPasta + "/" + _antigoNomePasta); _caminhoPastaOriginal = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario + _caminhoSemPasta + "/" + _antigoNomePasta); _caminhoMiniPastaAlterada = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario + _caminhoSemPasta + "/" + _novoNomePasta); _caminhoPastaAlterada = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario + _caminhoSemPasta + "/" + _novoNomePasta); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao renomear a pasta de <strong>" + _antigoNomePasta + "</strong> para <strong>" + _novoNomePasta + "</strong>. <br /> Caminho muito extenso."; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _antigoNomePasta; return(PartialView()); } if (_caminhoMiniPastaAlterada.Length >= 248) { _caminhoPaiCompleto = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario + _caminhoSemPasta); _caminhoPaiCompleto = _caminhoPaiCompleto.Substring(1, _caminhoPaiCompleto.LastIndexOf("\\") - 1); trans.Rollback(); ViewBag.Message = "Não é possível renomear a pasta <strong>" + _antigoNomePasta + "</strong> para <strong>" + _novoNomePasta + "</strong>. <br /> Caminho muito extenso."; ViewBag.Status = 1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _antigoNomePasta; return(PartialView()); } if (_caminhoMiniPastaOriginal.Equals(_caminhoMiniPastaAlterada, StringComparison.InvariantCultureIgnoreCase)) { ConvertMD5 ConverteMd5 = new ConvertMD5(); _nomePastaTemporaria = Path.GetFileName(_caminhoMiniPastaAlterada); _caminhoMiniPastaAlteradaTemp = _caminhoSemPasta + "/" + ConverteMd5.getMD5Hash(CryptographyRepository.Criptografar(_nomePastaTemporaria)); try { //System.IO.Directory.Move(Server.MapPath(@"\pasta"), Server.MapPath(@"\pasta renomeada")); _caminhoMiniPastaAlteradaTemp = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario + _caminhoMiniPastaAlteradaTemp); System.IO.Directory.Move(@_caminhoMiniPastaOriginal, @_caminhoMiniPastaAlteradaTemp); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao criar pasta temporária de miniaturas para configuração de diretórios."; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _antigoNomePasta; return(PartialView()); } } // Determine whether the directory exists. if (Directory.Exists(_caminhoMiniPastaAlterada)) { if (_caminhoMiniPastaAlteradaTemp != null) { System.IO.Directory.Move(@_caminhoMiniPastaAlteradaTemp, @_caminhoMiniPastaOriginal); } trans.Rollback(); ViewBag.Message = "A pasta <strong>" + _novoNomePasta + "</strong> já existe."; ViewBag.Status = 1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _antigoNomePasta; return(PartialView()); } if (_caminhoMiniPastaAlteradaTemp != null) { _caminhoMiniPastaOriginal = _caminhoMiniPastaAlteradaTemp; } try { //System.IO.Directory.Move(Server.MapPath(@"\pasta"), Server.MapPath(@"\pasta renomeada")); System.IO.Directory.Move(@_caminhoMiniPastaOriginal, @_caminhoMiniPastaAlterada); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao renomear a pasta de miniaturas, de <strong>" + _antigoNomePasta + "</strong> para <strong>" + _novoNomePasta + "</strong>."; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _antigoNomePasta; return(PartialView()); } _nomePastaTemporaria = null; if (_caminhoPastaOriginal.Equals(_caminhoPastaAlterada, StringComparison.InvariantCultureIgnoreCase)) { ConvertMD5 ConverteMd5 = new ConvertMD5(); _nomePastaTemporaria = Path.GetFileName(_caminhoPastaAlterada); _caminhoPastaAlteradaTemp = _caminhoSemPasta + "/" + ConverteMd5.getMD5Hash(CryptographyRepository.Criptografar(_nomePastaTemporaria)); try { //System.IO.Directory.Move(Server.MapPath(@"\pasta"), Server.MapPath(@"\pasta renomeada")); _caminhoPastaAlteradaTemp = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario + _caminhoPastaAlteradaTemp); System.IO.Directory.Move(@_caminhoPastaOriginal, @_caminhoPastaAlteradaTemp); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao criar pasta temporária para configuração de diretórios."; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _antigoNomePasta; return(PartialView()); } } // Determine whether the directory exists. if (Directory.Exists(_caminhoPastaAlterada)) { if (_caminhoPastaAlteradaTemp != null) { System.IO.Directory.Move(@_caminhoPastaAlteradaTemp, @_caminhoPastaOriginal); // ?????????????? RENOMEAR MINI ????????????????? } trans.Rollback(); ViewBag.Message = "A pasta <strong>" + _novoNomePasta + "</strong> já existe."; ViewBag.Status = 1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _antigoNomePasta; return(PartialView()); } if (_caminhoPastaAlteradaTemp != null) { _caminhoPastaOriginal = _caminhoPastaAlteradaTemp; } try { //System.IO.Directory.Move(Server.MapPath(@"\pasta"), Server.MapPath(@"\pasta renomeada")); System.IO.Directory.Move(_caminhoPastaOriginal, _caminhoPastaAlterada); } catch (Exception e) { System.IO.Directory.Move(_caminhoMiniPastaAlterada, _caminhoMiniPastaOriginal); trans.Rollback(); ViewBag.Message = "Falha ao renomear a pasta de <strong>" + _antigoNomePasta + "</strong> para <strong>" + _novoNomePasta + "</strong>."; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _antigoNomePasta; return(PartialView()); } trans.Commit(); } ViewBag.Message = "A pasta <strong>" + _antigoNomePasta + "</strong> foi renomeada para <strong>" + _novoNomePasta + "</strong> com sucesso."; ViewBag.Status = 0; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _novoNomePasta; return(PartialView()); }
public ActionResult CriarPasta(FormCollection PostFolder) { string _caminhoNovaPasta = PostFolder["hidCaminhoComp"]; string _novaPasta = PostFolder["NomePasta"]; string _diretorioBaseUsuario = null; string _caminhoCompleto = null; string _caminhoCompletoMini = null; string _caminhoPaiCompleto = null; int? _usu_id; UsuarioContext usuarioAcesso = new UsuarioContext(); var _retornoQueryUser = (from usuarioInfoAcesso in usuarioAcesso.CloudUsuariosAcesso where usuarioInfoAcesso.Uac_UserName == User.Identity.Name select usuarioInfoAcesso).SingleOrDefault(); _diretorioBaseUsuario = _retornoQueryUser.Uac_Fk.Usu_DiretorioBase; _usu_id = _retornoQueryUser.Uac_Fk.Usu_Id; Encoding iso = Encoding.GetEncoding("ISO-8859-1"); _caminhoNovaPasta = HttpUtility.UrlDecode(_caminhoNovaPasta, iso); using (var trans = diretoriosArquivosContex.Database.BeginTransaction(IsolationLevel.ReadCommitted)) { try { var diretoriosArquivos = new NewPhotoCloudDiretoriosArquivos { Dia_Nome = _novaPasta, Dia_CaminhoAtual = _caminhoNovaPasta, Dia_DataCriacao = DateTime.Now.ToUniversalTime(), Dia_Tipo = "D", Dia_Status = "A", Dia_Fk_Usu_id = _usu_id }; diretoriosArquivosContex.CloudDiretoriosArquivos.Add(diretoriosArquivos); // s.Entry(diretoriosArquivos).State = EntityState.Modified; diretoriosArquivosContex.SaveChanges(); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao registrar a pasta: <strong>" + _novaPasta + "</strong>"; ViewBag.Status = -1; return(PartialView()); } try { _caminhoCompletoMini = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario + _caminhoNovaPasta + _novaPasta); _caminhoCompleto = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario + _caminhoNovaPasta + _novaPasta); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao criar a pasta: <strong>" + _novaPasta + "</strong> <br /> Não é possível criar mais pastas dento do diretório atual. <br /> Caminho muito extenso."; ViewBag.Status = -1; return(PartialView()); } if (_caminhoCompletoMini.Length >= 248) { _caminhoPaiCompleto = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario + _caminhoNovaPasta); _caminhoPaiCompleto = _caminhoPaiCompleto.Substring(1, _caminhoPaiCompleto.LastIndexOf("\\") - 1); trans.Rollback(); ViewBag.Message = "Não é possível criar a pasta <strong>" + _novaPasta + "</strong> dento do diretório <strong>" + Path.GetFileName(_caminhoPaiCompleto) + "</strong>. <br /> Caminho muito extenso."; ViewBag.Status = 1; return(PartialView()); } // Determine whether the directory exists. if (Directory.Exists(_caminhoCompleto)) { trans.Rollback(); ViewBag.Message = "A pasta <strong>" + _novaPasta + "</strong> já existe."; ViewBag.Status = 1; return(PartialView()); } try { // Try to create the directory. DirectoryInfo dimini = Directory.CreateDirectory(_caminhoCompletoMini); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao criar a diretório de miniaturas para a pasta: <strong>" + _novaPasta + "</strong>"; ViewBag.Status = -1; return(PartialView()); } try { // Try to create the directory. DirectoryInfo di = Directory.CreateDirectory(_caminhoCompleto); } catch (Exception e) { // Delete the directory. Directory.Delete(_caminhoCompletoMini, true); trans.Rollback(); ViewBag.Message = "Falha ao criar a pasta: <strong>" + _novaPasta + "</strong>"; ViewBag.Status = -1; return(PartialView()); } trans.Commit(); } ViewBag.Message = "A pasta: <strong>" + _novaPasta + "</strong> foi criada com sucesso."; ViewBag.Status = 0; return(PartialView()); }
public JsonResult UploadArquivos(IEnumerable <HttpPostedFileBase> file_upload, FormCollection PostFile) { string _caminho = PostFile.Get("hidcaminho"); string _arquivo = ""; string _retorno = ""; string _extencao = ""; string _nomeArquivo = ""; string _nomeArquivoOriginal = null; string _nomeArquivoSemExtencao = ""; string _caminhoCompleto = null; string _caminhoCompletoMini = null; string _diretorioBaseUsuario = null; int? _usu_id; try { UsuarioContext usuarioAcesso = new UsuarioContext(); var _retornoQueryUser = (from usuarioInfoAcesso in usuarioAcesso.CloudUsuariosAcesso where usuarioInfoAcesso.Uac_UserName == User.Identity.Name select usuarioInfoAcesso).SingleOrDefault(); _diretorioBaseUsuario = _retornoQueryUser.Uac_Fk.Usu_DiretorioBase; _usu_id = _retornoQueryUser.Uac_Fk.Usu_Id; if (_diretorioBaseUsuario != null) { if (file_upload != null && _caminho != null) { foreach (var file in file_upload) { if (file.ContentLength > 0) { using (var trans = diretoriosArquivosContex.Database.BeginTransaction(IsolationLevel.ReadCommitted)) { FileInfo fileInfo = new FileInfo(file.FileName); _nomeArquivoOriginal = null; // _nomeArquivo = file.FileName; _nomeArquivoSemExtencao = Path.GetFileNameWithoutExtension(file.FileName); _extencao = fileInfo.Extension.ToLower(); // string pattern = "/^[^\\/:;,.*?&\"\'<>«»]+$/"; string pattern = "[\\/:;,.*?&\"\'<>«»]"; string replacement = "-"; Regex rgx = new Regex(pattern); if (rgx.IsMatch(_nomeArquivoSemExtencao)) { _nomeArquivoOriginal = file.FileName; } _nomeArquivoSemExtencao = rgx.Replace(_nomeArquivoSemExtencao, @replacement); if (_nomeArquivoSemExtencao.Length > 50) { _nomeArquivoOriginal = file.FileName; _nomeArquivoSemExtencao = _nomeArquivoSemExtencao.Substring(0, 50); //_caminhoSolicitado.Substring(1, _caminhoSolicitado.LastIndexOf("/") - 1); } _nomeArquivo = _nomeArquivoSemExtencao + _extencao; try { var diretoriosArquivos = new NewPhotoCloudDiretoriosArquivos { Dia_Nome = _nomeArquivo, Dia_NomeOriginal = _nomeArquivoOriginal, Dia_CaminhoAtual = _caminho, Dia_DataCriacao = DateTime.Now.ToUniversalTime(), Dia_Tipo = "A", Dia_Status = "A", Dia_Fk_Usu_id = _usu_id }; diretoriosArquivosContex.CloudDiretoriosArquivos.Add(diretoriosArquivos); // s.Entry(diretoriosArquivos).State = EntityState.Modified; diretoriosArquivosContex.SaveChanges(); } catch (Exception ex) { trans.Rollback(); //ViewBag.Message = "Falha ao registrar a arquivo: <strong>" + file.FileName + "</strong>"; //ViewBag.Status = -1; //_retorno = ex.Message; //return Json(_retorno); Response.Status = "800 Falha ao registrar a arquivo: <strong>" + _nomeArquivo + "</strong>"; } try { _caminhoCompleto = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario + _caminho + (_nomeArquivo).Replace(@"+", @"plus")); _caminhoCompletoMini = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario + _caminho + (_nomeArquivo).Replace(@"+", @"plus")); } catch (Exception e) { trans.Rollback(); Response.Status = "799 Falha ao configurar arquivo: <strong>" + _nomeArquivo + "</strong> Caminho muito extenso."; } if (_caminhoCompletoMini.Length >= 248) { trans.Rollback(); ViewBag.Message = "798 Falha ao carregar arquivo: <strong>" + _nomeArquivo + "</strong> Caminho muito extenso."; } _extencao = _extencao.Replace(@".", @""); if (_extencao != "jpg" && _extencao != "png" && _extencao != "gif" && _extencao != "mp4" && _extencao != "wmv" && _extencao != "mpg") { trans.Rollback(); Response.Status = "804 Tipo de arquivo não permitido"; } else { if (System.IO.File.Exists(_caminhoCompleto)) { // ViewBag.Message = "O Arquivo Já existe na pasta: " +_caminho; // Response.StatusCode = 801; trans.Rollback(); Response.Status = "801 O Arquivo Já existe na pasta"; } else { var v = file.ContentLength; if (file.ContentLength > 104857600) { // Response.StatusCode = 805; trans.Rollback(); Response.Status = "805 O Tamanho do arquivo não permitido"; } else { try { file.SaveAs(_caminhoCompleto); _arquivo = _arquivo + _nomeArquivo; //System.Drawing.Image img = System.Drawing.Image.FromFile(serverPath); //System.Drawing.Image thumb = img.GetThumbnailImage(175, 175, null, IntPtr.Zero); //img.Dispose(); //thumb.Save(serverPathMini); int thumbHeight = 175; int thumbWidth = 175; ImageFormat image_format = null; //Stream objStream = new StreamReader(serverPath).BaseStream; //BinaryReader objBinaryReader = new BinaryReader(objStream); //int i = (int)objStream.Length; //byte[] arrBytes = objBinaryReader.ReadBytes(i); //System.IO.MemoryStream memoryStream = new System.IO.MemoryStream(arrBytes); //System.Drawing.Image image = System.Drawing.Image.FromStream(memoryStream); System.Drawing.Image image = System.Drawing.Image.FromFile(_caminhoCompleto); System.Drawing.Image thumbnail = image.GetThumbnailImage(thumbWidth, thumbHeight, null, IntPtr.Zero); //System.Drawing.Image thumbnail = new Bitmap(thumbWidth, thumbHeight); System.Drawing.Graphics graphic = System.Drawing.Graphics.FromImage(thumbnail); // Melhoria da nova imagem // graphic.Clear(Color.White); graphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic; graphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; graphic.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality; graphic.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality; // Desenha a nova imagem graphic.DrawImage(image, 0, 0, thumbWidth, thumbHeight); // Aplica a codificação necessária System.Drawing.Imaging.ImageCodecInfo[] info = System.Drawing.Imaging.ImageCodecInfo.GetImageEncoders(); System.Drawing.Imaging.EncoderParameters encoderParameters; encoderParameters = new System.Drawing.Imaging.EncoderParameters(3); encoderParameters.Param[0] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.ColorDepth, 24); encoderParameters.Param[1] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Compression, 0); encoderParameters.Param[2] = new System.Drawing.Imaging.EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L); // Exibe a imagem em forma de JPG switch (_extencao) { case "png": Response.AddHeader("Response-Type", "image/png"); Response.ContentType = "image/png"; image_format = ImageFormat.Png; thumbnail.Save(_caminhoCompletoMini, image_format); break; case "gif": Response.AddHeader("Response-Type", "image/gif"); Response.ContentType = "image/gif"; // image_format = ImageFormat.Gif; thumbnail.Save(_caminhoCompletoMini); break; case "jpg": Response.AddHeader("Response-Type", "image/jpeg"); Response.ContentType = "image/jpeg"; thumbnail.Save(_caminhoCompletoMini, info[1], encoderParameters); break; default: thumbnail.Save(_caminhoCompletoMini); break; } thumbnail.Dispose(); image.Dispose(); graphic.Dispose(); } catch (Exception ex) { trans.Rollback(); Response.Status = ex.Message;// "797 Falha ao criar miniatura: <strong>" + file.FileName + "</strong>."; } } } } trans.Commit(); } //trans } else { Response.Status = "802 O Conteudo do Arquivo é 0"; } } //foreach } //file_upload != null && _caminho != null else { Response.Status = "803 O Arquivo é nullo."; } } //_diretorioBaseUsuario != null } catch (Exception ex) { // ViewBag.Message = "Erro "+ ex.Message; _retorno = ex.Message; } return(Json(_extencao)); }
public ActionResult RenomearArquivo(FormCollection PostFolder) { string _caminhoSolicitadoArquivo = PostFolder["hidCaminhoComp"]; string _novoNomeArquivo = PostFolder["NomeArquivo"]; string _novoNomeArquivoSemExtencao = _novoNomeArquivo; string _diretorioBaseUsuario = null; string _caminhoSemArquivo = null; string _antigoNomeArquivo = null; string _antigoNomeArquivoSemExtencao = null; string _arquivoExtencao = null; string _caminhoMiniArquivoOriginal = null; string _caminhoArquivoOriginal = null; string _caminhoMiniArquivoAlterado = null; string _caminhoArquivoAlterado = null; UsuarioContext usuarioAcesso = new UsuarioContext(); var _retornoQueryUser = (from usuarioInfoAcesso in usuarioAcesso.CloudUsuariosAcesso where usuarioInfoAcesso.Uac_UserName == User.Identity.Name select usuarioInfoAcesso).SingleOrDefault(); _diretorioBaseUsuario = _retornoQueryUser.Uac_Fk.Usu_DiretorioBase; Encoding iso = Encoding.GetEncoding("ISO-8859-1"); _caminhoSolicitadoArquivo = HttpUtility.UrlDecode(_caminhoSolicitadoArquivo, iso); _caminhoSemArquivo = _caminhoSolicitadoArquivo.Substring(0, _caminhoSolicitadoArquivo.LastIndexOf("/")); _antigoNomeArquivo = Path.GetFileName(_caminhoSolicitadoArquivo); _antigoNomeArquivoSemExtencao = Path.GetFileNameWithoutExtension(_antigoNomeArquivo); FileInfo arquivoInfo = new FileInfo(_antigoNomeArquivo); _arquivoExtencao = arquivoInfo.Extension.ToLower(); _novoNomeArquivo = _novoNomeArquivo.Trim() + _arquivoExtencao; diretoriosArquivosContex.Configuration.AutoDetectChangesEnabled = false; using (var trans = diretoriosArquivosContex.Database.BeginTransaction(IsolationLevel.ReadCommitted)) { try { var _retornoQueryDiretorioArquivo = (from dirArquiInfo in diretoriosArquivosContex.CloudDiretoriosArquivos where dirArquiInfo.Dia_Nome == _antigoNomeArquivo && dirArquiInfo.Dia_CaminhoAtual == _caminhoSemArquivo + "/" && dirArquiInfo.Dia_Fk_Usu_id == _retornoQueryUser.Uac_Fk.Usu_Id select dirArquiInfo).AsNoTracking().SingleOrDefault(); var diretoriosArquivos = new NewPhotoCloudDiretoriosArquivos { Dia_Id = _retornoQueryDiretorioArquivo.Dia_Id, Dia_Fk_Usu_id = _retornoQueryUser.Uac_Fk.Usu_Id, Dia_Nome = _novoNomeArquivo, Dia_CaminhoOriginal = _retornoQueryDiretorioArquivo.Dia_CaminhoOriginal, Dia_CaminhoAtual = _retornoQueryDiretorioArquivo.Dia_CaminhoAtual, Dia_Tipo = _retornoQueryDiretorioArquivo.Dia_Tipo, Dia_DataCriacao = _retornoQueryDiretorioArquivo.Dia_DataCriacao, Dia_DataExclusao = _retornoQueryDiretorioArquivo.Dia_DataExclusao, Dia_Status = _retornoQueryDiretorioArquivo.Dia_Status }; diretoriosArquivosContex.Entry(diretoriosArquivos).State = EntityState.Modified; diretoriosArquivosContex.SaveChanges(); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao registrar a alteração do arquivo: <strong>" + _novoNomeArquivo + "</strong>"; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemArquivo + "/"; ViewBag.ArquivoRetorno = _antigoNomeArquivoSemExtencao; ViewBag.ExtencaoRetorno = _arquivoExtencao; return(PartialView()); } try { _caminhoMiniArquivoOriginal = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario + _caminhoSemArquivo + "/" + _antigoNomeArquivo); _caminhoArquivoOriginal = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario + _caminhoSemArquivo + "/" + _antigoNomeArquivo); _caminhoMiniArquivoAlterado = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario + _caminhoSemArquivo + "/" + _novoNomeArquivo); _caminhoArquivoAlterado = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario + _caminhoSemArquivo + "/" + _novoNomeArquivo); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao renomear o arquivo de <strong>" + _antigoNomeArquivo + "</strong> para <strong>" + _novoNomeArquivo + "</strong>. <br /> Caminho muito extenso."; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemArquivo + "/"; ViewBag.ArquivoRetorno = _antigoNomeArquivoSemExtencao; ViewBag.ExtencaoRetorno = _arquivoExtencao; return(PartialView()); } if (_caminhoMiniArquivoAlterado.Length >= 248) { trans.Rollback(); ViewBag.Message = "Não é possível renomear o arquivo <strong>" + _antigoNomeArquivo + "</strong> para <strong>" + _novoNomeArquivo + "</strong>. <br /> Caminho muito extenso."; ViewBag.Status = 1; ViewBag.CaminhoRetorno = _caminhoSemArquivo + "/"; ViewBag.ArquivoRetorno = _antigoNomeArquivoSemExtencao; ViewBag.ExtencaoRetorno = _arquivoExtencao; return(PartialView()); } if (System.IO.File.Exists(_caminhoArquivoAlterado)) { trans.Rollback(); ViewBag.Message = "O arquivo <strong>" + _novoNomeArquivo + "</strong> já existe na pasta."; ViewBag.Status = 1; ViewBag.CaminhoRetorno = _caminhoSemArquivo + "/"; ViewBag.ArquivoRetorno = _antigoNomeArquivoSemExtencao; ViewBag.ExtencaoRetorno = _arquivoExtencao; return(PartialView()); } try { //System.IO.Directory.Move(Server.MapPath(@"\pasta"), Server.MapPath(@"\pasta renomeada")); System.IO.File.Move(@_caminhoMiniArquivoOriginal, @_caminhoMiniArquivoAlterado); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao renomear a miniatura de <strong>" + _antigoNomeArquivo + "</strong> para <strong>" + _novoNomeArquivo + "</strong>."; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemArquivo + "/"; ViewBag.ArquivoRetorno = _antigoNomeArquivoSemExtencao; ViewBag.ExtencaoRetorno = _arquivoExtencao; return(PartialView()); } try { System.IO.File.Move(_caminhoArquivoOriginal, _caminhoArquivoAlterado); } catch (Exception e) { System.IO.File.Move(@_caminhoMiniArquivoAlterado, @_caminhoMiniArquivoOriginal); trans.Rollback(); ViewBag.Message = "Falha ao renomear o arquivo de <strong>" + _antigoNomeArquivo + "</strong> para <strong>" + _novoNomeArquivo + "</strong>."; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemArquivo + "/"; ViewBag.ArquivoRetorno = _antigoNomeArquivoSemExtencao; ViewBag.ExtencaoRetorno = _arquivoExtencao; return(PartialView()); } trans.Commit(); } ViewBag.Message = "O arquivo <strong>" + _antigoNomeArquivo + "</strong> foi renomeado para <strong>" + _novoNomeArquivo + "</strong> com sucesso."; ViewBag.Status = 0; ViewBag.CaminhoRetorno = _caminhoSemArquivo + "/"; ViewBag.ArquivoRetorno = _novoNomeArquivoSemExtencao; ViewBag.ExtencaoRetorno = _arquivoExtencao; return(PartialView()); }
public ActionResult MoverParaLixeira(FormCollection PostFolder) { string _caminhoOriginal = PostFolder["caminhoPastaArquivo"]; string _caminhoOriginalFormat = null; string _caminhoOriginalCompleto = null; string _caminhoLixeiraCompleto = null; string _caminhoOriginalMiniCompleto = null; string _preservCaminhoOriginalCompleto = null; string _preservCaminhoOriginalMiniCompleto = null; string _caminhoLixeiraMiniCompleto = null; string _caminhoRenomeadoLixeiraMini = null; string _caminhoRenomeadoLixeira = null; string _caminhoRenomeado = null; string _caminhoRenomeadoMini = null; string _caminhoDiretorioPai = PostFolder["caminhoDiretorioPai"]; string _caminhoSemPasta = null; string _nomePastaArquivo = PostFolder["nomePastaArquivo"]; string _tipoPastaArquivo = PostFolder["tipoPastaArquivo"]; string _diretorioBaseUsuario = null; string _strRetornoNomePastaArquivo = null; string _retornoMensagem = null; bool _pastaArquivoExiste = false; bool _pastaArquivoExisteLixeira = false; bool _renomeouPastaArquivoLixeira = false; int _qtdTotalPastas = 0; int _qtdTotalArquivos = 0; var arrayCaminhoOriginal = _caminhoOriginal.Split(','); var arraynomePastaArquivo = _nomePastaArquivo.Split(','); var arraytipoPastaArquivo = _tipoPastaArquivo.Split(','); UsuarioContext usuarioAcesso = new UsuarioContext(); var _retornoQueryUser = (from usuarioInfoAcesso in usuarioAcesso.CloudUsuariosAcesso where usuarioInfoAcesso.Uac_UserName == User.Identity.Name select usuarioInfoAcesso).SingleOrDefault(); _diretorioBaseUsuario = _retornoQueryUser.Uac_Fk.Usu_DiretorioBase; Encoding iso = Encoding.GetEncoding("ISO-8859-1"); diretoriosArquivosContex.Configuration.AutoDetectChangesEnabled = false; for (int i = 0; i < arrayCaminhoOriginal.Length; i++) { _caminhoOriginal = arrayCaminhoOriginal[i].Trim(); _nomePastaArquivo = arraynomePastaArquivo[i].Trim(); _tipoPastaArquivo = arraytipoPastaArquivo[i].Trim().ToUpper(); _caminhoOriginal = HttpUtility.UrlDecode(_caminhoOriginal, iso); _caminhoSemPasta = _caminhoOriginal.Substring(0, _caminhoOriginal.LastIndexOf("/")); _caminhoSemPasta = _caminhoSemPasta.Substring(0, _caminhoSemPasta.LastIndexOf("/")); _caminhoOriginalFormat = _caminhoOriginal.Substring(0, _caminhoOriginal.LastIndexOf("/")); using (var trans = diretoriosArquivosContex.Database.BeginTransaction(IsolationLevel.ReadCommitted)) { try { _caminhoOriginalCompleto = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario + _caminhoOriginalFormat); _caminhoOriginalMiniCompleto = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario + _caminhoOriginalFormat); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao configurar caminhos originais do arquivo: <strong>" + _nomePastaArquivo + "</strong>. Item não excluido."; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoDiretorioPai; ViewBag.NomePastaArquivo = _nomePastaArquivo; return(PartialView()); } try { _caminhoLixeiraCompleto = Server.MapPath("~/pho_lixeira/" + _diretorioBaseUsuario + "/" + _nomePastaArquivo); _caminhoLixeiraMiniCompleto = Server.MapPath("~/pho_lixeira_miniatura/" + _diretorioBaseUsuario + "/" + _nomePastaArquivo); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao configurar caminhos de destino do arquivo: <strong>" + _nomePastaArquivo + "</strong>. Item não excluido."; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoDiretorioPai; ViewBag.NomePastaArquivo = _nomePastaArquivo; return(PartialView()); } if (_tipoPastaArquivo.Trim().ToUpper() == "D") { _pastaArquivoExiste = Directory.Exists(_caminhoOriginalCompleto); _pastaArquivoExisteLixeira = Directory.Exists(_caminhoLixeiraCompleto); _qtdTotalPastas++; } else if (_tipoPastaArquivo.Trim().ToUpper() == "A") { _pastaArquivoExiste = System.IO.File.Exists(_caminhoOriginalCompleto); _pastaArquivoExisteLixeira = System.IO.File.Exists(_caminhoLixeiraCompleto); _qtdTotalArquivos++; } else { trans.Rollback(); ViewBag.Message = "Falha ao identificar o tipo do item: <strong>" + _nomePastaArquivo + "</strong>."; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoDiretorioPai; ViewBag.NomePastaArquivo = _nomePastaArquivo; return(PartialView()); } if (_pastaArquivoExiste) { if (_pastaArquivoExisteLixeira) { int loop = 2; try { _preservCaminhoOriginalCompleto = _caminhoOriginalCompleto; _preservCaminhoOriginalMiniCompleto = _caminhoOriginalMiniCompleto; if (_tipoPastaArquivo == "D") { _caminhoRenomeado = _caminhoOriginalCompleto + " (" + loop + ")"; _caminhoRenomeadoMini = _caminhoOriginalMiniCompleto + " (" + loop + ")"; _caminhoRenomeadoLixeiraMini = _caminhoLixeiraMiniCompleto + " (" + loop + ")"; _caminhoRenomeadoLixeira = _caminhoLixeiraCompleto + " (" + loop + ")"; while (Directory.Exists(_caminhoRenomeadoLixeira)) { loop++; _caminhoRenomeado = _caminhoOriginalCompleto + " (" + loop + ")"; _caminhoRenomeadoMini = _caminhoOriginalMiniCompleto + " (" + loop + ")"; _caminhoRenomeadoLixeira = _caminhoLixeiraCompleto + " (" + loop + ")"; _caminhoRenomeadoLixeiraMini = _caminhoLixeiraMiniCompleto + " (" + loop + ")"; } } else if (_tipoPastaArquivo == "A") { FileInfo f = new FileInfo(_caminhoOriginalCompleto); _caminhoRenomeado = _caminhoOriginalCompleto.Substring(0, _caminhoOriginalCompleto.LastIndexOf(f.Extension)) + "_(" + loop + ")" + f.Extension; _caminhoRenomeadoMini = _caminhoOriginalMiniCompleto.Substring(0, _caminhoOriginalMiniCompleto.LastIndexOf(f.Extension)) + "_(" + loop + ")" + f.Extension; _caminhoRenomeadoLixeiraMini = _caminhoLixeiraMiniCompleto.Substring(0, _caminhoLixeiraMiniCompleto.LastIndexOf(f.Extension)) + "_(" + loop + ")" + f.Extension; _caminhoRenomeadoLixeira = _caminhoLixeiraCompleto.Substring(0, _caminhoLixeiraCompleto.LastIndexOf(f.Extension)) + "_(" + loop + ")" + f.Extension; while (System.IO.File.Exists(_caminhoRenomeadoLixeira)) { loop++; _caminhoRenomeado = _caminhoOriginalCompleto.Substring(0, _caminhoOriginalCompleto.LastIndexOf(f.Extension)) + "_(" + loop + ")" + f.Extension; _caminhoRenomeadoMini = _caminhoOriginalMiniCompleto.Substring(0, _caminhoOriginalMiniCompleto.LastIndexOf(f.Extension)) + "_(" + loop + ")" + f.Extension; _caminhoRenomeadoLixeira = _caminhoLixeiraCompleto.Substring(0, _caminhoLixeiraCompleto.LastIndexOf(f.Extension)) + "_(" + loop + ")" + f.Extension; _caminhoRenomeadoLixeiraMini = _caminhoLixeiraMiniCompleto.Substring(0, _caminhoLixeiraMiniCompleto.LastIndexOf(f.Extension)) + "_(" + loop + ")" + f.Extension; } } System.IO.Directory.Move(@_caminhoOriginalCompleto, @_caminhoRenomeado); System.IO.Directory.Move(@_caminhoOriginalMiniCompleto, @_caminhoRenomeadoMini); _caminhoOriginalCompleto = _caminhoRenomeado; _caminhoOriginalMiniCompleto = _caminhoRenomeadoMini; _caminhoLixeiraCompleto = _caminhoRenomeadoLixeira; _caminhoLixeiraMiniCompleto = _caminhoRenomeadoLixeiraMini; _renomeouPastaArquivoLixeira = true; } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao tentar renomear <strong>" + _nomePastaArquivo + "</strong>"; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoDiretorioPai; ViewBag.NomePastaArquivo = _nomePastaArquivo; return(PartialView()); } } string _nomeLixeira = Path.GetFileName(_caminhoOriginalCompleto); try { var _retornoQueryDiretorioArquivo = (from dirArquiInfo in diretoriosArquivosContex.CloudDiretoriosArquivos where dirArquiInfo.Dia_Nome == _nomePastaArquivo && dirArquiInfo.Dia_CaminhoAtual == _caminhoSemPasta + "/" && dirArquiInfo.Dia_Fk_Usu_id == _retornoQueryUser.Uac_Fk.Usu_Id select dirArquiInfo).AsNoTracking().SingleOrDefault(); var diretoriosArquivos = new NewPhotoCloudDiretoriosArquivos { Dia_Id = _retornoQueryDiretorioArquivo.Dia_Id, Dia_Fk_Usu_id = _retornoQueryUser.Uac_Fk.Usu_Id, Dia_Nome = _nomePastaArquivo, Dia_NomeLixeira = _nomeLixeira, Dia_CaminhoOriginal = _retornoQueryDiretorioArquivo.Dia_CaminhoAtual, Dia_CaminhoAtual = "/Lixeira/", Dia_Tipo = _retornoQueryDiretorioArquivo.Dia_Tipo, Dia_DataCriacao = _retornoQueryDiretorioArquivo.Dia_DataCriacao, Dia_DataExclusao = DateTime.Now.ToUniversalTime(), Dia_Status = "E" }; diretoriosArquivosContex.Entry(diretoriosArquivos).State = EntityState.Modified; diretoriosArquivosContex.SaveChanges(); try { // DiretoriosArquivosContext diretoriosArquivosFilhosContext = new DiretoriosArquivosContext(); var _retornoQueryDiretorioArquivoFilhos = (from dirArquiFilhoInfo in diretoriosArquivosContex.CloudDiretoriosArquivos where dirArquiFilhoInfo.Dia_CaminhoAtual.StartsWith(_caminhoOriginal) && dirArquiFilhoInfo.Dia_Fk_Usu_id == _retornoQueryUser.Uac_Fk.Usu_Id select dirArquiFilhoInfo).AsNoTracking(); // List<NewPhotoCloudDiretoriosArquivos> _listArqDirUpdate = new List<NewPhotoCloudDiretoriosArquivos>(); foreach (var item in _retornoQueryDiretorioArquivoFilhos) { var diretoriosArquivosFilhos = new NewPhotoCloudDiretoriosArquivos { Dia_Id = item.Dia_Id, Dia_Fk_Usu_id = _retornoQueryUser.Uac_Fk.Usu_Id, Dia_Nome = item.Dia_Nome, Dia_CaminhoOriginal = item.Dia_CaminhoAtual, Dia_CaminhoAtual = "/Lixeira/", // Dia_CaminhoAtual = _caminhoSemPasta + "/" + _novoNomePasta + "/", Dia_Tipo = item.Dia_Tipo, Dia_DataCriacao = item.Dia_DataCriacao, Dia_DataExclusao = DateTime.Now.ToUniversalTime(), Dia_Status = "E" }; diretoriosArquivosContex.Entry(diretoriosArquivosFilhos).State = EntityState.Modified; } diretoriosArquivosContex.ChangeTracker.DetectChanges(); diretoriosArquivosContex.SaveChanges(); } catch (Exception e) { if (_renomeouPastaArquivoLixeira) { System.IO.Directory.Move(@_caminhoRenomeado, @_preservCaminhoOriginalCompleto); System.IO.Directory.Move(@_caminhoRenomeadoMini, @_preservCaminhoOriginalMiniCompleto); } trans.Rollback(); ViewBag.Message = "Falha ao registrar a alteração dos conteúdos da pasta: <strong>" + _nomePastaArquivo + "</strong>"; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _nomePastaArquivo; return(PartialView()); } } catch (Exception e) { if (_renomeouPastaArquivoLixeira) { System.IO.Directory.Move(@_caminhoRenomeado, @_preservCaminhoOriginalCompleto); System.IO.Directory.Move(@_caminhoRenomeadoMini, @_preservCaminhoOriginalMiniCompleto); } trans.Rollback(); ViewBag.Message = "Falha ao registrar a alteração da pasta: <strong>" + _nomePastaArquivo + "</strong>"; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoSemPasta; ViewBag.PastaRetorno = _nomePastaArquivo; return(PartialView()); } try { System.IO.Directory.Move(_caminhoOriginalMiniCompleto, _caminhoLixeiraMiniCompleto); } catch (Exception e) { trans.Rollback(); ViewBag.Message = "Falha ao tentar excluir a configuração de miniaturas para: <strong>" + _nomePastaArquivo + "</strong>"; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoDiretorioPai; ViewBag.NomePastaArquivo = _nomePastaArquivo; return(PartialView()); } try { System.IO.Directory.Move(_caminhoOriginalCompleto, _caminhoLixeiraCompleto); } catch (Exception e) { System.IO.Directory.Move(@_caminhoLixeiraMiniCompleto, @_preservCaminhoOriginalMiniCompleto); trans.Rollback(); ViewBag.Message = "Falha ao tentar excluir: <strong>" + _nomePastaArquivo + "</strong>"; ViewBag.Status = -1; ViewBag.CaminhoRetorno = _caminhoDiretorioPai; ViewBag.NomePastaArquivo = _nomePastaArquivo; return(PartialView()); } } else { trans.Rollback(); ViewBag.Message = "<strong>" + _nomePastaArquivo + "</strong> não foi localizada nesse diretório."; ViewBag.Status = 1; ViewBag.CaminhoRetorno = _caminhoDiretorioPai; ViewBag.NomePastaArquivo = _nomePastaArquivo; return(PartialView()); } trans.Commit(); } } //for if ((_qtdTotalPastas + _qtdTotalArquivos) == 1) { if (_qtdTotalPastas == 1) { _strRetornoNomePastaArquivo = "Pasta <strong>" + _nomePastaArquivo + "</strong>"; _retornoMensagem = " excluida"; } else if (_qtdTotalArquivos == 1) { _strRetornoNomePastaArquivo = "Arquivo <strong>" + _nomePastaArquivo + "</strong>"; _retornoMensagem = " excluido"; } } else { if (_qtdTotalPastas >= 1) { if (_qtdTotalPastas == 1) { _strRetornoNomePastaArquivo = "<strong>" + _qtdTotalPastas + " Pasta </strong>"; } else { _strRetornoNomePastaArquivo = "<strong>" + _qtdTotalPastas + " Pastas </strong>"; } _retornoMensagem = " excluidas"; } if (_qtdTotalPastas >= 1 && _qtdTotalArquivos >= 1) { _strRetornoNomePastaArquivo = _strRetornoNomePastaArquivo + " e "; } if ((_qtdTotalArquivos) >= 1) { if (_qtdTotalArquivos == 1) { _strRetornoNomePastaArquivo = _strRetornoNomePastaArquivo + "<strong>" + _qtdTotalArquivos + " Arquivo </strong>"; } else { _strRetornoNomePastaArquivo = _strRetornoNomePastaArquivo + "<strong>" + _qtdTotalArquivos + " Arquivos </strong>"; } _retornoMensagem = " excluidos"; } } ViewBag.Message = _strRetornoNomePastaArquivo + _retornoMensagem + " com sucesso."; ViewBag.Status = 0; ViewBag.CaminhoRetorno = _caminhoDiretorioPai; ViewBag.NomePastaArquivo = _nomePastaArquivo; return(PartialView()); }
public ActionResult MoverPastaArquivo(MoverPastaArquivoOrigem moverPastaArquivo) { string _diretorioBaseUsuario = ""; string _caminhoOrigem = ""; string _caminhoOrigemMiniatura = ""; string _nomePastaArquivoOrigem = ""; string _caminhoDestino = ""; string _caminhoDestinoMiniatura = ""; string _caminhoSemPasta = ""; string _codigoPastaArquivo = ""; string _caminhoDestinoSubPastas = ""; bool _pastaArquivoExisteOrigem = false; bool _pastaArquivoExisteDestino = false; var _qtdPastaMovido = 0; var _qtdArquivoMovido = 0; ViewBag.Status = 0; // MoverPastaArquivoRetornoSucesso _jsonRecuperaListaPastasArquivosMovidos; // List<MoverPastaArquivoRetornoSucesso> RetornoPastasArquivosMovidos = new List<MoverPastaArquivoRetornoSucesso>(); MoverPastaArquivoDesfazerMover RetornoPastasArquivosMovidos = new MoverPastaArquivoDesfazerMover(); //var arrJsJsonMoverPara = new { // "caminhoRetorno": moverPastaArquivo.CaminhoRetorno, // "caminhoPastaPai":moverPastaArquivo.CaminhoPastaPai, // "estadoPasta": moverPastaArquivo.EstadoPasta, // "caminhoAtualDestino": moverPastaArquivo.CaminhoAtualDestino, // "listaMoverPastasArquivos": [ // { "nomePastaArquivo": moverPastaArquivo.ListaMoverPastasArquivos., "caminhoOriginal": moverPastaArquivo.ListaMoverPastasArquivos., "tipoArquivoPasta": moverPastaArquivo.ListaMoverPastasArquivos. } // ] //}; ConvertMD5 ConverterMD5 = new ConvertMD5(); UsuarioContext usuarioAcesso = new UsuarioContext(); var _retornoQueryUser = (from usuarioInfoAcesso in usuarioAcesso.CloudUsuariosAcesso where usuarioInfoAcesso.Uac_UserName == User.Identity.Name select usuarioInfoAcesso).SingleOrDefault(); _diretorioBaseUsuario = _retornoQueryUser.Uac_Fk.Usu_DiretorioBase; var _cookieItensMovidos = HttpContext.Request.Cookies[ConverterMD5.getMD5Hash("ListaPastasArquivosMovidos")]; if (_cookieItensMovidos != null) { RetornoPastasArquivosMovidos = JsonConvert.DeserializeObject <MoverPastaArquivoDesfazerMover>(HttpContext.Request.Cookies[ConverterMD5.getMD5Hash("ListaPastasArquivosMovidos")]["PasArqMov"]); } ViewBag.DirBase = _diretorioBaseUsuario; try { _caminhoDestino = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario + "/" + moverPastaArquivo.CaminhoAtualDestino); _caminhoDestinoMiniatura = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario + "/" + moverPastaArquivo.CaminhoAtualDestino); } catch (Exception e) { ViewBag.Message = "Falha ao configurar caminhos de destino. Nenhum item foi movido."; ViewBag.Status = -1; return(PartialView(moverPastaArquivo)); } /// _caminhoInicialMiniatura = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario); // _caminhoInicial = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario); List <MoverPastaArquivoDesfazerMoverLista> ListaPastaArquivoMovido = new List <MoverPastaArquivoDesfazerMoverLista>(); List <MoverPastaArquivoNomeMovidos> ListaNomePastaArquivoMovido = new List <MoverPastaArquivoNomeMovidos>(); foreach (var itemPastaArquivo in moverPastaArquivo.ListaMoverPastasArquivos) { using (var trans = diretoriosArquivosContex.Database.BeginTransaction(IsolationLevel.ReadCommitted)) { _caminhoSemPasta = itemPastaArquivo.CaminhoOriginal.Substring(0, itemPastaArquivo.CaminhoOriginal.LastIndexOf("/")); if (itemPastaArquivo.TipoArquivoPasta == 'D') { _caminhoSemPasta = _caminhoSemPasta.Substring(0, _caminhoSemPasta.LastIndexOf("/")); } try { _caminhoOrigem = Server.MapPath("~/pho_fotos/" + _diretorioBaseUsuario + itemPastaArquivo.CaminhoOriginal); _caminhoOrigemMiniatura = Server.MapPath("~/pho_fotos_miniatura/" + _diretorioBaseUsuario + itemPastaArquivo.CaminhoOriginal); if (itemPastaArquivo.TipoArquivoPasta == 'D') { _nomePastaArquivoOrigem = Path.GetFileName(itemPastaArquivo.CaminhoOriginal.Substring(0, itemPastaArquivo.CaminhoOriginal.LastIndexOf("/"))); } else if (itemPastaArquivo.TipoArquivoPasta == 'A') { _nomePastaArquivoOrigem = Path.GetFileName(itemPastaArquivo.CaminhoOriginal); } //throw new Exception(); } catch (Exception e) { trans.Rollback(); if (itemPastaArquivo.TipoArquivoPasta == 'D') { itemPastaArquivo.MensagemsRetorno = "Falha ao configurar caminhos de origem da pasta: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>. Pasta não movida."; } else if (itemPastaArquivo.TipoArquivoPasta == 'A') { itemPastaArquivo.MensagemsRetorno = "Falha ao configurar caminhos de origem do arquivo: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>. Arquivo não movido."; } itemPastaArquivo.StatusRetorno = -1; continue; } if (itemPastaArquivo.TipoArquivoPasta == 'D') { _pastaArquivoExisteOrigem = Directory.Exists(_caminhoOrigem); _pastaArquivoExisteDestino = Directory.Exists(_caminhoDestino + _nomePastaArquivoOrigem); } else if (itemPastaArquivo.TipoArquivoPasta == 'A') { _pastaArquivoExisteOrigem = System.IO.File.Exists(_caminhoOrigem); _pastaArquivoExisteDestino = System.IO.File.Exists(_caminhoDestino + _nomePastaArquivoOrigem); } else { itemPastaArquivo.MensagemsRetorno = "Falha ao identificar o tipo do item: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>."; itemPastaArquivo.StatusRetorno = -1; continue; } if (_pastaArquivoExisteOrigem) { if (_pastaArquivoExisteDestino) { trans.Rollback(); if (itemPastaArquivo.TipoArquivoPasta == 'D') { itemPastaArquivo.MensagemsRetorno = "Já existe uma pasta com o nome <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong> neste local."; itemPastaArquivo.StatusRetorno = 1; } else if (itemPastaArquivo.TipoArquivoPasta == 'A') { itemPastaArquivo.MensagemsRetorno = "Já existe um arquivo com o nome <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong> neste local."; itemPastaArquivo.StatusRetorno = 1; } continue; } else { try { var _retornoQueryDiretorioArquivo = (from dirArquiInfo in diretoriosArquivosContex.CloudDiretoriosArquivos where dirArquiInfo.Dia_Nome == itemPastaArquivo.NomePastaArquivo && dirArquiInfo.Dia_CaminhoAtual == _caminhoSemPasta + "/" && dirArquiInfo.Dia_Fk_Usu_id == _retornoQueryUser.Uac_Fk.Usu_Id select dirArquiInfo).AsNoTracking().SingleOrDefault(); _codigoPastaArquivo = CryptographyRepository.Criptografar(_retornoQueryDiretorioArquivo.Dia_Id.ToString()); // _codigoPastaArquivo = _retornoQueryDiretorioArquivo.Dia_Id.ToString(); var diretoriosArquivos = new NewPhotoCloudDiretoriosArquivos { Dia_Id = _retornoQueryDiretorioArquivo.Dia_Id, Dia_Fk_Usu_id = _retornoQueryUser.Uac_Fk.Usu_Id, Dia_Nome = _retornoQueryDiretorioArquivo.Dia_Nome, Dia_CaminhoOriginal = _retornoQueryDiretorioArquivo.Dia_CaminhoAtual, Dia_CaminhoAtual = moverPastaArquivo.CaminhoAtualDestino, Dia_Tipo = _retornoQueryDiretorioArquivo.Dia_Tipo, Dia_DataCriacao = _retornoQueryDiretorioArquivo.Dia_DataCriacao, Dia_Status = _retornoQueryDiretorioArquivo.Dia_Status }; diretoriosArquivosContex.Entry(diretoriosArquivos).State = EntityState.Modified; diretoriosArquivosContex.SaveChanges(); try { var _retornoQueryDiretorioArquivoFilhos = (from dirArquiFilhoInfo in diretoriosArquivosContex.CloudDiretoriosArquivos where dirArquiFilhoInfo.Dia_CaminhoAtual.StartsWith(itemPastaArquivo.CaminhoOriginal) && dirArquiFilhoInfo.Dia_Fk_Usu_id == _retornoQueryUser.Uac_Fk.Usu_Id select dirArquiFilhoInfo).AsNoTracking(); foreach (var item in _retornoQueryDiretorioArquivoFilhos) { _caminhoDestinoSubPastas = item.Dia_CaminhoAtual; _caminhoDestinoSubPastas = _caminhoDestinoSubPastas.Replace(itemPastaArquivo.CaminhoOriginal, moverPastaArquivo.CaminhoAtualDestino + itemPastaArquivo.NomePastaArquivo + "/"); var diretoriosArquivosFilhos = new NewPhotoCloudDiretoriosArquivos { Dia_Id = item.Dia_Id, Dia_Fk_Usu_id = _retornoQueryUser.Uac_Fk.Usu_Id, Dia_Nome = item.Dia_Nome, Dia_CaminhoOriginal = item.Dia_CaminhoAtual, Dia_CaminhoAtual = _caminhoDestinoSubPastas, Dia_Tipo = item.Dia_Tipo, Dia_DataCriacao = item.Dia_DataCriacao, Dia_Status = item.Dia_Status }; diretoriosArquivosContex.Entry(diretoriosArquivosFilhos).State = EntityState.Modified; } diretoriosArquivosContex.ChangeTracker.DetectChanges(); diretoriosArquivosContex.SaveChanges(); } catch (Exception e) { trans.Rollback(); if (itemPastaArquivo.TipoArquivoPasta == 'D') { itemPastaArquivo.MensagemsRetorno = "Falha ao registrar a alteração da pasta contida na pasta: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>. Pasta não movida."; } else if (itemPastaArquivo.TipoArquivoPasta == 'A') { itemPastaArquivo.MensagemsRetorno = "Falha ao registrar a alteração do arquivo contido na pasta: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>. Arquivo não movido."; } itemPastaArquivo.StatusRetorno = -1; continue; } } catch (Exception e) { trans.Rollback(); if (itemPastaArquivo.TipoArquivoPasta == 'D') { itemPastaArquivo.MensagemsRetorno = "Falha ao registrar a alteração da pasta: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>. Pasta não movida."; } else if (itemPastaArquivo.TipoArquivoPasta == 'A') { itemPastaArquivo.MensagemsRetorno = "Falha ao registrar a alteração do arquivo: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>. Arquivo não movido."; } itemPastaArquivo.StatusRetorno = -1; continue; } try { System.IO.Directory.Move(_caminhoOrigemMiniatura, _caminhoDestinoMiniatura + _nomePastaArquivoOrigem); } catch (Exception e) { trans.Rollback(); if (itemPastaArquivo.TipoArquivoPasta == 'D') { itemPastaArquivo.MensagemsRetorno = "Falha ao tentar mover a configuração de miniaturas da pasta: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>. Pasta não movida."; } else if (itemPastaArquivo.TipoArquivoPasta == 'A') { itemPastaArquivo.MensagemsRetorno = "Falha ao tentar mover a configuração de miniaturas do arquivo: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>. Arquivo não movido."; } itemPastaArquivo.StatusRetorno = -1; continue; } try { System.IO.Directory.Move(_caminhoOrigem, _caminhoDestino + _nomePastaArquivoOrigem); } catch (Exception e) { System.IO.Directory.Move(_caminhoDestinoMiniatura + _nomePastaArquivoOrigem, _caminhoOrigemMiniatura); trans.Rollback(); if (itemPastaArquivo.TipoArquivoPasta == 'D') { itemPastaArquivo.MensagemsRetorno = "Falha ao tentar mover a pasta: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>. Pasta não movida."; } else if (itemPastaArquivo.TipoArquivoPasta == 'A') { itemPastaArquivo.MensagemsRetorno = "Falha ao tentar mover o arquivo: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>. Arquivo não movido."; } itemPastaArquivo.StatusRetorno = -1; continue; } if (itemPastaArquivo.TipoArquivoPasta == 'D') { _qtdPastaMovido++; } else if (itemPastaArquivo.TipoArquivoPasta == 'A') { _qtdArquivoMovido++; } // itemPastaArquivo.CodigoPastaArquivo = _codigoPastaArquivo; MoverPastaArquivoDesfazerMoverLista PastaArquivoMovido = new MoverPastaArquivoDesfazerMoverLista(); MoverPastaArquivoNomeMovidos NomePastaArquivoMovido = new MoverPastaArquivoNomeMovidos(); if (_cookieItensMovidos != null) { foreach (var itemJaMovido in RetornoPastasArquivosMovidos.ListPasArqMov) { if (itemJaMovido.CodPasArq == _codigoPastaArquivo) { RetornoPastasArquivosMovidos.ListPasArqMov.Remove(itemJaMovido); break; } Console.Write(itemJaMovido.CodPasArq + " == "); Console.Write(_codigoPastaArquivo); } } PastaArquivoMovido.CodPasArq = _codigoPastaArquivo; NomePastaArquivoMovido.NomePastaArquivo = itemPastaArquivo.NomePastaArquivo; NomePastaArquivoMovido.CaminhoOriginal = itemPastaArquivo.CaminhoOriginal; NomePastaArquivoMovido.TipoArquivoPasta = itemPastaArquivo.TipoArquivoPasta; // PastaArquivoMovido.NomePastaArquivo = itemPastaArquivo.NomePastaArquivo; // PastaArquivoMovido.TipoArquivoPasta = itemPastaArquivo.TipoArquivoPasta; // PastaArquivoMovido.DataMoverArquivoPasta = DateTime.Now.ToUniversalTime(); // RetornoPastasArquivosMovidos.ListaPastaArquivoMovidos.Add(PastaArquivoMovido); ListaPastaArquivoMovido.Add(PastaArquivoMovido); ListaNomePastaArquivoMovido.Add(NomePastaArquivoMovido); trans.Commit(); } } else { if (itemPastaArquivo.TipoArquivoPasta == 'D') { itemPastaArquivo.MensagemsRetorno = "A pasta <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong> não foi localizada. Ela pode ter sido removida ou renomeada."; itemPastaArquivo.StatusRetorno = -1; } else if (itemPastaArquivo.TipoArquivoPasta == 'A') { itemPastaArquivo.MensagemsRetorno = "O arquivo <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong> não foi localizado. Ele pode ter sido removido ou renomeado."; itemPastaArquivo.StatusRetorno = -1; } continue; } //try //{ // var diretoriosArquivos = new NewPhotoCloudDiretoriosArquivos // { // Dia_Nome = _novaPasta, // Dia_CaminhoAtual = _caminhoNovaPasta, // Dia_DataCriacao = DateTime.Now.ToUniversalTime(), // Dia_Tipo = "D", // Dia_Status = "A", // Dia_Fk_Usu_id = _usu_id // }; // diretoriosArquivosContex.CloudDiretoriosArquivos.Add(diretoriosArquivos); // // s.Entry(diretoriosArquivos).State = EntityState.Modified; // diretoriosArquivosContex.SaveChanges(); //} //catch (Exception e) //{ // trans.Rollback(); // if (itemPastaArquivo.TipoArquivoPasta == 'D') // { // itemPastaArquivo.MensagemsRetorno = "Falha ao registrar a pasta: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>"; // } // else if (itemPastaArquivo.TipoArquivoPasta == 'A') { // itemPastaArquivo.MensagemsRetorno = "Falha ao registrar o arquivo: <strong>" + itemPastaArquivo.NomePastaArquivo + "</strong>"; // } // itemPastaArquivo.StatusRetorno = -1; //} //trans.Commit(); } } moverPastaArquivo.QtdPastaMovida = _qtdPastaMovido; moverPastaArquivo.QtdArquivoMovido = _qtdArquivoMovido; if (_qtdPastaMovido == 0 && _qtdArquivoMovido == 0) { ViewBag.Message = "Nenhum item selecionado foi movido."; ViewBag.Status = 1; } // string teste = moverPastaArquivo.CaminhoPastaPai; if (moverPastaArquivo.EstadoPasta == "aberta") { //string _caminhoRetornoAberta = moverPastaArquivo.CaminhoRetorno.Substring(0, moverPastaArquivo.CaminhoRetorno.LastIndexOf("/")); //_caminhoRetornoAberta = _caminhoRetornoAberta.Substring(0, _caminhoRetornoAberta.LastIndexOf("/")); //ViewBag.CaminhoRetorno = _caminhoRetornoAberta +"/"; ViewBag.CaminhoRetorno = moverPastaArquivo.CaminhoPastaPai; } else { ViewBag.CaminhoRetorno = moverPastaArquivo.CaminhoRetorno; } if (_cookieItensMovidos != null) { foreach (var itemMovido in RetornoPastasArquivosMovidos.ListPasArqMov) { MoverPastaArquivoDesfazerMoverLista PastaArquivoMovido = new MoverPastaArquivoDesfazerMoverLista(); PastaArquivoMovido.CodPasArq = itemMovido.CodPasArq; ListaPastaArquivoMovido.Add(PastaArquivoMovido); } } RetornoPastasArquivosMovidos.DtMovArqPas = DateTime.Now.ToUniversalTime(); RetornoPastasArquivosMovidos.ListPasArqMov = ListaPastaArquivoMovido; // string _jsonListaPastasArquivosMovidos = new JavaScriptSerializer().Serialize(Json.Encode(RetornoPastasArquivosMovidos)); string _jsonListaPastasArquivosMovidos = JsonConvert.SerializeObject(RetornoPastasArquivosMovidos); string _jsonListaNomePastasArquivosMovidos = "{\"ListPasArqMov\":" + JsonConvert.SerializeObject(ListaNomePastaArquivoMovido) + "}"; HttpCookie CookieListaPastaArquivoMovidos = new HttpCookie(ConverterMD5.getMD5Hash("ListaPastasArquivosMovidos")); //6DCF4293C1633A918B283205FB5A67E5 CookieListaPastaArquivoMovidos.Values.Add("PasArqMov", _jsonListaPastasArquivosMovidos); CookieListaPastaArquivoMovidos.Expires = DateTime.Now.AddMinutes(5); System.Web.HttpContext.Current.Response.Cookies.Add(CookieListaPastaArquivoMovidos); // Console.WriteLine(moverPastaArquivo); ViewBag.JsonMovidos = _jsonListaNomePastasArquivosMovidos; return(PartialView(moverPastaArquivo)); }