예제 #1
0
        public bool AlmacenarArchivo(Archivo[] archivo, Configuracion configuracion, Action <Archivo> alCompletar = null,
                                     Action <Archivo, Exception> errorComunicacion = null, Action <Archivo, Exception> errorGeneral = null)
        {
            var medioEnvio             = ACRepositorio.InstanciarCanal(configuracion);
            RespuestaRetorno respuesta = new RespuestaRetorno();

            bool firma = false;

            if (configuracion.RequiereFirma)
            {
                var firmaRespuesta = ValidarFirmaArchivo(configuracion);
                firma = firmaRespuesta.EsValido;
            }

            medioEnvio.AlmacenajeCompletado = alCompletar;
            medioEnvio.ErrorComunicacion    = errorComunicacion;
            medioEnvio.ErrorGeneral         = errorGeneral;

            var respue = medioEnvio.SalvarArchivo(archivo, configuracion);

            respuesta.EsValido = respue.EsValido;
            respuesta.Mensaje  = respue.Mensaje;

            return(respuesta.EsValido);
        }
예제 #2
0
        protected RespuestaRetorno <Archivo> ObtenerArchivo(Configuracion configuracion, Archivo archivo)
        {
            Archivo nuevoArchivo     = archivo;
            var     respuestaArchivo = new RespuestaRetorno <Archivo>()
            {
                Objeto = new Archivo()
            };

            try
            {
                if (File.Exists(archivo.CodArchivoDatos))
                {
                    nuevoArchivo.Bytes = File.ReadAllBytes(archivo.CodArchivoDatos);
                    string contenido = System.Text.Encoding.UTF8.GetString(nuevoArchivo.Bytes);
                    nuevoArchivo.Contenido    = contenido;
                    respuestaArchivo.EsValido = true;
                    respuestaArchivo.Objeto   = nuevoArchivo;
                }
            }
            catch (Exception ex)
            {
                ErrorGeneral?.Invoke(nuevoArchivo, ex);
                respuestaArchivo.EsValido  = false;
                respuestaArchivo.Excepcion = ex;
            }

            return(respuestaArchivo);
        }
예제 #3
0
        public RespuestaRetorno ValidarFirmaArchivo(Configuracion configuracion)
        {
            RespuestaRetorno respuesta = new RespuestaRetorno();
            var medioEnvio             = ACRepositorio.InstanciarCanal(configuracion);

            respuesta = medioEnvio.ValidarFirma(configuracion);

            return(respuesta);
        }
