示例#1
0
 public void PrepararParaReenviar(CorreoDTO oCorreo)
 {
     if (tipo == "forward")
     {
         txtAsunto.Text = "FWD: " + oCorreo.Asunto;
         txtMensaje.Text = oCorreo.Detalle;
     }
 }
示例#2
0
 public void ObtenerCorreo(CorreoDTO oCorreo)
 {
     try {
         correo = new CorreoDTO();
         correo = Controller.Correo.getInstance().obtenerCorreo(oCorreo);
         CargarCorreo();
         //Pasar a Leido
         //Cargo adjuntos
     }
     catch (Exception ex) { }
 }
示例#3
0
        public void enviarCorreo(CorreoDTO correo)
        {
            try
            {
                CuentaDTO cuenta = Cuenta.getInstance().ObtenerCuentaDeCorreo(correo);
                ServerDTO server = new ServerDTO();

                server.Id = cuenta.Server;
                server = Server.getInstance().ObtenerServer(server);

                //Sesión

                MailMessage mensaje = new MailMessage();

                //Agrego destinatarios, guardados en la lista de OrigenDestino
                foreach (OrigenDestinoDTO od in correo.OrigenDestino) {
                    //Si es CC
                    if (od.Cc == true) mensaje.CC.Add(new MailAddress(od.Direccion));
                    //Si es CCO
                    else if (od.Cco == true) mensaje.Bcc.Add(new MailAddress(od.Direccion));
                    //Sino, es Para
                    else mensaje.To.Add(new MailAddress(od.Direccion));
                }

                mensaje.Subject = correo.Asunto;
                mensaje.Body = correo.Detalle;

                //Adjuntos
                //foreach (AttachmentDTO adjunto in correo.Adjuntos) {

                //}

                mensaje.From = new MailAddress(cuenta.User);

                AdminSmtp smtp = new AdminSmtp();
                smtp.ConectarSmtp(server, cuenta);

                //If enviado < 0 -> error al enviar
                int enviado = smtp.Enviar(mensaje, false);

            }
            catch (Exception ex) { }
        }
示例#4
0
        public void PrepararParaResponder(CorreoDTO oCorreo)
        {
            if (tipo == "reply") {

                CorreoDTO mail = new CorreoDTO();
                mail.IdCorreo = oCorreo.IdCorreo;
                mail = Controller.Correo.getInstance().obtenerCorreo(mail);

                List<OrigenDestinoDTO> origenes = new List<OrigenDestinoDTO>();
                origenes = mail.OrigenDestino;

                String deStr = "";
                foreach (OrigenDestinoDTO origen in origenes)
                {
                    if (origen.Cc == false && origen.Cco == false)
                        deStr = origen.Direccion;
                }

                String ccStr = "";
                String ccoStr = "";
                foreach (OrigenDestinoDTO origen in origenes)
                {
                    if (origen.Cc == true)
                        ccStr = ccStr + origen.Direccion + "; ";
                    else if (origen.Cco == true)
                        ccoStr = ccoStr + origen.Direccion + "; ";
                }

                txtPara.Text = deStr;
                txtCC.Text = ccStr;
                txtCCO.Text = ccoStr;

                txtAsunto.Text = "RE: " + mail.Asunto;

            }
        }
示例#5
0
 /// <summary>
 /// Método para eliminar un Correo.
 /// </summary>
 /// <param name="correo"></param>
 public void eliminarCorreo(CorreoDTO correo)
 {
     factory.startConnection();
     factory.getCorreo().delete(correo);
     factory.closeConnection();
 }
