//clase Conexion
using System.Data.Linq.Mapping;
using System.Data.Linq;
namespace Chat_Darwin
{
class MyDataBase : DataContext
{
public MyDataBase() : base(Properties.Settings.Default.cadenaConexion) { }
public Table<Usuario> usuarios;
public Table<Conversacion> conversaciones;
public Table<Mensaje> mensajes;
}
}
//*********************************************************************************************
//Clase Usuario//********************************
using System.Data.Linq.Mapping;
namespace Chat_Darwin
{
[Table(Name="usuario")]
public class Usuario
{
[Column(IsPrimaryKey=true, AutoSync=AutoSync.OnInsert, IsDbGenerated=true)]
public int id_User;
[Column]
public String nombre;
[Column]
public String login;
[Column]
public String password;
public override string ToString()
{
return this.login;
}
}
}
//***************************************************************************************************************
//Clase conversacion//********************************************
using System.Data.Linq.Mapping;
namespace Chat_Darwin
{
[Table(Name="conversacion")]
public class Conversacion
{
[Column(IsPrimaryKey=true, AutoSync=AutoSync.OnInsert, IsDbGenerated=true)]
public int id_Conversacion;
[Column]
public String tema_conversacion;
public override string ToString()
{
return this.tema_conversacion;
}
}
}
//********************************************************************************************************
//Clase Mensaje//**********************************************************
using System.Data.Linq.Mapping;
namespace Chat_Darwin
{
[Table(Name="mensaje")]
public class Mensaje
{
[Column(IsPrimaryKey=true, AutoSync=AutoSync.OnInsert, IsDbGenerated=true)]
public int id_Mensaje;
[Column]
public String texto;
[Column]
public int user_Id;
[Column]
public int conversacion_Id;
public override string ToString()
{
return this.id_Mensaje + " " + this.texto + " " +this.user_Id+ " " +this.conversacion_Id;
}
}
}
//****************************************************************************************************
//*Formulario Login
namespace Chat_Darwin
{
public partial class Login : Form
{
MyDataBase myDB = new MyDataBase();
List<Usuario> lista_Usuario = new List<Usuario>();
Usuario usu1 = new Usuario();
List<Conversacion> lista_Conversacion = new List<Conversacion>();
Conversacion conver1 = new Conversacion();
public Login()
{
InitializeComponent();
}
public Login(List<Usuario> i_lista_Usuario, List<Conversacion> i_lista_Conversacion, Usuario i_usu1, Conversacion i_conver1)
{
conver1 = i_conver1;
usu1 = i_usu1;
lista_Conversacion = i_lista_Conversacion;
lista_Usuario = i_lista_Usuario;
InitializeComponent();
}
private void Login_Load(object sender, EventArgs e)
{
}
private void btn_Registrar_Click(object sender, EventArgs e)
{
Crear_Cuenta crear = new Crear_Cuenta(lista_Usuario, lista_Conversacion, usu1, conver1);
crear.Show();
this.Hide();
}
private void btn_Ingresar_Click(object sender, EventArgs e)
{
var consulta_Usuario = from user in this.myDB.usuarios
select new
{
id_usu = (int)user.id_User,
nombre_usu = (String)user.nombre,
login_usu = (String)user.login,
password_usu = (String)user.password
};
foreach (var u in consulta_Usuario)
{
if (u.login_usu==txt_Username.Text && u.password_usu==txt_Password.Text)
{
usu1.id_User = u.id_usu;
usu1.nombre = u.nombre_usu;
usu1.login = u.login_usu;
usu1.password = u.password_usu;
lista_Usuario.Add(usu1);
this.Hide();
Lista_Conversaciones listaConversacion = new Lista_Conversaciones(lista_Usuario, lista_Conversacion, usu1, conver1);
listaConversacion.Show();
}
}
}
}
}
//*******************************************************************
//Formulario Crear_Cuenta
namespace Chat_Darwin
{
public partial class Crear_Cuenta : Form
{
MyDataBase myDB = new MyDataBase();
List<Usuario> lista_Usuario = new List<Usuario>();
Usuario usu1 = new Usuario();
List<Conversacion> lista_Conversacion = new List<Conversacion>();
Conversacion conver1 = new Conversacion();
public Crear_Cuenta()
{
InitializeComponent();
}
public Crear_Cuenta(List<Usuario> i_lista_Usuario, List<Conversacion> i_lista_Conversacion, Usuario i_usu1, Conversacion i_conver1)
{
conver1 = i_conver1;
usu1 = i_usu1;
lista_Conversacion = i_lista_Conversacion;
lista_Usuario = i_lista_Usuario;
InitializeComponent();
}
private void Crear_Cuenta_Load(object sender, EventArgs e)
{
}
private void btn_Guardar_Click(object sender, EventArgs e)
{
usu1.nombre = txt_Nombre.Text;
usu1.login = txt_Username.Text;
usu1.password = txt_Password.Text;
lista_Usuario.Add(usu1);
myDB.usuarios.InsertOnSubmit(usu1);
myDB.SubmitChanges();
txt_Nombre.Clear();
txt_Username.Clear();
txt_Password.Clear();
Login log = new Login(lista_Usuario, lista_Conversacion, usu1, conver1);
log.Show();
this.Hide();
}
}
}
//***********************************************************************
//Formulario Lista_conversaciones
namespace Chat_Darwin
{
public partial class Lista_Conversaciones : Form
{
MyDataBase myDB = new MyDataBase();
List<Usuario> lista_Usuario = new List<Usuario>();
Usuario usu1 = new Usuario();
List<Conversacion> lista_Conversacion = new List<Conversacion>();
Conversacion conver1 = new Conversacion();
//List<Mensaje> lista_Mensaje = new List<Mensaje>();
public Lista_Conversaciones()
{
InitializeComponent();
}
public Lista_Conversaciones(List<Usuario> i_lista_Usuario, List<Conversacion> i_lista_Conversacion, Usuario i_usu1, Conversacion i_conver1)
{
conver1 = i_conver1;
usu1 = i_usu1;
lista_Conversacion = i_lista_Conversacion;
lista_Usuario = i_lista_Usuario;
InitializeComponent();
}
private void Lista_Conversaciones_Load(object sender, EventArgs e)
{
this.tema_Actual();
lbl_Nombre.Text = usu1.nombre;
}
public void tema_Actual()
{
lst_Tema.Items.Clear();
var temas_Conversacion = from t_conversacion in this.myDB.conversaciones
select new
{
id = (int)t_conversacion.id_Conversacion,
temas = (String)t_conversacion.tema_conversacion
};
foreach (var c in temas_Conversacion)
{
lst_Tema.Items.Add(c.temas);
}
}
private void btn_Actualizar_Click(object sender, EventArgs e)
{
this.tema_Actual();
}
private void btn_Tema_Click(object sender, EventArgs e)
{
Usuario u = new Usuario();
Conversacion c = new Conversacion();
c.tema_conversacion = txt_Tema.Text;
foreach (Usuario usu in lista_Usuario)
{
c.id_Conversacion = usu.id_User;
}
lista_Conversacion.Add(c);
myDB.conversaciones.InsertOnSubmit(c);
myDB.SubmitChanges();
this.tema_Actual();
}
private void btn_Ir_Click(object sender, EventArgs e)
{
String seleccion_Tema = (String)lst_Tema.SelectedItem.ToString();
var item_Selecccionado = from tema in this.myDB.conversaciones
where tema.tema_conversacion == seleccion_Tema && tema.id_Conversacion>0
select new
{
id_Conver = (int)tema.id_Conversacion,
tema_Conver = (String)tema.tema_conversacion
};
foreach (var c in item_Selecccionado)
{
if (c.tema_Conver == seleccion_Tema)
{
//Usuario usu = new Usuario();
usu1.id_User = usu1.id_User;
usu1.nombre = usu1.nombre;
lista_Usuario.Add(usu1);
conver1.id_Conversacion = c.id_Conver;
conver1.tema_conversacion = c.tema_Conver;
lista_Conversacion.Add(conver1);
//this.Hide();
Chat ch = new Chat(lista_Usuario, lista_Conversacion, usu1, conver1);
ch.Show();
}
}
}
private void lst_Tema_SelectedIndexChanged(object sender, EventArgs e)
{
//txt_Tema.Text = seleccion_Tema;
}
}
}
//*********************************************************************
//Formulario Chat**************************************************
namespace Chat_Darwin
{
public partial class Chat : Form
{
MyDataBase myDB = new MyDataBase();
List<Usuario> lista_Usuario = new List<Usuario>();
Usuario usu1 = new Usuario();
List<Conversacion> lista_Conversacion = new List<Conversacion>();
Conversacion conver1 = new Conversacion();
//List<Mensaje> lista_Mensaje = new List<Mensaje>();
public Chat()
{
InitializeComponent();
}
public Chat(List<Usuario> i_lista_Usuario, List<Conversacion> i_lista_Conversacion, Usuario i_usu1, Conversacion i_conver1)
{
conver1 = i_conver1;
usu1 = i_usu1;
lista_Usuario = i_lista_Usuario;
lista_Conversacion = i_lista_Conversacion;
InitializeComponent();
}
private void Chat_Load(object sender, EventArgs e)
{
this.mensajes_Actual();
lbl_Tema.Text = "TEMA: "+conver1.tema_conversacion;
lbl_User.Text = "NOMBRE: "+usu1.nombre;
}
public void mensajes_Actual()
{
//llamar al id de la conversacion y del usuario para llamar al mensaje
Conversacion c = new Conversacion();
lst_Chat.Items.Clear();
var iter_Mensajes = from temaMensaje in this.myDB.mensajes
//where temaMensaje.conversacion_Id==Convert.ToInt32(lbl_Tema.Text) && temaMensaje.user_Id==Convert.ToInt32(lbl_User.Text)
where temaMensaje.id_Mensaje == conver1.id_Conversacion && temaMensaje.id_Mensaje==usu1.id_User
select new
{
id_Mensaje = (int)temaMensaje.id_Mensaje,
mensaje = (String)temaMensaje.texto
//id_user = (int)temaMensaje.user_Id,
//id_conver = (int)temaMensaje.conversacion_Id
};
foreach(var t in iter_Mensajes)
{
lst_Chat.Items.Add(t.id_Mensaje+". "+t.mensaje);
}
}
private void btn_Actualizar_Click(object sender, EventArgs e)
{
this.mensajes_Actual();
}
private void btn_Ok_Click(object sender, EventArgs e)
{
this.mensajes_Actual();
Mensaje m = new Mensaje();
m.texto = txt_Chat.Text;
m.user_Id = usu1.id_User;
m.conversacion_Id = conver1.id_Conversacion;
myDB.mensajes.InsertOnSubmit(m);
myDB.SubmitChanges();
}
}
}