예제 #4
0
        public override RespuestaRetorno <List <Archivo> > ObtenerArchivo(string[] codsArchivosDatos, Configuracion configuracion)
        {
            List <Archivo> listaArchivos = new List <Archivo>();
            var            respuesta     = new RespuestaRetorno <List <Archivo> >()
            {
                Objeto = new List <Archivo>()
            };

            Archivo            archivo = null;
            Action <Exception> error   = (ex) => {
                respuesta.Excepcion = ex;
                respuesta.EsValido  = false;
                ex.Message.EntradaBitacora(TipoEvento.bitacora_TipoEvento_Error, ServicioPEL.REP);
            };

            try
            {
                var clienteREP             = new PEL.NBS.AccesoCore.IEntidadREP.ClienteREP();
                configuracionWeb configura = ObtenerConfiguracionWeb(configuracion);
                foreach (string codArchivoDato in codsArchivosDatos)
                {
                    archivo = ADArchivo.ConsultarArchivo(codArchivoDato, configuracion.IdConfiguracion);
                    if (archivo != null)
                    {
                        var response = clienteREP.ObtenerArchivo(archivo.CodArchivoDatos, configura.ruta, configura.soapAction);
                        if (response != null)
                        {
                            archivo.Bytes = response.Bytes;
                            string contenido = System.Text.Encoding.UTF8.GetString(archivo.Bytes);
                            archivo.Contenido = contenido;
                            listaArchivos.Add(archivo);
                        }
                    }
                    else
                    {
                        respuesta.EsValido  = false;
                        respuesta.Excepcion = new Exception(string.Format(Recursos.msgrep_MensajeErrorConsultar, codArchivoDato));
                        return(respuesta);
                    }
                }

                respuesta.Objeto   = listaArchivos;
                respuesta.EsValido = true;
            }
            catch (CommunicationException ex)
            {
                errorComunicacion?.Invoke(archivo, ex);
                error(ex);
            }
            catch (Exception ex)
            {
                errorGeneral?.Invoke(archivo, ex);
                error(ex);
            }

            return(respuesta);
        }
        public override RespuestaRetorno <List <Archivo> > ObtenerArchivo(string[] codsArchivosDatos, Configuracion configuracion)
        {
            List <Archivo> listaArchivos = new List <Archivo>();
            var            respuesta     = new RespuestaRetorno <List <Archivo> >()
            {
                Objeto = new List <Archivo>()
            };
            Archivo archivo = null;

            Action <Exception> error = (ex) => {
                respuesta.Excepcion = ex;
                respuesta.Mensaje   = ex.Message;
                respuesta.EsValido  = false;
                ex.Message.EntradaBitacora(TipoEvento.bitacora_TipoEvento_Error, ServicioPEL.REP);
            };

            try
            {
                foreach (string codArchivoDato in codsArchivosDatos)
                {
                    archivo = ADArchivo.ConsultarArchivo(codArchivoDato, configuracion.IdConfiguracion);

                    if (archivo != null)
                    {
                        var respuestaArchivo = ObtenerArchivo(configuracion, archivo);
                        if (respuestaArchivo.EsValido)
                        {
                            listaArchivos.Add(respuestaArchivo.Objeto);
                        }
                    }
                    else
                    {
                        respuesta.EsValido  = false;
                        respuesta.Excepcion = new Exception(string.Format(Recursos.msgrep_MensajeErrorConsultar, codArchivoDato));
                        return(respuesta);
                    }
                }

                respuesta.Objeto   = listaArchivos;
                respuesta.EsValido = true;
            }
            catch (CommunicationException ex)
            {
                errorComunicacion?.Invoke(archivo, ex);
                error(ex);
            }
            catch (Exception ex)
            {
                ErrorGeneral?.Invoke(archivo, ex);
                error(ex);
            }

            return(respuesta);
        }
예제 #6
0
        public override RespuestaRetorno <List <Archivo> > ObtenerArchivo(string[] codsArchivosDatos, BE.Configuracion configuracion)
        {
            List <Archivo> listaArchivos = new List <Archivo>();
            DSRepositorio  ds            = new DSRepositorio();
            var            respuesta     = new RespuestaRetorno <List <Archivo> >()
            {
                Objeto = new List <Archivo>()
            };
            Archivo            archivo = null;
            Action <Exception> error   = (ex) => {
                respuesta.Excepcion = ex;
                respuesta.EsValido  = false;
                ex.Message.EntradaBitacora(TipoEvento.bitacora_TipoEvento_Error, ServicioPEL.REP);
            };

            try
            {
                foreach (string codArchivoDato in codsArchivosDatos)
                {
                    archivo = ADArchivo.ConsultarArchivo(codArchivoDato, configuracion.IdConfiguracion);
                    if (archivo != null)
                    {
                        var archivoRepositorio = ds.ObtenerArchivo(Convert.ToInt64(codArchivoDato), archivo.NombreArchivo, configuracion.URL);
                        archivo.URl             = archivoRepositorio.Ruta;
                        archivo.Bytes           = archivoRepositorio.Contenido;
                        archivo.CodArchivoDatos = archivoRepositorio.IdArchivoDatos.ToString();
                        archivo.Contenido       = System.Text.Encoding.UTF8.GetString(archivo.Bytes);
                        listaArchivos.Add(archivo);
                    }
                    else
                    {
                        respuesta.EsValido  = false;
                        respuesta.Excepcion = new Exception(string.Format(Recursos.msgrep_MensajeErrorConsultar, codArchivoDato));
                        return(respuesta);
                    }
                }

                respuesta.Objeto   = listaArchivos;
                respuesta.EsValido = true;
            }
            catch (CommunicationException ex)
            {
                errorComunicacion?.Invoke(archivo, ex);
                error(ex);
            }
            catch (Exception ex)
            {
                errorGeneral?.Invoke(archivo, ex);
                error(ex);
            }
            return(respuesta);
        }
