private async Task <List <ChatMessageDataTemplate> > LoadMoreMamMessagesAsync() { Logger.Info("Requesting MAM messages for \"" + MODEL.Chat.Chat.id + "\"."); QueryFilter filter = GenerateMamQueryFilter(); // For MUCs ask the MUC server and for everything else ask our own server for messages: string target = MODEL.Chat.Chat.chatType == ChatType.CHAT ? MODEL.Chat.Client.getXMPPAccount().getBareJid() : MODEL.Chat.Chat.chatJabberId; MessageResponseHelperResult <MamResult> result = await MODEL.Chat.Client.GENERAL_COMMAND_HELPER.requestMamAsync(filter, target); if (result.STATE == MessageResponseHelperResultState.SUCCESS) { Logger.Info("Found " + result.RESULT.COUNT + " MAM messages for \"" + MODEL.Chat.Chat.id + "\"."); Logger.Debug("MAM result: " + result.RESULT.ToString()); mamRequested = result.RESULT.COMPLETE; List <ChatMessageDataTemplate> msgs = new List <ChatMessageDataTemplate>(); foreach (QueryArchiveResultMessage msg in result.RESULT.RESULTS) { ChatMessageDataTemplate tmp = new ChatMessageDataTemplate { Message = new ChatMessageTable(msg.MESSAGE, MODEL.Chat.Chat), Chat = MODEL.Chat.Chat, MUC = MODEL.Chat.MucInfo }; msgs.Add(tmp); await ChatDBManager.INSTANCE.setChatMessageAsync(tmp.Message, false, false); } return(msgs); } else { Logger.Error("Failed to load more MAM messages for \"" + MODEL.Chat.Chat.id + "\". Failed with: " + result.STATE); return(new List <ChatMessageDataTemplate>()); } }
public void Decline(ChatMessageDataTemplate msg) { MODEL.Invite.state = MucDirectInvitationState.DECLINED; using (MainDbContext ctx = new MainDbContext()) { ctx.Update(MODEL.Invite); } }
public void Accept(ChatMessageDataTemplate msg) { MODEL.Invite.state = MucDirectInvitationState.ACCEPTED; using (MainDbContext ctx = new MainDbContext()) { ctx.Update(MODEL.Invite); } }
//--------------------------------------------------------Constructor:----------------------------------------------------------------\\ #region --Constructors-- #endregion //--------------------------------------------------------Set-, Get- Methods:---------------------------------------------------------\\ #region --Set-, Get- Methods-- #endregion //--------------------------------------------------------Misc Methods:---------------------------------------------------------------\\ #region --Misc Methods (Public)-- public void UpdateView(DependencyPropertyChangedEventArgs args) { if (!(ChatMessageModel is null)) { ChatMessageModel.PropertyChanged -= ChatMessage_PropertyChanged; } if (args.NewValue is ChatMessageDataTemplate newChatMessage) { ChatMessageModel = newChatMessage; ChatMessageModel.PropertyChanged += ChatMessage_PropertyChanged; MODEL.UpdateView(ChatMessageModel.Chat, ChatMessageModel.Message); } }
public async Task DeclineAsync(ChatMessageDataTemplate msg) { await Task.Run(async() => await ChatDBManager.INSTANCE.deleteChatMessageAsync(msg.Message, true)); }
public async Task AcceptAsync(ChatMessageDataTemplate msg) { await Task.Run(() => ChatDBManager.INSTANCE.setMUCDirectInvitationState(msg.Message.id, MUCDirectInvitationState.ACCEPTED)); }