示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }