/// <summary> /// Dado un listado de archivos devuelve un listado de carpetas mas repetidas ordenadas por cantidad /// </summary> private IList <CarpetasRepetidas> ListarCarpetasConMasRepetidos(IList <Archivo> archivos) { var carpetas = ArchivoHelper.ObtenerCarpetas(archivos); var carpetasRepetidas = new List <CarpetasRepetidas>(); foreach (var carpeta in carpetas) { carpetasRepetidas.Add(new CarpetasRepetidas() { Ruta = carpeta }); } foreach (var archivo in Vista.ArchivosRepetidos) { foreach (var carpeta in carpetasRepetidas) { if (ArchivoHelper.ObtenerRutaArchivo(archivo).Equals(carpeta.Ruta)) { carpeta.Cantidad++; } } } return(carpetasRepetidas.OrderByDescending(c => c.Cantidad).ToList()); }
private void BtnRecargar_Click(object sender, EventArgs e) { var archivos = ArchivoHelper.RecuperarLista(treeViewRepetidos); var carpetasRepetidas = ListarCarpetasConMasRepetidos(archivos); ActualizarListadoCarpetasRepetidas(carpetasRepetidas); }
public ActionResult GuardaDocumento() { var helper = new ArchivoHelper(); try { var id = Convert.ToInt32(System.Web.HttpContext.Current.Request.Form["id"].ToString()); var tipo = Convert.ToInt32(System.Web.HttpContext.Current.Request.Form["tipo"].ToString()); string sPath = ""; string temppath = "~/Documentos/" + id.ToString() + "/"; sPath = System.Web.Hosting.HostingEnvironment.MapPath(temppath); System.Web.HttpFileCollection hfc = System.Web.HttpContext.Current.Request.Files; sPath = System.Web.Hosting.HostingEnvironment.MapPath(temppath); System.Web.HttpPostedFile hpf = hfc[0]; var indicie = hpf.FileName.Split('.').Length - 1; var ext = "." + hpf.FileName.Split('.')[indicie]; if (!helper.ExtensionValida(ext.Substring(1, ext.Length - 1))) { return(Json(new { Resultado = false, Error = "El tipo de archivo no es admitido." })); } if (!Directory.Exists(sPath)) { Directory.CreateDirectory(sPath); } var _nombrearchivo = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + DateTime.Now.Millisecond.ToString() + ext; hpf.SaveAs(sPath + hpf.FileName.Replace(ext, _nombrearchivo)); DocumentosClienteRepository dac = new DocumentosClienteRepository(); ExDocumentos doc = new ExDocumentos(); doc.usuario_creacion = "admin"; doc.usuario_modificacion = "admin"; //doc.ruta_local = sPath + hpf.FileName.Replace(ext, _nombrearchivo); doc.ruta_local = @"\Documentos\" + id.ToString() + "\\" + hpf.FileName.Replace(ext, _nombrearchivo); doc.id_precliente = id; doc.id_documento = tipo; doc.fecha_modificacion = DateTime.Now; doc.fecha_creacion = DateTime.Now; doc.activo = true; dac.guardaDocumento(doc); return(Json(doc.ruta_local)); } catch (Exception ex) { Response.StatusCode = (int)HttpStatusCode.InternalServerError; return(Json(new { Resultado = false, Error = ex.Message })); } }
/// <summary> /// Marca como seleccinados los archivos que coincidan con la ruta /// Devuelve la cantidad de registros afectados /// </summary> private int SeleccionarPorRuta(string ruta) { int contarAfectados = 0; for (int i = 0; i < treeViewRepetidos.Nodes.Count; i++) { if ((Archivo)treeViewRepetidos.Nodes[i].Tag == null) { continue; } var archivo = (Archivo)treeViewRepetidos.Nodes[i].Tag; if (ArchivoHelper.ObtenerRutaArchivo(archivo).Equals(ruta)) { treeViewRepetidos.Nodes[i].Checked = true; contarAfectados++; } } return(contarAfectados); }
public static void BuscarRedundancia(string ruta) { Interlocked.Exchange(ref Vista.Procesando, (int)Estado.Habilitado); try { // Obtengo archivos de la ruta Vista.Mensaje = "Obteniendo archivos"; var archivos = ArchivoHelper.ObtenerArchivos(ruta); Vista.Mensaje = "Comparando archivos"; VariablesGlobales.faseActual = Fase.DatosObtenidos; Interlocked.Exchange(ref Vista.FaseActual, (int)Fase.DatosObtenidos); // Comparo todos los archivos de origen contra los de destino var repetidos = ArchivoHelper.CompararRedundancia(archivos, archivos); Vista.Mensaje = "Comparando archivos"; VariablesGlobales.faseActual = Fase.DatosComparados; Interlocked.Exchange(ref Vista.FaseActual, (int)Fase.DatosComparados); // Paso los datos a la vista Interlocked.Exchange(ref Vista.ArchivosRepetidos, repetidos); Vista.Mensaje = "Finalizado"; VariablesGlobales.faseActual = Fase.Finalizado; Interlocked.Exchange(ref Vista.FaseActual, (int)Fase.Finalizado); } catch (Exception ex) { Vista.ErrorSummary.AppendLine($"- {ex}"); Interlocked.Increment(ref Vista.Errores); } Thread.Sleep(200); Interlocked.Exchange(ref Vista.Procesando, (int)Estado.Deshabilitado); }
public static void BuscarEntreCarpetas(string ruta1, string ruta2) { Interlocked.Exchange(ref Vista.Procesando, (int)Estado.Habilitado); try { //Obtengo archivos de la ruta 1 var archivos1 = ArchivoHelper.ObtenerArchivos(ruta1); Vista.Mensaje = "Datos de ruta1 obtenidos"; //Obtengo archivos de la ruta 2 var archivos2 = ArchivoHelper.ObtenerArchivos(ruta2); Vista.Mensaje = "Datos de ruta2 obtenidos"; Interlocked.Exchange(ref Vista.FaseActual, (int)Fase.DatosObtenidos); //Comparo todos los archivos de origen contra los de destino var repetidos = ArchivoHelper.CompararRedundancia(archivos1, archivos2); Vista.Mensaje = "Datos comparados"; Interlocked.Exchange(ref Vista.FaseActual, (int)Fase.DatosComparados); Interlocked.Exchange(ref Vista.ArchivosRepetidos, repetidos); Vista.Mensaje = "Finalizado"; Interlocked.Exchange(ref Vista.FaseActual, (int)Fase.Finalizado); } catch (Exception ex) { Vista.ErrorSummary.AppendLine($"- {ex}"); Interlocked.Increment(ref Vista.Errores); } Thread.Sleep(200); Interlocked.Exchange(ref Vista.Procesando, (int)Estado.Deshabilitado); }
public ArchivoController() { archivoHelper = new ArchivoHelper(DeleteURL, DeleteType, StorageRoot, UrlBase, tempPath, serverMapPath); }