示例#6
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="read"></param>
        /// <param name="sent"></param>
        /// <param name="cant"></param>
        /// <returns></returns>
        public List<CorreoDTO> list(bool read, bool sent, int cant, CuentaDTO cuenta = null)
        {
            CorreoDTO correo;
            List<CorreoDTO> correos = new List<CorreoDTO>();

            try {
                connection.Open();

                MySqlCommand myCommand = new MySqlCommand();
                myCommand.Connection = connection;
                MySqlDataAdapter myAdapter = new MySqlDataAdapter();
                DataTable myData = new DataTable();

                string query = "SELECT idcorreo,asunto,detalle,tipocorreo,fecha,leido,cuenta_idcuenta FROM correo WHERE 1=1";

                //Agrego texto a la query si así lo indica cada filtro
                if (cuenta != null)
                    query += " AND cuenta_idcuenta=?idcuenta";
                if (read) query += " AND leido=?leido";
                if (sent)
                    query += " AND tipocorreo='ENVIADO'";
                else
                    query += " AND tipocorreo='RECIBIDO'";
                query += " ORDER BY idcorreo DESC";
                if (cant != 0) query += " LIMIT ?cant";

                myCommand.CommandText = query;

                if(cuenta != null)  {myCommand.Parameters.Add("?idcuenta",MySqlDbType.Int16).Value = cuenta.IdCuenta;}
                myCommand.Parameters.Add("?leido", MySqlDbType.Int16).Value = read;
                myCommand.Parameters.Add("?cant", MySqlDbType.Int16).Value = cant;

                myAdapter.SelectCommand = myCommand;
                myAdapter.Fill(myData);

                connection.Close();

                if (myData.Rows.Count != 0) {
                    for (int i = 0; i <= myData.Rows.Count - 1; i++) {
                        correo = new CorreoDTO();

                        correo.IdCorreo = int.Parse(myData.Rows[i].ItemArray.GetValue(0).ToString());
                        correo.Asunto = myData.Rows[i].ItemArray.GetValue(1).ToString();
                        correo.Detalle = myData.Rows[i].ItemArray.GetValue(2).ToString();
                        correo.TipoCorreo = Tipo.ENVIADO;                                           //!!!!!!!!

                        String fechaStr = myData.Rows[i].ItemArray.GetValue(4).ToString();
                        fechaStr = fechaStr.Substring(0, 10);

                        correo.Fecha = DateTime.Parse(fechaStr);

                        correo.Read = bool.Parse(myData.Rows[i].ItemArray.GetValue(5).ToString());
                        correo.IdCuenta = int.Parse(myData.Rows[i].ItemArray.GetValue(6).ToString());

                        List<OrigenDestinoDTO> direcciones = new List<OrigenDestinoDTO>();

                        try {
                            DataTable myDataDir = new DataTable();

                            myCommand.CommandText = "SELECT idorigendestino,direccion,cc,cco,correo_idcorreo FROM origendestino " +
                                "WHERE correo_idcorreo=?idcorreo";

                            myCommand.Parameters.Clear();
                            myCommand.Parameters.Add("?idcorreo", MySqlDbType.Int16).Value = correo.IdCorreo;

                            myAdapter.SelectCommand = myCommand;
                            myAdapter.Fill(myDataDir);

                            if (myDataDir.Rows.Count != 0) {
                                for (int j = 0; j <= myDataDir.Rows.Count - 1; j++) {
                                    OrigenDestinoDTO direccion = new OrigenDestinoDTO();

                                    direccion.IdOrigenDestino = int.Parse(myDataDir.Rows[j].ItemArray.GetValue(0).ToString());
                                    direccion.Direccion = myDataDir.Rows[j].ItemArray.GetValue(1).ToString();
                                    direccion.Cc = bool.Parse(myDataDir.Rows[j].ItemArray.GetValue(2).ToString());
                                    direccion.Cco = bool.Parse(myDataDir.Rows[j].ItemArray.GetValue(3).ToString());
                                    direccion.IdCorreo = int.Parse(myDataDir.Rows[j].ItemArray.GetValue(4).ToString());

                                    direcciones.Add(direccion);
                                }
                            }

                        }
                        catch (MySqlException e) { }

                        correo.OrigenDestino = direcciones;

                        List<AttachmentDTO> adjuntos = new List<AttachmentDTO>();
                        try
                        {
                            myCommand.CommandText = "SELECT idadjunto,detalle,path,correo_idcorreo FROM adjunto WHERE correo_idcorreo=?idcorreoo";
                            myCommand.Parameters.Add("?idcorreoo", MySqlDbType.Int16).Value = correo.IdCorreo;
                            DataTable myDataAdj = new DataTable();
                            myAdapter.SelectCommand = myCommand;
                            myAdapter.Fill(myDataAdj);

                            if (myDataAdj.Rows.Count != 0)
                            {
                                for (int j = 0; j <= myDataAdj.Rows.Count - 1; j++)
                                {
                                    AttachmentDTO adjunto = new AttachmentDTO();
                                    adjunto.IdAttachment = int.Parse(myDataAdj.Rows[j].ItemArray.GetValue(0).ToString());
                                    adjunto.Name = myDataAdj.Rows[j].ItemArray.GetValue(1).ToString();
                                    adjunto.Path = myDataAdj.Rows[j].ItemArray.GetValue(2).ToString();
                                    adjunto.IdCorreo = int.Parse(myDataAdj.Rows[j].ItemArray.GetValue(3).ToString());

                                    adjuntos.Add(adjunto);
                                }
                            }
                        }
                        catch (MySqlException e) { }

                        correo.Adjuntos = adjuntos;

                        correos.Add(correo);

                    }
                }
            }
            catch (MySqlException ex) { }

            return correos;
        }
