Example #1
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);
        }
        protected RespuestaRetorno <Archivo> GuardarRepositorio(Archivo archivo, Configuracion configuracion)
        {
            BE.RespuestaRetorno <Archivo> resp = new BE.RespuestaRetorno <Archivo>();

            Archivo archivoRepositorio = new Archivo();

            try
            {
                string archivoExtension = archivo.NombreArchivo + "." + archivo.ExtensionArchivo;
                string fullPath         = Path.Combine(configuracion.URL, archivoExtension);

                FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create(fullPath);
                request.Method      = WebRequestMethods.Ftp.UploadFile;
                request.Credentials = new NetworkCredential(configuracion.Usuario, configuracion.Clave);
                request.UsePassive  = true;
                request.UseBinary   = true;
                request.KeepAlive   = true;

                byte[] buffer = archivo.Bytes;

                request.ContentLength = buffer.Length;

                Stream reqStream = request.GetRequestStream();
                if (request.ContentLength != 0)
                {
                    reqStream.Write(buffer, 0, buffer.Length);
                }

                archivoRepositorio.CodArchivoDatos = fullPath;


                reqStream.Flush();
                reqStream.Close();
                FtpWebResponse response    = (FtpWebResponse)request.GetResponse();
                string         msjBitacora = "Archivo {0} cargado en el repositorio FTP, estatus : " + response.StatusDescription;

                response.Close();
                Bitacora.Agregar(new InfoEvento(Comun.ContextoInvocador), PEL.NBS.Auditoria.SI.Datos.Enum <ServicioPEL> .Description(ServicioPEL.REP),
                                 TipoEvento.bitacora_TipoEvento_Informacion, string.Format(msjBitacora, archivoExtension));
                resp.EsValido = true;
                resp.Objeto   = archivoRepositorio;
            }
            catch (CommunicationException ex)
            {
                errorComunicacion?.Invoke(archivo, ex);
                throw ex;
            }

            return(resp);
        }
Example #3
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);
        }
        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);
        }
        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);
        }