Example #1
0
        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);
        }
Example #2
0
        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");
        }
Example #3
0
 public void AddConversation(PrivateChat privateChat) => PrivateChats.Add(privateChat.GetOtherParticipant(this).Id, privateChat);