public void BroadCast(Mensagem m) { foreach (var item in Participantes) { item.Mensagens.Add(m); } }
public ActionResult Send(string conv, string mensagem) { if (conv == null || mensagem == null) { return HttpNotFound(); } //Proíbe usuário de enviar mensagem para ele mesmo if (conv == User.Identity.Name) { return HttpNotFound(); } Usuario usuario = db.Usuarios.FirstOrDefault(x => x.UsuarioNome == conv); //Nome da conversa não é um usuário //Implementar lógica de grupos if (usuario == null) { return HttpNotFound(); } Conversa conversa = db.Conversas.FirstOrDefault(x => x.Participantes.FirstOrDefault(y => y.UsuarioNome == User.Identity.Name) != null && x.Participantes.FirstOrDefault(z => z.UsuarioNome == conv) != null); if (conversa == null) { conversa = new Conversa(); db.Conversas.Add(conversa); Usuario eu = db.Usuarios.FirstOrDefault(x => x.UsuarioNome == User.Identity.Name); conversa.Participantes.Add(eu); conversa.Participantes.Add(usuario); } Mensagem m = new Mensagem(User.Identity.Name, mensagem, DateTime.Now.Ticks); conversa.Mensagens.Add(m); conversa.BroadCast(m); db.SaveChanges(); return new HttpStatusCodeResult(200); }