示例#1
0
        public void Update(List <UiInfo> membersToAdd)
        {
            try
            {
                if (membersToAdd?.Count != 0)
                {
                    IsNewChanges  = true;
                    _membersToAdd = membersToAdd;

                    var temp = new List <UiInfo>();
                    temp.AddRange(_membersToAdd);
                    temp.AddRange(GroupMemberList);
                    var defImage = Image.FromFile("../../Resources/DefaultPicture.jpg");

                    Task.Run(() =>
                    {
                        GlobalBase.loadPictures(UserServiceClient, temp);
                    }).ContinueWith(Task =>
                    {
                        GroupMemberList = temp;
                    });
                }
            }
            finally
            {
            }
        }
示例#2
0
        private void UpdateContacts()
        {
            try
            {
                var uiInfos = UserServiceClient.GetAllContactsUiInfo(GlobalBase.CurrentUser.Id);
                GlobalBase.loadPictures(UserServiceClient, uiInfos);

                ContactsList = uiInfos;
                ManageControls();

                GlobalBase.UpdateContactList();
            }
            catch (System.Exception)
            {
            }
        }
示例#3
0
        public ForwardMessageWindowVM(BaseMessage message, IView view) : base()
        {
            try
            {
                var uiInfos = UserServiceClient.GetAllContactsUiInfo(GlobalBase.CurrentUser.Id);
                GlobalBase.loadPictures(UserServiceClient, uiInfos);
                ContactsList = uiInfos;

                _view    = view;
                _message = message;

                IsForwardEnabled = false;
            }
            catch (Exception)
            {
            }
        }
示例#4
0
        public ContatsWindowVM(IView iview) : base()
        {
            try
            {
                view = iview;

                var tempUiInfos = UserServiceClient.GetAllContactsUiInfo(GlobalBase.CurrentUser.Id).Where(x => x is UserUiInfo).ToList();
                GlobalBase.loadPictures(UserServiceClient, tempUiInfos);
                ContactsList = tempUiInfos;

                IsAddEnabled = false;
                ManageControls();
            }
            catch (System.Exception)
            {
            }
        }
示例#5
0
        public void Init()
        {
            try
            {
                List <UiInfo> tempUiInfos = new List <UiInfo>();
                Task.Run((() =>
                {
                    try
                    {
                        _group = UserServiceClient.GetChatGroup(_groupUiInfo.UniqueName);

                        tempUiInfos = UserServiceClient.GetGroupParticipants(_group.Id);

                        UiInfo currentUserUiInfo = tempUiInfos.FirstOrDefault(info => info.UniqueName == GlobalBase.CurrentUser.Login);
                        tempUiInfos.Remove(currentUserUiInfo);

                        GlobalBase.loadPictures(UserServiceClient, tempUiInfos);
                    }
                    catch (Exception)
                    {
                    }
                })).ContinueWith(task =>
                {
                    try
                    {
                        GroupMemberList = tempUiInfos;

                        GroupName          = _group.Name;
                        CurrentGroupName   = _group.Name;
                        GroupMembersAmount = GroupMemberList.Count.ToString();

                        SetAvatarForUI();
                    }
                    catch (Exception)
                    {
                    }
                });
            }
            catch (Exception)
            {
            }
        }
示例#6
0
        //update data using server
        private void UpdateContactList()
        {
            try
            {
                Task.Run(() =>
                {
                    try
                    {
                        var temp = SelectedContact;

                        var tempUiInfos = UserServiceClient.GetAllContactsUiInfo(GlobalBase.CurrentUser.Id);
                        GlobalBase.loadPictures(UserServiceClient, tempUiInfos);

                        Dispatcher.CurrentDispatcher.Invoke(() =>
                        {
                            lock (GlobalBase.contactsMonitor)
                            {
                                ContactsList.Clear();
                                ContactsList = tempUiInfos;
                            }
                        });

                        if (temp != null)
                        {
                            Dispatcher.CurrentDispatcher.Invoke(() =>
                            {
                                lock (GlobalBase.contactsMonitor)
                                {
                                    SelectedContact = ContactsList.FirstOrDefault(ct => ct.UniqueName == temp.UniqueName);
                                }
                            });
                        }
                    }
                    catch (Exception)
                    {
                    }
                });
            }
            catch (Exception)
            {
            }
        }
示例#7
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)
            {
            }
        }