示例#7
0
        /// <summary>
        /// Método para obtener un Correo.
        /// </summary>
        /// <param name="correo"></param>
        public CorreoDTO obtenerCorreo(CorreoDTO correo)
        {
            factory.startConnection();
            CorreoDTO correoObtenido = factory.getCorreo().get(correo);
            factory.closeConnection();

            return correoObtenido;
        }
示例#8
0
 /// <summary>
 /// Método para agregar un Correo.
 /// </summary>
 /// <param name="correo"></param>
 public void agregarCorreo(CorreoDTO correo)
 {
     factory.startConnection();
     factory.getCorreo().create(correo);
     factory.closeConnection();
 }
示例#9
0
 /// <summary>
 /// Método para marcar un Correo como leído o como no leído.
 /// </summary>
 /// <param name="correo"></param>
 public void marcarComoLeido(CorreoDTO correo, bool leido)
 {
     factory.startConnection();
     factory.getCorreo().markAsRead(correo, leido);
     factory.closeConnection();
 }
示例#10
0
 /// <summary>
 /// Método para modificar un Correo.
 /// </summary>
 /// <param name="correo"></param>
 public void modificarCorreo(CorreoDTO correo)
 {
     factory.startConnection();
     factory.getCorreo().update(correo);
     factory.closeConnection();
 }
示例#11
0
        private void tbResponder_Click(object sender, EventArgs e)
        {
            if (main.correoseleccionado == 0)
                return;

            CorreoDTO correo = new CorreoDTO();
            correo.IdCorreo = main.correoseleccionado;
            correo = Controller.Correo.getInstance().obtenerCorreo(correo);

            List<OrigenDestinoDTO> origenes = correo.OrigenDestino;

            frmNuevoCorreo nuevocorreo = new frmNuevoCorreo(main, "reply");
            nuevocorreo.PrepararParaResponder(correo);

            nuevocorreo.Show();

            this.Close();
        }
