Esempio n. 1
0
        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();
             }
         });
     }
 }
Esempio n. 3
0
        public void SetSearchResultToAll()
        {
            allConversations.Sort((i) => Convert.ToDateTime(i.date));

            Conversations.ReplaceAll(allConversations);
        }