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;
            }
        }
Exemple #4
0
        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");
            }
        }