public override async void OnNavigatingTo(INavigationParameters parameters) { if (parameters.GetNavigationMode() == NavigationMode.New) { var dbChats = await _database.Chats.GetAll(); AreChatsEmpty = dbChats.Count == 0; var chatEntries = new List <ChatEntry>(); foreach (var dbChat in dbChats) { var chatEntry = dbChat.ToChatEntry(); if (chatEntry.LastMessage != null) { if (chatEntry.Type == ChatType.Normal) { chatEntry.LastMessage.Decrypt(_walletManager.Wallet, chatEntry.ChatPartner.PublicKey); } else if (chatEntry.Type == ChatType.Group) { var privKey = chatEntry.GroupInfo.IsPublic ? chatEntry.GroupInfo.PrivateKey : _walletManager.Wallet.Decrypt(chatEntry.GroupInfo.PrivateKey, chatEntry.GroupInfo.PublicKey); chatEntry.LastMessage.Decrypt(privKey, chatEntry.LastMessage.Sender.PublicKey); } } var dbLastReadMessageID = await _database.LastReadMessageIDs.GetByChatID(chatEntry.ID); chatEntry.UpdateUnreadMessageCount(dbLastReadMessageID != null ? dbLastReadMessageID.LastReadID : 0); chatEntries.Add(chatEntry); } ChatEntries = new ExtendedObservableCollection <ChatEntry>(chatEntries); ChatEntries.Sort(false); // BETA await TryJoinPublicBetaGroup(); } else if (parameters.GetNavigationMode() == NavigationMode.Back) // Navigated back to this page { try { foreach (var chatEntry in ChatEntries.ToList()) { var dbLastReadMessageID = await _database.LastReadMessageIDs.GetByChatID(chatEntry.ID); chatEntry.UpdateUnreadMessageCount(dbLastReadMessageID != null ? dbLastReadMessageID.LastReadID : 0); } } catch (Exception ex) { Debug.WriteLine(ex); } } CheckFreeUsage(); }
protected override void MoveElement(int ID, float Value) { if (this.ID == ID) { Application.Current.Dispatcher.Invoke(() => { OrganizationalUnit ou = DataModel.Instance.GetOu(OuID); if (ou != null) { ExtendedObservableCollection <TileableElement> children = ou.Elements; children.Sort(); } }); } }
public void SetSearchResultToAll() { allConversations.Sort((i) => Convert.ToDateTime(i.date)); Conversations.ReplaceAll(allConversations); }