示例#12
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="correo"></param>
        /// <returns></returns>
        public CorreoDTO get(CorreoDTO correo)
        {
            CorreoDTO correoObtenido = new CorreoDTO();

            try {
                connection.Open();

                MySqlCommand myCommand = new MySqlCommand();
                MySqlDataAdapter myAdapter = new MySqlDataAdapter();
                DataTable myData = new DataTable();

                myCommand.Connection = connection;

                myCommand.CommandText = "SELECT idcorreo,asunto,detalle,tipocorreo,fecha,leido,server_idserver FROM correo WHERE idcorreo=?idcorreo";
                myCommand.Parameters.Add("?idcorreo", MySqlDbType.Int16).Value = correo.IdCorreo;

                myAdapter.SelectCommand = myCommand;
                myAdapter.Fill(myData);

                connection.Close();

                if (myData.Rows.Count != 0) {
                    for (int i = 0; i <= myData.Rows.Count - 1; i++) {
                        correoObtenido.IdCorreo = int.Parse(myData.Rows[i].ItemArray.GetValue(0).ToString()) ;
                        correoObtenido.Asunto = myData.Rows[i].ItemArray.GetValue(1).ToString();
                        correoObtenido.Detalle= myData.Rows[i].ItemArray.GetValue(2).ToString();
                        //correoObtenido.TipoCorreo = myData.Rows[i].ItemArray.GetValue(3).ToString();
                        correoObtenido.TipoCorreo = Tipo.RECIBIDO;
                        string fechaStr = myData.Rows[i].ItemArray.GetValue(4).ToString();
                        fechaStr = fechaStr.Substring(0, 10);
                        correoObtenido.Fecha= DateTime.Parse(fechaStr);
                        correoObtenido.Read = bool.Parse(myData.Rows[i].ItemArray.GetValue(5).ToString());
                        correoObtenido.NumeroServidorCorreo= int.Parse(myData.Rows[i].ItemArray.GetValue(6).ToString());

                        List<AttachmentDTO> adjuntos = new List<AttachmentDTO>();
                        try
                        {
                            myCommand.CommandText = "SELECT idadjunto,detalle,path,correo_idcorreo FROM adjunto WHERE correo_idcorreo=?idcorreoo";
                            myCommand.Parameters.Add("?idcorreoo", MySqlDbType.Int16).Value = correo.IdCorreo;
                            DataTable myDataAdj = new DataTable();
                            myAdapter.SelectCommand = myCommand;
                            myAdapter.Fill(myDataAdj);

                            if (myDataAdj.Rows.Count != 0) {
                                for (int j = 0; j <= myDataAdj.Rows.Count - 1; j++) {
                                    AttachmentDTO adjunto = new AttachmentDTO();
                                    adjunto.IdAttachment = int.Parse(myDataAdj.Rows[j].ItemArray.GetValue(0).ToString());
                                    adjunto.Name = myDataAdj.Rows[j].ItemArray.GetValue(1).ToString();
                                    adjunto.Path = myDataAdj.Rows[j].ItemArray.GetValue(2).ToString();
                                    adjunto.IdCorreo = int.Parse(myDataAdj.Rows[j].ItemArray.GetValue(3).ToString());

                                    adjuntos.Add(adjunto);
                                }
                            }
                        }
                        catch (MySqlException e) { }

                        correoObtenido.Adjuntos = adjuntos;

                        List<OrigenDestinoDTO> origenes = new List<OrigenDestinoDTO>();
                        try
                        {
                            myCommand.CommandText = "SELECT idorigendestino,direccion,cc,cco,correo_idcorreo FROM origendestino WHERE correo_idcorreo=?idcorreooo";
                            myCommand.Parameters.Add("?idcorreooo", MySqlDbType.Int16).Value = correo.IdCorreo;
                            DataTable myDataOri = new DataTable();
                            myAdapter.SelectCommand = myCommand;
                            myAdapter.Fill(myDataOri);

                            if (myDataOri.Rows.Count != 0) {
                                for (int j = 0; j <= myDataOri.Rows.Count - 1; j++) {
                                    OrigenDestinoDTO origen = new OrigenDestinoDTO();
                                    origen.IdOrigenDestino = int.Parse(myDataOri.Rows[j].ItemArray.GetValue(0).ToString());
                                    origen.Direccion = myDataOri.Rows[j].ItemArray.GetValue(1).ToString();
                                    origen.Cc = bool.Parse(myDataOri.Rows[j].ItemArray.GetValue(2).ToString());
                                    origen.Cco = bool.Parse(myDataOri.Rows[j].ItemArray.GetValue(3).ToString());
                                    origen.IdCorreo = int.Parse(myDataOri.Rows[j].ItemArray.GetValue(4).ToString());

                                    origenes.Add(origen);
                                }
                            }
                        }
                        catch (MySqlException e) { }

                        correoObtenido.OrigenDestino = origenes;
                    }
                }

            }
            catch (MySqlException ex) { }

            return correoObtenido;
        }
