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())); }