public int Insertar(Mensaje mensaje, UsuarioCompleto usuario) { consulta_conversacion cc; DateTime fecha = DateTime.Now; try { if (mensaje.id_conversacion == 0) { cc = new consulta_conversacion(); cc.asunto = mensaje.Asunto; cc.id_usuario_remitente = mensaje.id_remitente; cc.f_ultimo_mensaje = fecha; cc.cerrada = false; c.consulta_conversacion.Add(cc); c.SaveChanges(); mensaje.id_conversacion = cc.id_consulta_conversacion; } else { cc = (from co in c.consulta_conversacion where co.id_consulta_conversacion == mensaje.id_conversacion select co).FirstOrDefault(); if (cc.id_usuario_destinatario == null && cc.id_usuario_remitente != mensaje.id_remitente) { cc.id_usuario_destinatario = mensaje.id_remitente; } cc.f_ultimo_mensaje = fecha; c.Entry(cc); c.SaveChanges(); } consulta_mensaje cm = new consulta_mensaje(); cm.mensaje = mensaje.Texto; cm.f_mensaje = fecha; cm.id_consulta_conversacion = mensaje.id_conversacion; cm.id_usuario_remitente = mensaje.id_remitente; cm.leido = false; c.consulta_mensaje.Add(cm); c.SaveChanges(); return(mensaje.id_conversacion); } catch (Exception) { throw; } }
public void CerrarConversacion(int id_consulta_conversacion) { try { consulta_conversacion cc = (from co in c.consulta_conversacion where co.id_consulta_conversacion == id_consulta_conversacion select co).FirstOrDefault(); cc.cerrada = true; c.Entry(cc); c.SaveChanges(); } catch (Exception) { throw; } }
public List <consulta_mensaje> ListarMensajes(int id_consulta_conversacion, UsuarioCompleto usuario) { try { bool proDes = false; if (usuario.Usuario.id_usuario_tipo == 2) //Profesional { consulta_conversacion co = (from cc in c.consulta_conversacion where cc.id_consulta_conversacion == id_consulta_conversacion select cc).FirstOrDefault(); proDes = (co.id_usuario_destinatario == usuario.Usuario.id_usuario); } var query = (from cm in c.consulta_mensaje where cm.id_consulta_conversacion == id_consulta_conversacion orderby cm.f_mensaje ascending select cm).ToList(); if (proDes || usuario.Usuario.id_usuario_tipo == 1) //Paciente { foreach (var mensaje in query) { if (mensaje.id_usuario_remitente != usuario.Usuario.id_usuario) { mensaje.leido = true; c.Entry(mensaje); c.SaveChanges(); } } } return(query); } catch (Exception) { throw; } }
private void CargaMensajes(int id_conversacion) { try { consulta_conversacion cc = cr.GetConversacion(id_conversacion); Panel pnlMensaje; Label lblMensaje; Label lblFecha; TxtAsunto.Text = cc.asunto; TxtAsunto.Enabled = false; foreach (var item in cr.ListarMensajes(id_conversacion, usuario)) { pnlMensaje = new Panel(); pnlMensaje.CssClass = "msj"; if (this.usuario.Usuario.id_usuario == item.id_usuario_remitente) { pnlMensaje.CssClass += " msj-enviado"; } else { pnlMensaje.CssClass += " msj-recibido"; } lblMensaje = new Label(); lblMensaje.Text = item.mensaje; lblFecha = new Label(); lblFecha.Text = item.f_mensaje.ToString(); lblFecha.CssClass = "msj-fecha"; pnlMensaje.Controls.Add(lblMensaje); pnlMensaje.Controls.Add(lblFecha); pnlMsjs.Controls.Add(pnlMensaje); } if (cc.cerrada) { lblCerrada.Visible = true; btnCerrar.Visible = false; pnlNuevoMsj.Visible = false; } else { if (this.usuario.Usuario.id_usuario == cc.id_usuario_destinatario || this.usuario.Usuario.id_usuario == cc.id_usuario_remitente) { lblCerrada.Visible = false; btnCerrar.Visible = true; pnlNuevoMsj.Visible = true; } else { lblCerrada.Visible = false; btnCerrar.Visible = false; pnlNuevoMsj.Visible = true; } } SetSessionIdConversacion(id_conversacion); CargaConversaciones(); } catch (Exception) { Response.Redirect("~/Error.aspx"); } }