//Implementación método Conectar public bool Conectar(Cliente c) { if (!Clientes.ContainsValue(ActualRespuesta) && !BuscarCliente(c.Usuario)) { //bloqueo de exclusión mutua lock (ObjetoBloqueo) { Clientes.Add(c, ActualRespuesta); ListaClientes.Add(c); foreach (Cliente cl in Clientes.Keys) { IChatRespuesta Respuesta = Clientes[cl]; try { Respuesta.RefrescarClientes(ListaClientes); Respuesta.Unirse(c); } catch { Clientes.Remove(cl); return(false); } } } return(true); } return(false); }
public void EnviarArchivo(FileMessage fileMsg) { foreach (Cliente rcvr in Clientes.Values) { Mensaje ms = new Mensaje(); ms.Remitente = fileMsg.Remitente; ms.Contenido = "Enviando archivo: " + fileMsg.NombreArchivo; IChatRespuesta rcvCall = Clientes[rcvr]; rcvCall.RecibirArchivo(fileMsg); foreach (Cliente Remitente in Clientes.Values) { if (Remitente.Usuario == fileMsg.Remitente) { IChatRespuesta sndrCall = Clientes[Remitente]; sndrCall.RecibirArchivo(fileMsg); } } } }