// Group list retrieved for a user
        private void OnGroupListReturned(object sender, GetGroupListEventArgs e)
        {
            // Find the user
            if (!UserCache.ContainsKey(e.UserId))
                return;

            User user = UserCache[e.UserId];

            JObject rawJson = JObject.Parse(e.Response);
            JObject rootJson = (JObject)rawJson["groups"];

            List<FlickrGroup> result = new List<FlickrGroup>();
            user.GroupIds = new List<string>();
            foreach (var entry in rootJson["group"])
            {
                JObject json = (JObject)entry;
                FlickrGroup group = FlickrGroupFactory.GroupWithJObject(json);
                user.GroupIds.Add(group.ResourceId);
                result.Add(group);
            }

            // Dispatch event
            GroupListUpdatedEventArgs evt = new GroupListUpdatedEventArgs();
            evt.UserId = e.UserId;
            evt.Groups = result;
            GroupListUpdated.DispatchEvent(this, evt);
        }
        // Group list updated
        private void OnGroupListUpdated(object sender, GroupListUpdatedEventArgs e)
        {
            Dispatcher.BeginInvoke(() =>
            {
                if (e.UserId != Cinderella.CinderellaCore.CurrentUser.ResourceId)
                    return;

                if (Cinderella.CinderellaCore.GroupCache.Count == 0)
                {
                    GroupListStatusLabel.Text = AppResources.PreludeNoGroupFoundText;
                    GroupListStatusLabel.Visibility = Visibility.Visible;
                    GroupListView.Visibility = Visibility.Collapsed;
                }
                else
                {
                    GroupListStatusLabel.Visibility = Visibility.Collapsed;
                    GroupListView.Visibility = Visibility.Visible;

                    GroupList.Clear();
                    foreach (FlickrGroup group in e.Groups)
                    {
                        GroupList.Add(group);
                    }
                }

            });
        }