示例#13
0
        private void tbNoLeido_Click(object sender, EventArgs e)
        {
            if (correoseleccionado == 0)
                return;

            CorreoDTO correo = new CorreoDTO();
            correo.IdCorreo = correoseleccionado;
            Controller.Correo.getInstance().marcarComoLeido(correo,false);

            foreach (DataGridViewRow fila in dgvMensajes.SelectedRows)
            {
                dgvMensajes.Rows[fila.Index].Cells["Leido"].Value = "False";
            }

            cantidadNoLeidos = 0;
            foreach (DataGridViewRow fila in dgvMensajes.Rows)
            {
                if (fila.Cells["Leido"].Value.ToString() == "False" && selectednode == "inbox")
                {
                    dgvMensajes.Rows[fila.Index].DefaultCellStyle.BackColor = Color.FromArgb(204, 227, 245);
                    dgvMensajes.Rows[fila.Index].DefaultCellStyle.Font = new Font(dgvMensajes.DefaultCellStyle.Font, FontStyle.Bold);
                    cantidadNoLeidos++;
                }
            }

            ActualizarTreeView();
        }
示例#14
0
        private void tbEliminar_Click(object sender, EventArgs e)
        {
            if (main.correoseleccionado == 0)
                return;

            DialogResult res = MessageBox.Show("Está seguro de que desea eliminar este correo?", "Cliente de Correo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
            if (res == DialogResult.Yes)
            {
                CorreoDTO correo = new CorreoDTO();
                correo.IdCorreo = main.correoseleccionado;
                Controller.Correo.getInstance().eliminarCorreo(correo);
                MessageBox.Show("El mensaje ha sido eliminado.", "Cliente de Correo", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            else
            {
                return;
            }
        }
示例#15
0
        private void tbEliminar_Click(object sender, EventArgs e)
        {
            if (correoseleccionado == 0)
                return;
            if (dgvMensajes.SelectedRows.Count > 1)
            {
                DialogResult res = MessageBox.Show("Está seguro de que desea eliminar los correos seleccionados?", "Cliente de Correo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
                if (res == DialogResult.Yes)
                {
                    foreach (DataGridViewRow fila in dgvMensajes.SelectedRows)
                    {
                        CorreoDTO correo = new CorreoDTO();
                        correo.IdCorreo = int.Parse(fila.Cells["Id"].Value.ToString());
                        Controller.Correo.getInstance().eliminarCorreo(correo);
                    }

                    MessageBox.Show("Los correos han sido eliminados.", "Cliente de Correo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    return;
                }
            }
            else if (dgvMensajes.SelectedRows.Count == 1)
            {
                DialogResult res = MessageBox.Show("Está seguro de que desea eliminar este correo?", "Cliente de Correo", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2);
                if (res == DialogResult.Yes)
                {
                    CorreoDTO correo = new CorreoDTO();
                    correo.IdCorreo = correoseleccionado;
                    Controller.Correo.getInstance().eliminarCorreo(correo);
                    MessageBox.Show("El correo ha sido eliminado.", "Cliente de Correo", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    return;
                }
            }
        }
示例#16
0
        private void dgvMensajes_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (dgvMensajes.Rows.Count == 0)
                return;

            DataGridViewRow filaseleccionada = dgvMensajes.SelectedRows[0];
            int idmensaje = int.Parse(filaseleccionada.Cells["Id"].Value.ToString());

            //Creo la nueva ventana
            frmCorreo form = new frmCorreo(this);

            CorreoDTO correo = new CorreoDTO();
            correo.IdCorreo = idmensaje;

            form.ObtenerCorreo(correo);

            //Marcar como leído
            dgvMensajes.SelectedRows[0].DefaultCellStyle.Font = dgvMensajes.Font;
            dgvMensajes.SelectedRows[0].DefaultCellStyle.BackColor = dgvMensajes.DefaultCellStyle.BackColor;
            Controller.Correo.getInstance().marcarComoLeido(correo,true);

            //DataGridViewRow filaseleccionada = dgvMensajes.SelectedRows[0];
            filaseleccionada.Cells["Leido"].Value = "True";

            cantidadNoLeidos = 0;
            foreach (DataGridViewRow fila in dgvMensajes.Rows)
            {
                if (fila.Cells["Leido"].Value.ToString() == "False" && selectednode=="inbox")
                {
                    cantidadNoLeidos++;
                }
            }

            ActualizarTreeView();

            form.Show();
        }
示例#17
0
        /// <summary>
        /// Crea un nuevo Correo en la BBDD.
        /// </summary>
        /// <param name="correo"></param>
        /// <returns></returns>
        public int create(CorreoDTO correo)
        {
            int generatedKey = 0;

            try
            {
                connection.Open();

                MySqlCommand myCommand = new MySqlCommand();
                myCommand.Connection = connection;

                myCommand.CommandText = "INSERT INTO correo (cuenta_idcuenta,asunto,detalle,leido,tipocorreo,fecha,server_idserver) VALUES " +
                    "(?cuenta,?asunto,?detalle,?leido,?tipo,?fecha,?numserver)";

                myCommand.Parameters.Add("?cuenta", MySqlDbType.VarChar).Value = correo.IdCuenta;
                myCommand.Parameters.Add("?asunto", MySqlDbType.VarChar).Value = correo.Asunto;
                myCommand.Parameters.Add("?detalle", MySqlDbType.VarChar).Value = correo.Detalle;
                myCommand.Parameters.Add("?leido", MySqlDbType.VarChar).Value = correo.Read;
                myCommand.Parameters.Add("?tipo", MySqlDbType.VarChar).Value = correo.TipoCorreo;
                myCommand.Parameters.Add("?fecha", MySqlDbType.VarChar).Value = correo.Fecha;
                myCommand.Parameters.Add("?numserver", MySqlDbType.VarChar).Value = correo.NumeroServidorCorreo;

                generatedKey = myCommand.ExecuteNonQuery();

                List<AttachmentDTO> adjuntos = correo.Adjuntos;

                if (adjuntos != null) {
                    foreach (AttachmentDTO adjunto in adjuntos)
                    {

                        try
                        {
                            myCommand.CommandText = "SELECT LAST_INSERT_ID()";
                            string strId = myCommand.ExecuteScalar().ToString();
                            adjunto.IdCorreo = int.Parse(strId);
                        }
                        catch (MySqlException e)
                        {
                            adjunto.IdCorreo = 0;
                        }

                        //Necesito obtener el idcorreo generado en la query anterior.

                        try
                        {
                            myCommand.CommandText = "INSERT INTO adjunto (detalle,path,correo_idcorreo) VALUES " +
                                "(?detalleadj,?path,?correoid)";
                            myCommand.Parameters.Add("?detalleadj", MySqlDbType.VarChar).Value = adjunto.Name;
                            myCommand.Parameters.Add("?path", MySqlDbType.VarChar).Value = adjunto.Path;
                            myCommand.Parameters.Add("?correoid", MySqlDbType.Int16).Value = adjunto.IdCorreo;

                            myCommand.ExecuteNonQuery();
                        }
                        catch (MySqlException e) {
                            connection.Close();
                        }
                    }
                }

                List<OrigenDestinoDTO> destinos = correo.OrigenDestino;

                if (destinos != null) {
                    foreach (OrigenDestinoDTO destino in destinos)
                    {
                        destino.IdCorreo = generatedKey;

                        try
                        {
                            int idmaillocal = 0;
                            myCommand.CommandText = "SELECT MAX(idcorreo) FROM correo";

                            String strtemp = myCommand.ExecuteScalar().ToString();

                            idmaillocal = int.Parse(strtemp);

                            myCommand.CommandText = "INSERT INTO origendestino (direccion,cc,cco,correo_idcorreo) VALUES " +
                                "(?direccion,?cc,?cco,?correoidd)";
                            myCommand.Parameters.Add("?direccion", MySqlDbType.VarChar).Value = destino.Direccion;
                            myCommand.Parameters.Add("?cc", MySqlDbType.VarChar).Value = destino.Cc;
                            myCommand.Parameters.Add("?cco", MySqlDbType.VarChar).Value = destino.Cco;
                            myCommand.Parameters.Add("?correoidd", MySqlDbType.Int16).Value = idmaillocal;                  //destino.IdCorreo;

                            myCommand.ExecuteNonQuery();
                        }
                        catch (MySqlException e) {
                            connection.Close();
                        }
                    }
                }

            }
            catch (MySqlException ex) {
                connection.Close();
            }

            connection.Close();

            return generatedKey;
        }
示例#18
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="correo"></param>
 /// <returns></returns>
 public int update(CorreoDTO correo)
 {
     throw new NotImplementedException();
 }
示例#19
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="correo"></param>
        /// <returns></returns>
        public int markAsRead(CorreoDTO correo, bool leido)
        {
            int res = 0;

            try {
                connection.Open();

                MySqlCommand myCommand = new MySqlCommand();
                myCommand.Connection = connection;
                myCommand.CommandText = "UPDATE correo SET leido=?leido WHERE idcorreo=?idcorreo";

                if(leido)
                    myCommand.Parameters.Add("?leido", MySqlDbType.Int16).Value = 1;
                else
                    myCommand.Parameters.Add("?leido", MySqlDbType.Int16).Value = 0;

                myCommand.Parameters.Add("?idcorreo", MySqlDbType.Int16).Value = correo.IdCorreo;
                myCommand.ExecuteNonQuery();

                connection.Close();

                res = 1;
                return res;
            }
            catch (MySqlException ex) {
                return -1;
            }
        }
示例#20
0
        private void tbReenviar_Click(object sender, EventArgs e)
        {
            if (main.correoseleccionado == 0)
                return;

            CorreoDTO correo = new CorreoDTO();
            correo.IdCorreo = main.correoseleccionado;
            correo = Controller.Correo.getInstance().obtenerCorreo(correo);

            frmNuevoCorreo nuevocorreo = new frmNuevoCorreo(main, "forward");
            nuevocorreo.PrepararParaReenviar(correo);

            nuevocorreo.Show();
        }
示例#21
0
        public List<CorreoDTO> leerCorreo(CuentaDTO cuenta)
        {
            List<CorreoDTO> listaCorreos = new List<CorreoDTO>();

            try
            {
                ServerDTO server = new ServerDTO();
                server.Id = cuenta.Server;
                server = Server.getInstance().ObtenerServer(server);

                //Sesión
                AdminPop adminpop = new AdminPop();

                adminpop.ConectarPop(server, cuenta);

                List<MailMessage> listaMensajes = adminpop.ObtenerMensajes();

                //listaMensajes.Add(adminpop.ObtenerMensaje(30));
                //check fechas

                foreach (MailMessage mensajeObtenido in listaMensajes)
                {
                    CorreoDTO correo = new CorreoDTO();
                    correo.IdCuenta = cuenta.IdCuenta;

                    OrigenDestinoDTO od = new OrigenDestinoDTO();
                    List<OrigenDestinoDTO> listaOrigenes = new List<OrigenDestinoDTO>();

                    od.Direccion = PasajeCorreos.getInstance().obtenerCorreoBlank(mensajeObtenido.From.ToString());
                    od.Cco = false;
                    od.Cc = false;
                    correo.OrigenDestino = listaOrigenes;
                    correo.OrigenDestino.Add(od);

                    MailAddressCollection listaCC = mensajeObtenido.CC;

                    if (listaCC != null) {
                        foreach (MailAddress ma in listaCC) {
                            OrigenDestinoDTO ccdir = new OrigenDestinoDTO();
                            ccdir.Direccion = PasajeCorreos.getInstance().obtenerCorreoBlank(ma.ToString());
                            ccdir.Cc = true;
                            ccdir.Cco = false;
                            correo.OrigenDestino.Add(ccdir);
                        }

                    }

                    AttachmentCollection coleccionadjuntos = mensajeObtenido.Attachments;
                    List<AttachmentDTO> adjuntos = new List<AttachmentDTO>();

                    if (coleccionadjuntos.Count > 0)
                    {

                        //No puedo usar esto porque previamente limpié la tabla de correos, por lo tanto no hay id.
                        //int maxid = Controller.Correo.getInstance().UltimoIdCorreo(cuenta);

                        foreach (Attachment adj in coleccionadjuntos)
                        {
                            AttachmentDTO adjunto = new AttachmentDTO();

                            //adjunto.IdCorreo = maxid + 1;
                            adjunto.Name = adj.Name;
                            adjunto.Path = adj.ContentStream.ToString();        //OJO

                            adjuntos.Add(adjunto);
                        }
                    }

                    correo.Adjuntos = adjuntos;

                    //MIRAR ACA
                    string fechaStr = mensajeObtenido.Subject.Substring(mensajeObtenido.Subject.Length - 10, 10);

                    correo.Fecha = DateTime.Parse(fechaStr);

                    correo.Asunto = mensajeObtenido.Subject.Substring(0, (mensajeObtenido.Subject.Length - 10));
                    correo.NumeroServidorCorreo = mensajeObtenido.To.Count;

                    correo.Detalle = mensajeObtenido.Body;

                    correo.TipoCorreo = Tipo.RECIBIDO;
                    listaCorreos.Add(correo);
                }

            }
            catch (ArgumentNullException ex) {

            }

            return listaCorreos;
        }
示例#22
0
 /// <summary>
 /// Método para obtener la cuenta a partir de un correo.
 /// </summary>
 /// <param name="correo">Correo del que se quiere obtener la cuenta</param>
 /// <returns>CuentaDTO del correo</returns>
 public CuentaDTO ObtenerCuentaDeCorreo(CorreoDTO correo)
 {
     CuentaDTO cuentaObtenida = new CuentaDTO();
     cuentaObtenida.IdCuenta = correo.IdCuenta;
     factory.startConnection();
     cuentaObtenida = factory.getCuenta().get(cuentaObtenida);
     factory.closeConnection();
     return cuentaObtenida;
 }
示例#23
0
        /// <summary>
        /// 
        /// </summary>
        /// <param name="correo"></param>
        /// <returns></returns>
        public int delete(CorreoDTO correo)
        {
            int res = 0;

            try
            {
                connection.Open();

                MySqlCommand myCommand = new MySqlCommand();
                myCommand.Connection = connection;

                myCommand.CommandText = "DELETE FROM adjunto WHERE correo_idcorreo=?idcorreoo";
                myCommand.Parameters.Add("?idcorreoo", MySqlDbType.Int16).Value = correo.IdCorreo;

                myCommand.ExecuteNonQuery();

                myCommand.CommandText = "DELETE FROM origendestino WHERE correo_idcorreo=?idcorreooo";
                myCommand.Parameters.Add("?idcorreooo", MySqlDbType.Int16).Value = correo.IdCorreo;

                myCommand.ExecuteNonQuery();

                myCommand.CommandText = "DELETE FROM correo WHERE idcorreo=?idcorreo";
                myCommand.Parameters.Add("?idcorreo", MySqlDbType.Int16).Value = correo.IdCorreo;

                myCommand.ExecuteNonQuery();

                connection.Close();

                res = 1;
                return res;
            }
            catch (MySqlException ex) {
                res = -1;
                return res;
            }
        }