Пример #1
0
        public void SendMessage(AbstractMessage message, ChatSession chatSession)
        {
            ChatUser user;
            Guid     messageID = Guid.NewGuid();

            (message as AbstractMessage).ID     = messageID;
            (message as AbstractMessage).Author = chatSession.Owner.ID;

            //Store
            if (message is VideoMessage || message is ImageMessage)
            {
                MediaID.Add((message as AbstractMessage).ID);
            }
            if (message is AttachmentMessage)
            {
                AttachmentID.Add((message as AbstractMessage).ID);
            }
            if (message is StickerMessage)
            {
                chatSession.Owner.NearestStickers.Add((message as StickerMessage).StickerID);
                chatSession.Owner.Save();
            }

            MessagesID.Add((message as AbstractMessage).ID);
            LoadedMessages.AddReplace((message as AbstractMessage).ID, message);

            store.UpdateMessagesList(this);
            messageStore.Save((message as AbstractMessage), this.ID);

            foreach (Guid userID in Members)
            {
                this.LastActive = DateTime.Now.Ticks;

                if (ChatUserManager.OnlineUsers.TryGetValue(userID, out user))
                {
                    //if (userID.CompareTo(chatSession.Owner.ID) == 0)
                    //    continue;

                    SendMessageResponse packet = new SendMessageResponse();
                    packet.ConversationID = this.ID.ToString();
                    packet.Message        = message;
                    packet.SenderID       = chatSession.Owner.ID.ToString();
                    user.Send(packet, chatSession); //Add message packet here

                    user.Conversations.TryRemove(ID, out long lact);
                    user.Conversations.TryAdd(ID, LastActive);
                }
            }
        }
 private string GetDistinctString(bool ShowPathInfo)
 {
     return(String.Format(@"SeqID = {0}, AttachmentID = {1}", SeqID, AttachmentID.Trim()));
 }