public void FetchCurrentBlogAdditionalDataAsync()
        {
            if (null == CurrentBlog)
            {
                throw new ArgumentException("CurrentBlog may not be null", "CurrentBlog");
            }

            GetPostFormatsRPC rpc = new GetPostFormatsRPC(CurrentBlog);

            CurrentBlog.showLoadingIndicator();
            rpc.Completed += OnFetchPostFormatsRPCCompleted;
            rpc.ExecuteAsync();
        }
        private void OnGetNewBlogRecentPostsCompleted(object sender, XMLRPCCompletedEventArgs <PostListItem> args)
        {
            GetRecentPostsRPC rpc = sender as GetRecentPostsRPC;

            rpc.Completed       -= OnGetNewBlogRecentPostsCompleted;
            rpc.ProgressChanged -= OnGetNewBlogRecentPostsRPCProgressChanged;

            Blog newBlog = _trackedBlogs.Where(blog => blog.BlogId == rpc.BlogId).FirstOrDefault();

            if (null == newBlog)
            {
                return;
            }

            //report the error, but keep trying to get data
            if (null != args.Error)
            {
                this.DebugLog("OnGetNewBlogRecentPostsCompleted: Exception occurred (" + newBlog.BlogName + ")");
                this.DebugLog(args.Error.ToString());
                NotifyExceptionOccurred(new ExceptionEventArgs(args.Error));
            }
            else
            {
                foreach (PostListItem item in args.Items)
                {
                    newBlog.PostListItems.Add(item);
                }
            }

            this.DebugLog("Blog '" + newBlog.BlogName + "' has finished downloading posts.");

            if (newBlog == CurrentBlog)
            {
                NotifyFetchComplete();
            }

            //get the pages for the new blog
            GetPostFormatsRPC postFormatsRPC = new GetPostFormatsRPC(newBlog);

            postFormatsRPC.Completed += OnGetNewBlogPostFormatsCompleted;
            postFormatsRPC.ExecuteAsync();
        }