예제 #7
0
        public override RespuestaRetorno SalvarArchivo(Archivo[] archivos, Configuracion configuracion)
        {
            RespuestaRetorno respuesta      = new RespuestaRetorno();
            Archivo          archivoCaptura = null;

            try
            {
                var clienteREP             = new PEL.NBS.AccesoCore.IEntidadREP.ClienteREP();
                configuracionWeb configura = ObtenerConfiguracionWeb(configuracion);

                string msjBitacora = string.Empty;
                foreach (Archivo archivo in archivos)
                {
                    archivoCaptura = archivo;
                    var request = new PEL.NBS.AccesoCore.IEntidadREP.Request.ArchivoRequest()
                    {
                        NombreArchivo    = archivo.NombreArchivo,
                        ExtensionArchivo = archivo.ExtensionArchivo,
                        Bytes            = archivo.Bytes,
                        MimeType         = archivo.MimeType
                    };

                    var response = clienteREP.AlmacenarArchivo(request, configura.ruta, configura.soapAction);
                    if (response != null)
                    {
                        archivo.CodArchivoDatos = response.CodArchivoDatos;
                        archivo.IdConfiguracion = configuracion.IdConfiguracion;
                        archivo.IdArchivo       = ADArchivo.AgregarAchivo(archivo);
                        almacenajeCompletado?.Invoke(archivo);

                        string msj = "Se agrega documento del servicio {0} y opción {1}, asociado al objeto {2} .";
                        msjBitacora = string.Format(msj, configuracion.CodServicio, configuracion.CodOpcion, archivo.IdObjeto);

                        Bitacora.Agregar(new InfoEvento(Comun.ContextoInvocador), PEL.NBS.Auditoria.SI.Datos.Enum <ServicioPEL> .Description(ServicioPEL.REP),
                                         TipoEvento.bitacora_TipoEvento_Informacion, msjBitacora);
                    }
                }

                respuesta.EsValido = true;
                respuesta.Mensaje  = msjBitacora;
            }
            catch (Exception ex)
            {
                ErrorGeneral?.Invoke(archivoCaptura, ex);
                respuesta.Excepcion = ex;
                respuesta.EsValido  = false;
            }

            return(respuesta);
        }
예제 #8
0
        public override RespuestaRetorno SalvarArchivo(Archivo[] archivos, Configuracion configuracion)
        {
            var     respuesta      = new RespuestaRetorno();
            Archivo archivoCaptura = null;

            try
            {
                string msjBitacora = string.Empty;
                if (configuracion.RequiereImpersonalizar)
                {
                    Impersonaliza(configuracion);
                }

                foreach (Archivo archivo in archivos)
                {
                    archivoCaptura = archivo;
                    var respuestaRepositorio = GuardarRepositorio(archivo, configuracion);
                    if (respuestaRepositorio.EsValido)
                    {
                        archivo.CodArchivoDatos = respuestaRepositorio.Objeto.CodArchivoDatos;
                        archivo.IdConfiguracion = configuracion.IdConfiguracion;
                        archivo.IdArchivo       = new AccesoDatos.ADArchivo().AgregarAchivo(archivo);
                        AlmacenajeCompletado?.Invoke(archivo);
                    }

                    string msj = "Se agrega documento del servicio {0} y opción {1}, asociado al objeto {2} .";
                    msjBitacora = string.Format(msj, configuracion.CodServicio, configuracion.CodOpcion, archivo.IdObjeto);
                    Bitacora.Agregar(new InfoEvento(Comun.ContextoInvocador), PEL.NBS.Auditoria.SI.Datos.Enum <ServicioPEL> .Description(ServicioPEL.REP),
                                     TipoEvento.bitacora_TipoEvento_Informacion, msjBitacora);
                }
                respuesta.EsValido = true;
                respuesta.Mensaje  = msjBitacora;
            }
            catch (Exception ex)
            {
                ErrorGeneral?.Invoke(archivoCaptura, ex);
                respuesta.Excepcion = ex;
                respuesta.Mensaje   = ex.Message;
                respuesta.EsValido  = false;
            }
            finally
            {
                if (configuracion.RequiereImpersonalizar)
                {
                    Dispose();
                }
            }

            return(respuesta);
        }
