public static void ProcesaArchivoPendiente(Object datos /*ExpedienteDigitalProcesamientoArchivo archivoPendiente*/) { ExpedienteDigitalProcesamientoArchivo archivoPendiente = (ExpedienteDigitalProcesamientoArchivo)datos; if (archivoPendiente.ArchivoRutaCompletaOrigen.Contains("*")) { string directorio = archivoPendiente.ArchivoRutaCompletaOrigen.Substring(0, archivoPendiente.ArchivoRutaCompletaOrigen.LastIndexOf(@"\")); if (Directory.Exists(directorio)) { string busqueda = archivoPendiente.ArchivoRutaCompletaOrigen.Substring(archivoPendiente.ArchivoRutaCompletaOrigen.LastIndexOf(@"\") + 1); var archivosEncontrados = Directory.GetFiles(directorio, busqueda); if (archivosEncontrados.Length > 0) { foreach (var archivoEncontrado in archivosEncontrados) { ProcesaArchivo(archivoPendiente, archivoEncontrado /*, db*/); } } else { archivoPendiente.Error = DateTime.Now; archivoPendiente.ErrorObservaciones = "FALTA ARCHIVO(S) EN ORIGEN"; archivoPendiente.ErrorIdExpedienteDigitalEvento = (int)Modelos.Enumerados.ExpedienteDigitalEventoBitacora.FALTA_ARCHIVO_ORIGEN; } } else { archivoPendiente.Error = DateTime.Now; archivoPendiente.ErrorObservaciones = "DIRECTORIO RAIZ NO EXISTE"; archivoPendiente.ErrorIdExpedienteDigitalEvento = (int)Modelos.Enumerados.ExpedienteDigitalEventoBitacora.RUTA_RAIZ_ORIGEN_NO_EXISTENTE; } } else { ProcesaArchivo(archivoPendiente, null /*, db*/); } }
public static void ProcesaArchivo(ExpedienteDigitalProcesamientoArchivo archivoPendiente, string rutaOrigenAlterna /*, CLLASausageContext db*/) { if (string.IsNullOrEmpty(rutaOrigenAlterna)) { rutaOrigenAlterna = archivoPendiente.ArchivoRutaCompletaOrigen; } if (File.Exists(rutaOrigenAlterna)) { //Crear directorio destino si no existe try { Directory.CreateDirectory(archivoPendiente.ArchivoRutaCompletaDestino.Substring(0, archivoPendiente.ArchivoRutaCompletaDestino.LastIndexOf(@"\"))); } catch (Exception ex) { archivoPendiente.Error = DateTime.Now; archivoPendiente.ErrorObservaciones = Excepciones.ObtenerMensajesExcepcionEnCadenaSencilla(ex); archivoPendiente.ErrorIdExpedienteDigitalEvento = (int)Modelos.Enumerados.ExpedienteDigitalEventoBitacora.NO_ES_POSIBLE_CREAR_DIRECTORIO_DESTINO; } if (!File.Exists(archivoPendiente.ArchivoRutaCompletaDestino)) { File.Copy(rutaOrigenAlterna, archivoPendiente.ArchivoRutaCompletaDestino); } archivoPendiente.Procesado = DateTime.Now; } else { archivoPendiente.Error = DateTime.Now; archivoPendiente.ErrorObservaciones = "FALTA ARCHIVO EN ORIGEN"; archivoPendiente.ErrorIdExpedienteDigitalEvento = (int)Modelos.Enumerados.ExpedienteDigitalEventoBitacora.FALTA_ARCHIVO_ORIGEN; } }