/// <summary> /// Actualiza el estado de aprobacion del certificado /// </summary> /// <returns></returns> public bool ActualizarAprobacion() { ManteUdoCertificadoRecibido manteUdoSobreRecibido = new ManteUdoCertificadoRecibido(); RespuestaSobre respuestaSobre = new RespuestaSobre(); List <CertificadoRecibido> listaCertificadosRecibidos = new List <CertificadoRecibido>(); List <ErrorValidarSobre> listaErrores = new List <ErrorValidarSobre>(); string estadoAprobacion = ""; try { listaCertificadosRecibidos = manteUdoSobreRecibido.ObtenerCertificadoRecibido(DocEntry); estadoAprobacion = ((OptionBtn)Formulario.Items.Item("rbAprob").Specific).Selected ? "Y" : "N"; if (estadoAprobacion.Equals("Y")) { //Sobre validado string idReceptor = respuestaSobre.GenerarACK("AS", listaCertificadosRecibidos[0], listaCertificadosRecibidos[0].CorreoEmisor, null, listaCertificadosRecibidos[0].NombreSobre); foreach (CertificadoRecibido certRecibido in listaCertificadosRecibidos) { certRecibido.IdConsecutio = idReceptor; //Se insertan los datos en la tabla de la BD manteUdoSobreRecibido.ActualizarIdConsecutivo(idReceptor, docEntry); } FTP ftp = new FTP(); //Se sube el archivo al servidor FTP ftp.CargarArchivos(listaCertificadosRecibidos[0].NombreSobre, RutasCarpetas.RutaCarpetaBandejaEntrada + listaCertificadosRecibidos[0].NombreSobre, 3); } else { listaErrores = manteUdoSobreRecibido.ObtenerErroresSobre(DocEntry); //Sobre rechazado respuestaSobre.GenerarACK("BS", listaCertificadosRecibidos[0], listaCertificadosRecibidos[0].CorreoEmisor, listaErrores, listaCertificadosRecibidos[0].NombreSobre); } } catch (Exception) { } return(manteUdoSobreRecibido.ActualizarEstado(DocEntry, estadoAprobacion)); }
/// <summary> /// Metodo que descarga los archivos adjuntos de los correos /// no leidos de la cuenta de outlook /// </summary> public void bandejaEntradaOutlook() { Microsoft.Office.Interop.Outlook.Application app = null; Microsoft.Office.Interop.Outlook._NameSpace ns = null; Microsoft.Office.Interop.Outlook.MAPIFolder inboxFolder = null; Microsoft.Office.Interop.Outlook.MailItem sinLeer; int p = 0, t = 0; while (!detenerHilo) { try { app = new Microsoft.Office.Interop.Outlook.Application(); ns = app.GetNamespace("MAPI"); ns.Logon(null, null, false, false); inboxFolder = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook. OlDefaultFolders.olFolderInbox); ///Se obtiene la bandeja de entrada de la cuenta de correo Microsoft.Office.Interop.Outlook.Items inboxItems = inboxFolder.Items; t = inboxFolder.UnReadItemCount; ///Se obtiene la bandeja de entrada de correos no leidos inboxItems = inboxItems.Restrict("[unread] = true"); while (p < t) { if (p == 0) { ///Se obtiene el primer elemento de la bandeja de entrada sinLeer = inboxItems.GetFirst(); } else { ///Se obtiene el elemento siguiente de la bandeja de entrada sinLeer = inboxItems.GetNext(); } ///Se obtiene los archivos adjuntos del correo Microsoft.Office.Interop.Outlook.Attachments adjuntos = sinLeer.Attachments; foreach (Microsoft.Office.Interop.Outlook.Attachment archivo in adjuntos) { if (ValidarXmlSobre(archivo.FileName)) { ///Se marca el correo como no leido sinLeer.UnRead = false; //Se descargar el archivo adjunto del correo archivo.SaveAsFile(RutasCarpetas.RutaCarpetaBandejaEntrada + archivo.FileName); string desde = sinLeer.Sender.ToString(); //Se sube el archivo al servidor FTP FTP ftp = new FTP(); ftp.CargarArchivos(archivo.FileName, RutasCarpetas.RutaCarpetaBandejaEntrada, 3); //Se guarda en la tabla de sobres Recibidos respuestaSobre.GenerarXML(RutasCarpetas.RutaCarpetaBandejaEntrada, archivo.FileName, desde); } //Se comprueba que sea un ACK else if (ValidarXmlACKSobre(archivo.FileName)) { archivo.SaveAsFile(RutasCarpetas.RutaCarpetaBandejaEntrada); sinLeer.UnRead = false; SobreTransito sobreTransito = ObtenerSobreTransito(archivo.FileName, sinLeer.Sender.ToString()); ManteUdoSobreTransito manteSobreTransito = new ManteUdoSobreTransito(); manteSobreTransito.Almacenar(sobreTransito); } } p = p + 1; } } catch (Exception) { } finally { ns = null; app = null; inboxFolder = null; Thread.Sleep(60000); } } }