public void PrepararParaReenviar(CorreoDTO oCorreo) { if (tipo == "forward") { txtAsunto.Text = "FWD: " + oCorreo.Asunto; txtMensaje.Text = oCorreo.Detalle; } }
public void ObtenerCorreo(CorreoDTO oCorreo) { try { correo = new CorreoDTO(); correo = Controller.Correo.getInstance().obtenerCorreo(oCorreo); CargarCorreo(); //Pasar a Leido //Cargo adjuntos } catch (Exception ex) { } }
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) { } }
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; } }
/// <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(); }
/// <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; }
/// <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; }
/// <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(); }
/// <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(); }
/// <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(); }
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(); }
/// <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; }
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(); }
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; } }
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; } } }
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(); }
/// <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; }
/// <summary> /// /// </summary> /// <param name="correo"></param> /// <returns></returns> public int update(CorreoDTO correo) { throw new NotImplementedException(); }
/// <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; } }
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(); }
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; }
/// <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; }
/// <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; } }