コード例 #1
0
        public FriendsList()
        {
            this.InitializeComponent();

            var friendManager = FriendManager.GetInstance();

            OnlineFriendsListUI.ItemsSource  = friendManager.OnlineFriendList;
            OfflineFriendsListUI.ItemsSource = friendManager.OfflineFriendList;
            FriendsSearchUI.ItemsSource      = friendManager.FriendSearchResultsList;

            SearchBar.KeyUp += SearchBar_KeyUp;
        }
コード例 #2
0
        public override void DoActions(PacketType packetType, object data, string senderEmailAddress)
        {
            var separators    = new string[] { "," };
            var friendManager = FriendManager.GetInstance();

            Friend     friend;
            FriendList friendList;

            switch (packetType)
            {
            case PacketType.s_UserLoggedIn:
                friend = data as Friend;

                if (null != friend)
                {
                    friendManager.OnBuddySignIn(friend);
                }

                break;


            case PacketType.s_UserLoggedOut:
                friend = data as Friend;

                if (null != friend)
                {
                    friendManager.OnBuddySignOut(friend);
                }
                break;

            case PacketType.s_OnlineFriendList:
                friendList = data as FriendList;

                if (friendList != null)
                {
                    friendManager.InitializeOnlineBuddyList(friendList.Friends);
                }

                break;

            // This packet type contains all of the clients friends (both online and offline).
            case PacketType.s_FriendList:
                friendList = data as FriendList;

                if (friendList != null)
                {
                    friendManager.InitializeCompleteBuddyList(friendList.Friends);
                }

                break;

            case PacketType.s_FriendRequests:
                friendList = data as FriendList;

                if (friendList != null)
                {
                    foreach (Friend f in friendList.Friends)
                    {
                        var requestManager = RequestManager.GetInstance();
                        requestManager.NewFriendRequest(f);
                    }
                }

                break;

            case PacketType.s_FriendRequestAccepted:
                friend = data as Friend;

                if (friend != null)
                {
                    friendManager.AddNewBuddy(friend);
                }

                break;

            case PacketType.s_FriendSearchResults:
                friendManager.FriendSearchResultsList.Clear();

                friendList = data as FriendList;

                if (friendList != null)
                {
                    foreach (Friend f in friendList.Friends)
                    {
                        friendManager.FriendSearchResultsList.Add(f);
                    }
                }

                break;

            case PacketType.s_UserStats:
                var tempFriend = data as Friend;

                // ToDo: Don't just ovewrite this blindly.  We need to make sure that if the user has
                // gained experience in offline mode, that that isn't overwritten here.  It needs to
                // be uploaded first.
                if (tempFriend != null)
                {
                    Settings.Alias        = tempFriend.Alias;
                    Settings.CreationTime = tempFriend.CreationTime;
                    Settings.Level        = tempFriend.Ranking;
                    Settings.Experience   = tempFriend.Experience;
                    Settings.Level        = tempFriend.Level;
                    Settings.Ranking      = tempFriend.Ranking;
                }

                break;

            case PacketType.s_IsAliasAvailable:
                OnMessageReceived(data as String);
                break;

            default:
                throw new ArgumentException(
                          "Passed PacketType is not meant to be handled by this MessageProcessor");
            }
        }