示例#1
0
        private void RequestVM_OnAcceptRequest(Users Friend)
        {
            FriendGroup AvailableGroup = cbRequestGroup.SelectedItem as FriendGroup; //Lấy nhóm có sẵn đã được chọn trên Combobox

            int NewGroupID = 0;

            if (RequestNewGroupName != null)
            {
                if (!AddNewGroup(userId, RequestNewGroupName, ref NewGroupID))
                {
                    MessageBox.Show("Thêm nhóm mới không thành công");
                }
            }
            else if (AvailableGroup == null && RequestNewGroupName == null)
            {
                MessageBox.Show("Không tồn tại nhóm có sẵn cũng như thông tin nhóm mới không hợp lệ nên không thể 'chấp nhận' yêu cầu kết bạn");
                return;
            }

            FriendGroup newGroup = GetGroup(NewGroupID);

            //Chấp nhận yêu cầu kết bạn và thêm bạn bè vào nhóm mới nếu thông tin không bỏ trống, ngược lại sẽ thêm vào nhóm sẵn có
            AcceptRequest(userId, Friend.UserID, NewGroupID != 0 ? newGroup.GroupID : AvailableGroup.GroupID);

            //Bổ sung bạn bè cây dữ liệu
            GroupTree.AppendFriend(Friend, NewGroupID != 0 ? newGroup : AvailableGroup);

            RequestVM.RemoveRequest(Friend); //Xóa yêu cầu sau khi chấp nhận

            friendRequestZone.UpdateLayout();
            treeFriend.UpdateLayout();
        }
示例#2
0
        private void RequestVM_OnIgnoreRequest(Users Friend)
        {
            IgnoreRequest(userId, Friend.UserID); //Từ chối yêu cầu kết bạn và cập nhập thông tin lên CSDL
            RequestVM.RemoveRequest(Friend);      //Xóa yêu cầu sau khi từ chối

            friendRequestZone.UpdateLayout();
        }
示例#3
0
        private void UpdateRequest_Tick(object sender, EventArgs e)
        {
            int totalRequest = RequestVM.Requests.Count;

            requestTaskZone.Visibility = totalRequest == 0 ? Visibility.Collapsed : Visibility.Visible;

            List <Users> Requests = FriendRequests(userId);

            if (Requests.Count >= totalRequest)                  //Trường hợp nếu có request mới trên CSDL hoặc số request không thay đổi so với trước đó
            {
                Requests = Requests.Skip(totalRequest).ToList(); //Bỏ qua tổng số request đã lấy trước đó
            }
            else if (Requests.Count < totalRequest)              //Ngược lại số request giảm (request đã được user chấp nhận hoặc từ chối
            {
                if (Requests.Count == 0)                         //Số request đã hết -> xóa tất cả các request đã hiển thị trên giao diện
                {
                    RequestVM.ClearRequest();
                }

                List <int> posToDelete = new List <int>();

                foreach (Users Friend in Requests) //Lấy ra vị trí (index) của những request đã được user chấp nhận
                {
                    for (int i = 0; i < totalRequest; i++)
                    {
                        if (!RequestVM.Requests[i].Friend.Equals(Friend))
                        {
                            if (!posToDelete.Contains(i))
                            {
                                posToDelete.Add(i);
                            }
                        }
                    }
                }

                for (int i = 0; i < posToDelete.Count; i++) //Xóa những request đã được user chấp nhận khỏi danh sách request
                {
                    Users MatchUser = RequestVM.Requests[i].Friend;
                    RequestVM.RemoveRequest(MatchUser);
                }
            }

            if (Requests.Count == 0) //Trường hợp không có request sẽ không bổ sung vào danh sách request
            {
                return;
            }

            foreach (Users Friend in Requests) //Thêm request mới vào danh sách
            {
                RequestVM.AppendRequest(Friend);
            }

            friendRequestZone.UpdateLayout();
        }