예제 #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
        private void Dgv_Eventos_CellPainting(object sender, DataGridViewCellPaintingEventArgs e)
        {
            try
            {
                if (e.RowIndex < 0)
                {
                    return;
                }

                if (e.ColumnIndex == 1)
                {
                    e.Paint(e.CellBounds, DataGridViewPaintParts.All);

                    Image  image = Properties.Resources.icon_info;
                    string tipo  = Dgv_Eventos.Rows[e.RowIndex].Cells["Tipo1"].Value.ToString();

                    switch (tipo)
                    {
                    case "HISTORIAL":
                        image = Properties.Resources.icon_info;
                        break;

                    case "ERROR":
                        image = Properties.Resources.icon_error;
                        break;

                    case "ALERTA":
                        image = Properties.Resources.icon_alert;
                        break;
                    }

                    var width  = image.Width;
                    var height = image.Height;
                    var x      = e.CellBounds.Left + (e.CellBounds.Width - width) / 2;
                    var y      = e.CellBounds.Top + (e.CellBounds.Height - height) / 2;

                    e.Graphics.DrawImage(image, new System.Drawing.Rectangle(x, y, width, height));
                    e.Handled = true;
                }
            }
            catch (Exception ex)
            {
                DL_AgenteObj.InsertLog("Agente", "Dgv_Eventos_CellPainting", "FrmMonitoreo", ex.Message, ex.ToString(), "Agente", EL_ParmTipoLog.Error);
            }
        }
예제 #3
0
        public List <OpenPop.Mime.Message> GetCorreos(string modoEjecucion, int procesoId, out int procesoCorreoId)
        {
            procesoCorreoId = 0;
            try
            {
                System.Data.DataTable dtDatosCorreo = DL_AgenteObj.GetCorreoDatos(procesoId);
                var myList = new List <string>();
                //if (procesoId==1)
                //{
                //    System.Data.DataTable dtDatosCorreo2 = DL_AgenteObj.GetCorreoDatos(2);
                //    myList.Add(dtDatosCorreo2.Rows[0]["ProcesoAsuntoCorreo"].ToString());
                //}
                //test

                string[] asuntos = dtDatosCorreo.Rows[0]["ProcesoAsuntoCorreo"].ToString().Split(',');


                if (dtDatosCorreo.Rows.Count > 0)
                {
                    List <OpenPop.Mime.Message> listaCorreos = BL_ServerMail.GetMessages(
                        int.Parse(dtDatosCorreo.Rows[0]["ProcesoPuertoCorreo"].ToString()), //puerto
                        dtDatosCorreo.Rows[0]["ProcesoHostnameCorreo"].ToString(),          //host
                        dtDatosCorreo.Rows[0]["ProcesoUsuarioCorreo"].ToString(),           //usuario
                        dtDatosCorreo.Rows[0]["ProcesoClaveCorreo"].ToString(), true,       //clave
                        dtDatosCorreo.Rows[0]["ProcesoAsuntoCorreo"].ToString(),            //asunto
                        int.Parse(dtDatosCorreo.Rows[0]["ProcesoIdCorreo"].ToString()),     //idcorreo
                        asuntos,
                        out procesoCorreoId
                        );
                    return(listaCorreos);
                }

                else
                {
                    return(new List <OpenPop.Mime.Message>());
                }
            }
            catch (Exception ex)
            {
                DL_AgenteObj.InsertLog(modoEjecucion, "GetCorreos", "BL_Agente", ex.Message, ex.ToString(), "Agente", EL_ParmTipoLog.Error);
                return(new List <OpenPop.Mime.Message>());
            }
        }
예제 #4
0
        public void RunEscuchaPeticiones(int robotId, string rutaUiPath)
        {
            try
            {
                List <OpenPop.Mime.Message> listaCorreos = BL_AgenteObj.GetCorreos("", 4, out int procesoCorreoId);
                if (procesoCorreoId > 0)
                {
                    if (listaCorreos.Count > 0)//tiene mensajes nuevos
                    {
                        string correos = "";
                        for (int i = listaCorreos.Count - 1; i >= 0; i--)
                        {
                            correos += listaCorreos[i].Headers.From.MailAddress.Address.ToString() + ",";

                            //validación para envío de resumen de estado
                            if (listaCorreos[i].Headers.Subject.ToUpper().Trim() == "RPA")
                            {
                                ProcesarResumen(0, true, true, listaCorreos[i].Headers.From.MailAddress.Address.ToString(), listaCorreos[i]);
                            }
                            else
                            {
                                string minutos = DL_RPAMainObj.InsertCola(listaCorreos[i].Headers.Subject.ToUpper().Trim());
                                ConfirmarColar(minutos, listaCorreos[i], listaCorreos[i].Headers);
                            }
                        }

                        DL_AgenteObj.InsertLog("", "RunEscuchaPeticiones", "RunEscuchaPeticiones", "Se econtró " + listaCorreos.Count.ToString() + " correo(s)",
                                               "Se econtraron " + listaCorreos.Count.ToString() + " correo(s). Id correo: " + procesoCorreoId.ToString() + ".   " + correos, "RPA Main", EL_ParmTipoLog.Info);
                    }

                    DL_AgenteObj.UpdateCorreoId(EL_ParmRPAMain.Id, procesoCorreoId);
                }
            }
            catch (Exception ex)
            {
                DL_AgenteObj.InsertLog("", "RunEscuchaPeticiones", "RunEscuchaPeticiones", ex.Message, ex.ToString(), "RPA RunEscuchaPeticiones", EL_ParmTipoLog.Alerta);
            }
        }
예제 #5
0
 public void MostrarForm(Form mdiChild, bool menu)
 {
     try
     {
         bool flg = false;
         foreach (Form frm in this.MdiChildren)
         {
             if (frm.AccessibilityObject.Name == mdiChild.AccessibilityObject.Name)
             {
                 if (menu)
                 {
                     frm.Select();
                 }
                 frm.WindowState = FormWindowState.Normal;
                 flg             = true;
             }
             else
             {
                 if (!menu)
                 {
                     frm.WindowState = FormWindowState.Minimized;
                 }
             }
         }
         if (flg == false)
         {
             mdiChild.MdiParent = this;
             mdiChild.Show();
             mdiChild.BringToFront();
         }
     }
     catch (Exception ex)
     {
         DL_AgenteObj.InsertLog("Agente", "MostrarForm", "FrmProcesoAdmin", ex.Message, ex.ToString(), "Agente", EL_ParmTipoLog.Alerta);
     }
 }
예제 #6
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);
            }
        }