public static void InformarNuevoGrupo(ChatEntity chat, string usuarios, int idOwner) { //agrego el owner a participantes usuarios += "," + idOwner.ToString(); DTONuevoChat nuevoChat = new DTONuevoChat() { IdChat = chat.IdChat, Nombre = chat.Nombre, Participantes = usuarios.Split(',').Select(x => new DTOUsuario() { IdUsuario = int.Parse(x) }).ToList(), IdOwner = idOwner, Fecha = chat.Fecha }; WCFHelper.ExecuteService <IChatService>(ConfiguracionSistemaURLsEnumDestino.ChatService, i => i.InformarNuevoGrupo(nuevoChat)); }
public static void InformarNuevoMensaje(int idChat, string mensaje, int idUsuarioOrigen, int idChatMensaje) { List <DTOUsuario> participantes; ChatEntity chat; string nombreChat; using (OrdenesContext mc = new OrdenesContext()) { participantes = (from p in mc.ChatUsuarios where p.IdChat == idChat select new DTOUsuario() { IdUsuario = p.IdUsuario }).ToList(); chat = (from c in mc.Chats where c.IdChat == idChat select c).FirstOrDefault(); if (chat.EsGrupo) { nombreChat = chat.Nombre; } else { //Si no es grupo, en participantes solo hay 2 usuarios, porque es chat individual. Como busco la contraparte, pongo que sea distinto a idUsuarioOrigen int idContraparte = participantes.Find(x => x.IdUsuario != idUsuarioOrigen).IdUsuario; nombreChat = (from u in mc.Usuario where u.IdUsuario == idContraparte select u).FirstOrDefault().Username; } } DTONuevoMensajeChat nuevoMensajeChat = new DTONuevoMensajeChat() { IdChat = idChat, Mensaje = mensaje, Target = nombreChat, Participantes = participantes, Fecha = DateTime.Now, EsGrupo = chat.EsGrupo, IdUsuarioOrigen = idUsuarioOrigen, UsernameOrigen = MAEUserSession.Instancia.UserName, IdChatMensaje = idChatMensaje }; WCFHelper.ExecuteService <IChatService>(ConfiguracionSistemaURLsEnumDestino.ChatService, i => i.InformarNuevoMensaje(nuevoMensajeChat)); }
public static void PublicarMensajes(DTOChat chat) { WCFHelper.ExecuteService <IChatService>(ConfiguracionSistemaURLsEnumDestino.ChatService, i => i.EnviarMensaje(chat)); }