public bool EnviarMensaje(TransferenciaMensajes mensajes) { BandejaNotificacionesDAO dao = new BandejaNotificacionesDAO(); DocumentosAdjuntosDao daoDocumentosAdjuntos = new DocumentosAdjuntosDao(); var tipoDocumental = new tipoDocumentalDao().obtenerTipoLogiaDocumental("500001"); List<tblBandejaNotificaciones> listaInsertMensajes = new List<tblBandejaNotificaciones>(); var enviarA = mensajes.destinatarios; List<tbl_usuarios> ListaUsuarios = new List<tbl_usuarios>(); tbl_usuarios idOrigen = new tbl_usuarios(); DaoUsuario daoUsuarios = new DaoUsuario(); bool adjunto = mensajes.archivos.Count() > 0 ? true : false; var fechaEnvio = DateTime.Now; idOrigen = daoUsuarios.obtenerIdentficadorUnicoUsuario(mensajes.Origen.tipoIdentificacion, mensajes.Origen.NumeroIdentificacion); string Destinos = string.Empty; string usuarioOrigen = mensajes.NombreEnvia; foreach (var data in enviarA) { var usuario = daoUsuarios.obtenerIdentficadorUnicoUsuario(data.tipoIdentificacion, data.NumeroIdentificacion); Destinos = PrefijoEnumTIPO_IDENTIFICACION.EnumToTIPO_IDENTIFICACION(Convert.ToInt32( usuario.tipoIdentificacion)) + usuario.numeroIdentificacion + ","; ListaUsuarios.Add(usuario); } if (Destinos.EndsWith(",")) { Destinos = Destinos.Substring(0, Destinos.Length - 1); } foreach (var data in ListaUsuarios) { listaInsertMensajes.Add(new tblBandejaNotificaciones() { idBandejaNotificacionPadre = null, userIdAplicacionDestino = data.userIdApplicacion, NombreEnvia = mensajes.NombreEnvia, userIdAplicacionOrigen = idOrigen.userIdApplicacion, Destinatarios =Destinos, fechaEnvio = fechaEnvio, Mensaje = mensajes.Mensaje, Asunto = mensajes.Asunto, Estado = 1, tamanio = "",// mensaje.tamanio Adjunto = adjunto, }); } var resultadoInsertarMensaje = dao.EnviarMensaje(listaInsertMensajes); #region Guardar Documentos En las carpetas de los usuarios var fileControl = new Uniandes.FileControl.FileControl(Int32.Parse("MaxFileSize".GetFromAppCfg())); List<tbl_metadataArchivos> listaMetadatos = new List<tbl_metadataArchivos>(); MetadataArchivoDao daoMetadata = new MetadataArchivoDao(); CarpetaPersonalDao daoCarpetaPersonal = new CarpetaPersonalDao(); foreach (var usuarios in ListaUsuarios) { var idCarpeta = daoCarpetaPersonal.obtenerIdCarpeta(usuarios.userIdApplicacion, "ADJUNTOS"); listaMetadatos = new List<tbl_metadataArchivos>(); foreach (var archivos in mensajes.archivos) { fileControl.CopyStringByteFileToRepositorio(usuarios.repositorioKey, @"" + usuarios.carpetaUsuarioInicial + "/Adjuntos", archivos.Contenido, archivos.NombreArchivo); string ext = System.IO.Path.GetExtension(archivos.NombreArchivo).ToLower(); listaMetadatos.Add(new tbl_metadataArchivos() { idDMtadataArchivo = Guid.NewGuid(), autor = usuarioOrigen, userIdApplicacion = usuarios.userIdApplicacion, extension = ext, nombre_generado = archivos.NombreArchivo, fecha_Cargue = Convert.ToDateTime(archivos.FechaCargueArchivo), fecha_modificacion = Convert.ToDateTime(archivos.FechaCargueArchivo), idTipoDocumento = tipoDocumental, tamanio = "", nombre = archivos.NombreArchivo, idCarpetaPersonal = idCarpeta }); } var resultadoGuardardatos = daoMetadata.RegistrarListaMetadataArchivo(listaMetadatos); List<tblDocumentosAdjuntos> almacenarAdjuntos = new List<tblDocumentosAdjuntos>(); var idMensaje = listaInsertMensajes.Where(x => x.userIdAplicacionDestino == usuarios.userIdApplicacion).First().idBandejaNotificaciones; foreach (var lista in listaMetadatos) { almacenarAdjuntos.Add(new tblDocumentosAdjuntos() { idDMetadaArchivo = lista.idDMtadataArchivo, idBandejaNotificaciones = idMensaje }); } daoDocumentosAdjuntos.RegistrarListaMetadataArchivo(almacenarAdjuntos); } #endregion return true; }
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." }; } }
public void crearSOAP(Operador.Entity.TransferenciaMensajes MyObject) { XmlSerializer xsSubmit = new XmlSerializer(typeof(Operador.Entity.TransferenciaMensajes)); var subReq = new Operador.Entity.TransferenciaMensajes(); var st = string.Empty; using (StringWriter sww = new StringWriter()) using (XmlWriter writer = XmlWriter.Create(sww)) { xsSubmit.Serialize(writer, MyObject); st = sww.ToString(); // Your XML } XmlDocument xDoc = new XmlDocument(); xDoc.LoadXml(st); XmlNodeList archivo = xDoc.GetElementsByTagName("TransferenciaMensajes"); var s = archivo[0].InnerXml; }