public void Run(string modoEjecucionIn) { try { modoEjecucion = modoEjecucionIn; if (modoEjecucion == "FLOW") { RunFlow(); } else { List <OpenPop.Mime.Message> listaCorreos = BL_AgenteObj.GetCorreos(modoEjecucion, 2, out int procesoCorreoId); if (procesoCorreoId > 0)//tiene mensajes nuevos { if (listaCorreos.Count > 0) { string correos = ""; //recorrer los mensajes encontrados for (int i = listaCorreos.Count - 1; i >= 0; i--) { string correo = listaCorreos[i].Headers.From.MailAddress.Address.ToString(); correos += correo + ","; //recorrer archivos adjuntos foreach (MessagePart attachment in listaCorreos[i].FindAllAttachments()) { if (attachment.FileName.ToLower().Contains(".xls")) { //Descarga excel BL_GenericoObj.SaveFile(pathAdjuntos, attachment.FileName, attachment.Body); //Leer archivo excel //GetDatosExcel(Path.Combine(pathAdjuntos, attachment.FileName)); GetDatosExcel(pathAdjuntos, attachment.FileName, correo); } } } DL_AgenteObj.InsertLog(modoEjecucion, "Run", "BL_PasePedido", "Se econtró " + listaCorreos.Count.ToString() + " correo(s)", "Se econtraron " + listaCorreos.Count.ToString() + " correo(s). Id correo: " + procesoCorreoId.ToString() + ". " + correos, "Pase pedido", EL_ParmTipoLog.Info); } DL_AgenteObj.UpdateCorreoId(EL_ParmPasePedido.Id, procesoCorreoId); } } //Envío archivos TXT por FTP cada X minutos SendTxtFTP(urlFileFtp, user, password, pathTxt); } catch (Exception ex) { DL_AgenteObj.InsertLog(modoEjecucion, "Run", "PasePedido", ex.Message, ex.ToString(), "Pase pedido", EL_ParmTipoLog.Error); } }
public void Run(string modoEjecucionIn) { string adjuntoTmp = ""; try { modoEjecucion = modoEjecucionIn; if (modoEjecucion == "FLOW") { RunFlow(); } else { List <Message> listaCorreos = BL_AgenteObj.GetCorreos(modoEjecucion, 1, out int procesoCorreoId); if (procesoCorreoId > 0) { if (listaCorreos.Count > 0)//tiene mensajes nuevos { string correos = ""; int rnd = new Random().Next(1000); //recorrer los mensajes encontrados for (int i = listaCorreos.Count - 1; i >= 0; i--) { correos += listaCorreos[i].Headers.From.MailAddress.Address.ToString() + ","; string consultoraId = ""; //Busca adjunto tipo Excel foreach (MessagePart adjunto in listaCorreos[i].FindAllAttachments()) { if (!adjunto.ContentDisposition.Inline) { string gerenteCorreo = listaCorreos[i].Headers.From.MailAddress.Address.ToString(); if (adjunto.ContentType.MediaType == "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { adjuntoTmp = adjunto.FileName; int err = 0; try { //Descarga excel BL_GenericoObj.SaveFile(pathAdjuntos, procesoCorreoId.ToString() + rnd.ToString() + Path.GetExtension(adjunto.FileName), adjunto.Body); } catch (Exception) { DL_AgenteObj.UpdateCorreoId(EL_ParmActDatos.Id, procesoCorreoId); err = 1; throw; } if (err == 0) { //Leer archivo excel consultoraId = GetDatosExcel(Path.Combine(pathAdjuntos, procesoCorreoId.ToString() + rnd.ToString() + Path.GetExtension(adjunto.FileName)), gerenteCorreo, true, adjunto.FileName); } break; } } } //si se encontró un excel con datos if (consultoraId.Length == 9) { //Crea directorio de consultora if (!Directory.Exists(pathImagenes + "\\" + consultoraId)) { Directory.CreateDirectory(pathImagenes + "\\" + consultoraId); } int countImage = 0; if (codSolicitud.Length > 0) { //Busca adjunto tipo imagen foreach (MessagePart adjunto in listaCorreos[i].FindAllAttachments()) { if (!adjunto.ContentDisposition.Inline) { if (adjunto.ContentType.MediaType != "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") { //Arma el nombre del archivo: 384_Imagen1.jpg , 384_Imagen2.jpg countImage += 1; string fileName = codSolicitud + "-Imagen" + countImage.ToString().ToString() + Path.GetExtension(adjunto.FileName); //Descarga todos los adjuntos de tipo imagen BL_GenericoObj.SaveFile(pathImagenes + "\\" + consultoraId, fileName, adjunto.Body); } } } } } else { //El excel no retornó código de consultora DL_AgenteObj.UpdateCorreoId(EL_ParmActDatos.Id, procesoCorreoId); } } DL_AgenteObj.InsertLog(modoEjecucion, "Run", "BL_ActualizacionDatos", "Se econtró " + listaCorreos.Count.ToString() + " correo(s)", "Se econtraron " + listaCorreos.Count.ToString() + " correo(s). Id correo: " + procesoCorreoId.ToString() + ". " + correos, "Actualizacion Datos", EL_ParmTipoLog.Info); } DL_AgenteObj.UpdateCorreoId(EL_ParmActDatos.Id, procesoCorreoId); } } } catch (Exception ex) { DL_AgenteObj.InsertLog(modoEjecucion, "Run", "BL_ActualizacionDatos", ex.Message, ex.ToString() + ", " + adjuntoTmp, "Actualizacion Datos", EL_ParmTipoLog.Alerta); } }