private void InitProvider()
        {
            do {
                _provider = RotateProvider(_provider);
                if (_provider == null) {
                    if (FailureHandler != null)
                        FailureHandler(this, null);
                    return;
                }
                if (_provider.IsAvailable())
                    break;
            } while (true);

            _provider.SuccessHandler += OnLoaded;
            _provider.FailureHandler += OnFailure;
        }
        private IChapterProvider RotateProvider(IChapterProvider provider)
        {
            IChapterProvider newProvider = null;
            if (provider == null) {
                newProvider = new ProjectContentProvider(_chapterName);
            }
            else if (provider is ProjectContentProvider) {
                newProvider = new IsolatedStorageProvider(_chapterName);
            }
            else if (provider is IsolatedStorageProvider) {
                newProvider = new BlobStorageProvider(_chapterName);
            }

            return newProvider;
        }