public bool RecibirMensajes(Operador.Entity.TransferenciaMensajes mensajes)
        {
            try
            {
                Boolean resultado = true;
                GestorMensajeria gestorMensajeria = new GestorMensajeria();
                 resultado = gestorMensajeria.RecibirMensaje(mensajes);
                return resultado;
            }
            catch (Exception ex) {
                AppLog.Write(" Error en el servicio De Mensajeria  - RecibirMensajes . ", AppLog.LogMessageType.Error, ex, "OperadorCarpeta");
                throw ex;

            }
        }
Exemplo n.º 2
0
    public static object EnviarMensaje(List<usuariosMensajes> usuarios, string Asunto, string cuerpoMensaje, string FILENAMES)
    {
        try
        {
            #region Envio Mensajes

            ServicioIntermediario.ServicioIntermediarioClient servicioMensajeriaExterno = new ServicioIntermediario.ServicioIntermediarioClient();

            ServicioIntermediario.TransferenciaMensajes MensajeOtroOperadore = new ServicioIntermediario.TransferenciaMensajes();

            List<ServicioIntermediario.ListaDestinatarios> destinosExternos = new List<ServicioIntermediario.ListaDestinatarios>();

            ServicioIntermediario.ListaDestinatarios OrigenExtenos = new ServicioIntermediario.ListaDestinatarios();

            TransferenciaMensajes MENSAJE = new TransferenciaMensajes();
            List<ListaDestinatarios> destino = new List<ListaDestinatarios>();
            List<ServicioIntermediario.Archivo> archivosEnviarExterno = new List<ServicioIntermediario.Archivo>();

            var idTipo = (int)SessionHelper.GetSessionData("TIPO_IDENTIFICACION_ENVIO");
            var numero = (string)SessionHelper.GetSessionData("NUMERO_IDENTIFICACION_ENVIO");

            #region Validacion Usuarios Externos Internos
            /**
             *recorremos toda lista validando los usuarios que son del sistema y los que no
             */
            foreach (var data in usuarios)
            {

                if (data.mismo)
                {
                    destino.Add(new ListaDestinatarios()
                    {

                        NumeroIdentificacion = data.numeroIdentificacion,
                        tipoIdentificacion = data.idTIpoIdentificacion
                    });
                }
                {

                    destinosExternos.Add(new ServicioIntermediario.ListaDestinatarios()
                    {

                        NumeroIdentificacion = data.numeroIdentificacion,
                        tipoIdentificacion = data.idTIpoIdentificacion
                    });

                }
            }
            #endregion

            List<Archivo> archivosEnviar = new List<Archivo>();
            List<string> archivos = FILENAMES.Split(',').Where(x => string.IsNullOrWhiteSpace(x) == false).ToList();
            var fileControl = new FileControl(Int32.Parse("MaxFileSize".GetFromAppCfg()));
            DateTime FechaEnvio = DateTime.Now;
            byte[] datosArchivo = null;
            foreach (string nombreArchivo in archivos)
            {
                datosArchivo = fileControl.GetFileFromAntivirus(REPOSITORY, nombreArchivo);
                string DatosArchivoString = Convert.ToBase64String(datosArchivo);
                archivosEnviar.Add(new Archivo()
                {
                    Contenido = DatosArchivoString,
                    FechaCargueArchivo = FechaEnvio,
                    FechaExpedicionArchivo = FechaEnvio,
                    FechaVigencia = FechaEnvio,
                    NombreArchivo = nombreArchivo,
                    ArchivoExpedidoPor = "",

                });
            }

            var usuario = (UsuarioOperador)SessionHelper.GetSessionData("USUARIO");

            ListaDestinatarios origien = new ListaDestinatarios();
            origien.tipoIdentificacion = usuario.tipoIdentificacion.Value;
            origien.NumeroIdentificacion = usuario.numeroIdentificacion;

            if (destinosExternos.Count() > 0)
            {

                foreach (var data in archivosEnviar)
                {
                    archivosEnviarExterno.Add(new ServicioIntermediario.Archivo()
                    {
                        Contenido = data.Contenido,
                        FechaCargueArchivo = data.FechaCargueArchivo,
                        FechaExpedicionArchivo = data.FechaExpedicionArchivo,
                        FechaVigencia = data.FechaVigencia,
                        NombreArchivo = data.NombreArchivo,
                        ArchivoExpedidoPor = "",

                    });

                }
                OrigenExtenos.tipoIdentificacion = usuario.tipoIdentificacion.Value;
                OrigenExtenos.NumeroIdentificacion = usuario.numeroIdentificacion;

                MensajeOtroOperadore.archivos = archivosEnviarExterno.ToArray();

                MensajeOtroOperadore.Asunto = Asunto;
                MensajeOtroOperadore.Mensaje = cuerpoMensaje;
                MensajeOtroOperadore.destinatarios = destinosExternos.ToArray();
                MensajeOtroOperadore.Origen = OrigenExtenos;
                MensajeOtroOperadore.NombreEnvia = usuario.Nombres + " " + usuario.Apellidos;

                try {

                    var resultado = servicioMensajeriaExterno.RecibirMensajes(MensajeOtroOperadore);
                }
                catch (Exception ex) {

                }

            }
            MENSAJE.archivo = archivosEnviar;
            MENSAJE.Asunto = Asunto;
            MENSAJE.Mensaje = cuerpoMensaje;
            MENSAJE.destinatarios = destino;
            MENSAJE.Origen = origien;
            MENSAJE.NombreEnvia = usuario.Nombres + " " + usuario.Apellidos;

            GestorMensajeria gestor = new GestorMensajeria();

            var resultadoEnvio = gestor.EnviarMensaje(MENSAJE);

            if (resultadoEnvio)
            {
                return new
                {
                    OK = "OK",
                    mensaje = "Se ha enviado el mensaje a los destinatarios Correctamente."
                };
            }
            else
            {
                return new
                {
                    OK = "fallo",
                    mensaje = "Ha ocurrido un error inesperado por favor intentelo mas tarde."
                };

            }
            #endregion

        }
        catch (Exception ex)
        {
            AppLog.Write(" Error obteniendo la informacion Inicial. ", AppLog.LogMessageType.Error, ex, "OperadorCarpeta");
            return new
            {
                OK = "error",
                mensaje = "Ha ocurrido un error inesperado por favor intentelo mas tarde."
            };

        }
    }