예제 #9
0
        public void AgregarFTP()
        {
            string fileName1 = @"C:\Users\fsanchez\Desktop\Caja de Ande\caja ande requerido.txt";
            string fileName2 = @"C:\Users\fsanchez\Desktop\Caja de Ande\Guia Instalación Cliente VPN Remoto.pdf";


            byte[] archivo1 = FileToByteArray(fileName1);
            byte[] archivo2 = FileToByteArray(fileName2);


            ManejadorArchivos manejador = new ManejadorArchivos();
            Archivo           arch      = new Archivo();
            List <Archivo>    lista     = new List <Archivo>();
            Configuracion     configura = new Configuracion();

            configura.CodTipoConfiguracion = PELib.Enumerados.REP.TipoConfiguracion.FTP;
            configura.Usuario         = "Fabi";
            configura.Clave           = "fabia123";
            configura.URL             = "ftp://127.0.0.1/";
            configura.IdConfiguracion = 1;

            arch.Bytes            = archivo1;
            arch.ExtensionArchivo = "txt";
            arch.NombreArchivo    = "caja ande requerido";
            arch.MimeType         = "plain/txt";
            arch.CodEstado        = 1;
            arch.IdObjeto         = 11;

            lista.Add(arch);
            arch = new Archivo();

            arch.Bytes            = archivo2;
            arch.ExtensionArchivo = "pdf";
            arch.NombreArchivo    = "Guia Instalación Cliente VPN Remoto";
            arch.MimeType         = "application/pdf";
            arch.CodEstado        = 1;
            arch.IdObjeto         = 11;
            lista.Add(arch);

            bool             respuesta = manejador.AlmacenarArchivo(lista.ToArray(), configura);
            RespuestaRetorno r         = new RespuestaRetorno();

            Assert.IsTrue(respuesta);
            return;
        }
예제 #10
0
        public override RespuestaRetorno SalvarArchivo(Archivo[] archivos, BE.Configuracion configuracion)
        {
            RespuestaRetorno respuesta      = new RespuestaRetorno();
            Archivo          archivoCaptura = null;

            try
            {
                DSRepositorio ds          = new DSRepositorio();
                string        msjBitacora = string.Empty;
                foreach (Archivo archivo in archivos)
                {
                    archivoCaptura = archivo;
                    long id = ds.AgregarArchivoRepositorio(archivo, configuracion.URL);
                    if (id > 0)
                    {
                        archivo.IdConfiguracion = configuracion.IdConfiguracion;
                        archivo.CodArchivoDatos = id.ToString();
                        archivo.IdArchivo       = ADArchivo.AgregarAchivo(archivo);
                        AlmacenajeCompletado?.Invoke(archivo);
                        string msj = "Se agrega documento del servicio {0} y opción {1}, asociado al objeto {2} .";
                        msjBitacora = string.Format(msj, configuracion.CodServicio, configuracion.CodOpcion, archivo.IdObjeto);

                        Bitacora.Agregar(new InfoEvento(Comun.ContextoInvocador), PEL.NBS.Auditoria.SI.Datos.Enum <ServicioPEL> .Description(ServicioPEL.REP),
                                         TipoEvento.bitacora_TipoEvento_Informacion, msjBitacora);
                    }
                    else
                    {
                        respuesta.EsValido  = false;
                        respuesta.Excepcion = new Exception(string.Format(Recursos.MsgRep_MensajeErrorAgregarBD, archivo.NombreArchivo + '.' + archivo.ExtensionArchivo));
                        return(respuesta);
                    }
                }
                respuesta.EsValido = true;
                respuesta.Mensaje  = msjBitacora;
            }
            catch (Exception ex)
            {
                ErrorGeneral?.Invoke(archivoCaptura, ex);
                respuesta.EsValido  = false;
                respuesta.Excepcion = ex;
            }

            return(respuesta);
        }
