private void OnPhotoAddedToSet(object sender, AddPhotoToSetEventArgs e)
        {
            PhotoSet photoSet = PhotoSetCache[e.SetId];
            Photo photo = PhotoCache[e.PhotoId];

            if (!photoSet.Photos.Contains(photo))
            {
                photoSet.Photos.Insert(0, photo);
                photoSet.PhotoCount++;

                // Dispatch event
                AddPhotoToSetCompleteEventArgs ae = new AddPhotoToSetCompleteEventArgs();
                ae.PhotoId = photo.ResourceId;
                ae.SetId = photoSet.ResourceId;
                AddPhotoToSetCompleted.DispatchEvent(this, ae);
            }
        }
        private void OnAddPhotoCompleted(object sender, AddPhotoToSetCompleteEventArgs e)
        {
            Dispatcher.BeginInvoke(() => {
                if (e.PhotoId != currentProcessinPhotoId)
                    return;

                currentProcessinPhotoId = null;
                PhotoListView.Opacity = 1;
                PhotoListView.IsEnabled = true;

                ThrottleProgressBar.Visibility = Visibility.Collapsed;
                ThrottleLabel.Foreground = normalMessageBrush;
                ThrottleLabel.Text = AppResources.PhotoCollectionPhotoAddedText;

                SelectedPhotos.Add(e.PhotoId);
            });
        }
        private void OnPhotoAddedToSet(object sender, AddPhotoToSetCompleteEventArgs e)
        {
            Dispatcher.BeginInvoke(() =>
            {
                if (e.SetId != PhotoSetSource.ResourceId)
                    return;

                Photo newPhoto = Cinderella.CinderellaCore.PhotoCache[e.PhotoId];
                if (!addedPhotoIds.Contains(newPhoto.ResourceId))
                {
                    addedPhotoIds.Add(newPhoto.ResourceId);
                }
            });
        }