public bool SendMessageToUser(User toUser, string content) { if (!PrivateChats.ContainsKey(toUser.Id)) { return(false); } var privateChat = PrivateChats[toUser.Id]; privateChat.SendMessage(new Message(content)); return(true); }
private string MessagesEventsFunc(MessageEvent messageEvent) { if (messageEvent.statusType == "Send") { int _id = Convert.ToInt32(this.id); if (messageEvent.recipientTtype == "chat") { PrivateChats privateChatSend = db.PrivateChats.Where(pc => pc.chatId == messageEvent.recipientIid).FirstOrDefault(); int[] ids_rec = new int[1]; ids_rec[0] = privateChatSend.user_1_Id == _id ? privateChatSend.user_2_Id : privateChatSend.user_1_Id; server.BroadcastMessage(SaveAfterReceiveMessage(messageEvent), ids_rec); } else if (messageEvent.recipientTtype == "group") { GroupsMembers groupsMemberSend = db.GroupsMembers.Where(gm => gm.groupId == messageEvent.recipientIid).FirstOrDefault(); var userArr = from u in db.Users join gm in db.GroupsMembers on u.userId equals gm.userId where gm.groupId == messageEvent.recipientIid && gm.userId != _id select u.userId; int[] ids_rec = new int[userArr.Count()]; for (int i = 0; i < userArr.Count(); i++) { ids_rec[i] = userArr.ElementAt(i); } server.BroadcastMessage(SaveAfterReceiveMessage(messageEvent), ids_rec); } return("ok"); } else if (messageEvent.statusType == "Delete") { List <MessageEvent> listDeleted = new List <MessageEvent>(); for (int i = 0; i < messageEvent.messages.Count(); i++) { int id_del = messageEvent.messages.Keys.ElementAt(i); userMessages delMessage = db.userMessages.Where(um => um.messageId == id_del).FirstOrDefault(); listDeleted.Add(new MessageEvent { statusType = "respounseDelete", recipientTtype = messageEvent.recipientTtype, recipientIid = messageEvent.recipientIid, eventTime = messageEvent.eventTime, messages = messageEvent.messages }); db.userMessages.Remove(delMessage); } db.SaveChanges(); } else if (messageEvent.statusType == "Update") { int id_update = messageEvent.messages.Keys.ElementAt(0); userMessages updateMessage = db.userMessages.Where(um => um.messageId == id_update).FirstOrDefault(); db.SaveChanges(); } else if (messageEvent.statusType == "ReSend") { } return("kk"); }
public void AddConversation(PrivateChat privateChat) => PrivateChats.Add(privateChat.GetOtherParticipant(this).Id, privateChat);