예제 #11
0
        public RespuestaRetorno <Configuracion> ConsultarConfiguracion(int idConfiguracion)
        {
            RespuestaRetorno <Configuracion> respuesta = new RespuestaRetorno <Configuracion>()
            {
                Objeto = new Configuracion()
            };

            try
            {
                ADConfiguracion ADConfiguracion = new ADConfiguracion();
                respuesta.Objeto   = ADConfiguracion.ObtenerConfiguracion(idConfiguracion);
                respuesta.EsValido = true;
            }
            catch (Exception ex)
            {
                respuesta.Excepcion = ex;
                respuesta.EsValido  = false;
            }

            return(respuesta);
        }
        public override RespuestaRetorno SalvarArchivo(Archivo[] archivos, Configuracion configuracion)
        {
            var     respuesta = new RespuestaRetorno();
            Archivo archivo   = null;

            try
            {
                string msjBitacora = string.Empty;
                for (int i = 0; archivos.Length > i; i++)
                {
                    archivo = archivos[i];
                    var respuestaRepositorio = GuardarRepositorio(archivo, configuracion);
                    archivo.CodArchivoDatos = respuestaRepositorio.Objeto.CodArchivoDatos;
                    if (respuestaRepositorio.EsValido)
                    {
                        archivo.IdConfiguracion = configuracion.IdConfiguracion;
                        archivo.IdArchivo       = ADArchivo.AgregarAchivo(archivo);
                        AlmacenajeCompletado?.Invoke(archivo);
                    }
                    string msj = "Se agrega archivo del servicio {0} y opción {1}, asociado al objeto {2} .";
                    msjBitacora = string.Format(msj, configuracion.CodServicio, configuracion.CodOpcion, archivo.IdObjeto);

                    Bitacora.Agregar(new InfoEvento(Comun.ContextoInvocador), PEL.NBS.Auditoria.SI.Datos.Enum <ServicioPEL> .Description(ServicioPEL.REP),
                                     TipoEvento.bitacora_TipoEvento_Informacion, msjBitacora);
                }
                respuesta.EsValido = true;
                respuesta.Mensaje  = msjBitacora;
            }
            catch (Exception ex)
            {
                ErrorGeneral?.Invoke(archivo, ex);
                respuesta.Excepcion = ex;
                respuesta.Mensaje   = ex.Message;
                respuesta.EsValido  = false;
            }


            return(respuesta);
        }
        protected RespuestaRetorno <Archivo> ObtenerArchivo(Configuracion configuracion, Archivo archivo)
        {
            WebClient request          = new WebClient();
            Archivo   nuevoArchivo     = archivo;
            var       respuestaArchivo = new RespuestaRetorno <Archivo>()
            {
                Objeto = new Archivo()
            };

            Action finalizar = () => {
                request.Dispose();
            };

            string url = configuracion.URL + archivo.NombreArchivo + "." + archivo.ExtensionArchivo;

            request.Credentials = new NetworkCredential(configuracion.Usuario, configuracion.Clave);

            try
            {
                byte[] archivoBytes = request.DownloadData(url);
                string contenido    = System.Text.Encoding.UTF8.GetString(archivoBytes);

                nuevoArchivo.Bytes        = archivoBytes;
                nuevoArchivo.Contenido    = contenido;
                respuestaArchivo.Objeto   = nuevoArchivo;
                respuestaArchivo.EsValido = true;
            }
            catch (Exception ex)
            {
                finalizar();
                throw ex;
            }
            finally { finalizar(); }

            return(respuestaArchivo);
        }