Exemple #1
0
        private void ExecuteOnDialogSearch()
        {
            try
            {
                Task.Run(() =>
                {
                    try
                    {
                        if (IsDialogSearchVisible)
                        {
                            if (SelectedContact != null)
                            {
                                _view.MessageList.Clear();
                                var res = new List <BaseMessage>();

                                if (SelectedContact is UserUiInfo)
                                {
                                    var userUiInfo = SelectedContact as UserUiInfo;
                                    res.AddRange(UserServiceClient.GetUserMessages(GlobalBase.CurrentUser.Id, userUiInfo.UserId, messageLimit));
                                }
                                else if (SelectedContact is ChatGroupUiInfo)
                                {
                                    var chatGroupUiInfo = SelectedContact as ChatGroupUiInfo;
                                    res.AddRange(UserServiceClient.GetGroupMessages(chatGroupUiInfo.ChatGroupId, messageLimit));
                                }

                                if (res.Count != 0)
                                {
                                    foreach (var mes in res)
                                    {
                                        if (GlobalBase.Base64Decode(mes.Text).Contains(DialogSearchStr))
                                        {
                                            GlobalBase.AddMessageOnUi.Invoke(mes);
                                        }
                                    }
                                }

                                GlobalBase.UpdateMessagesOnUI();
                            }
                        }
                        else
                        {
                            SelectedContactChanged();
                        }
                    }
                    catch (Exception)
                    {
                    }
                });
            }
            catch (Exception)
            {
            }
        }
Exemple #2
0
        private void SelectedContactChanged(object sender = null, PropertyChangedEventArgs e = null)
        {
            try
            {
                ResetDialogSearchOnUi();

                if (SelectedContact != null)
                {
                    IsMenuEnabled = true;
                }
                else
                {
                    IsMenuEnabled = false;
                }

                if (_view.MessageList != null)
                {
                    Task.Run(() =>
                    {
                        try
                        {
                            lock (_view.MessageList)
                            {
                                _view.MessageList.Clear();
                            }

                            GlobalBase.loadPictures(UserServiceClient, ContactsList);

                            var res = new List <BaseMessage>();

                            if (SelectedContact is UserUiInfo)
                            {
                                res.AddRange(UserServiceClient.GetUserMessages(GlobalBase.CurrentUser.Id,
                                                                               (SelectedContact as UserUiInfo).UserId, messageLimit));
                            }
                            else if (SelectedContact is ChatGroupUiInfo)
                            {
                                res.AddRange(
                                    UserServiceClient.GetGroupMessages((SelectedContact as ChatGroupUiInfo).ChatGroupId, messageLimit));
                            }

                            if (res.Count != 0)
                            {
                                Application.Current.Dispatcher.Invoke(new Action(() =>
                                {
                                    lock (_view.MessageList)
                                    {
                                        _view.MessageList.AddRange(res);
                                    }
                                }));
                            }
                        }
                        catch (Exception)
                        {
                        }
                    }).ContinueWith((task =>
                    {
                        GlobalBase.UpdateMessagesOnUI();
                    }));
                }
            }
            catch (Exception)
            {
            }
        }