示例#1
0
        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*/);
            }
        }
示例#2
0
        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;
            }
        }