public YouTubeSearchProvider(LocalizationService localizationService,
                                     SiteDefinitionResolver siteDefinitionResolver,
                                     IContentTypeRepository contentTypeRepository,
                                     IContentProviderManager contentProviderManager,
                                     YouTubeRepository youTubeRepository,
                                     IdentityMappingService identityMappingService)
            : base(localizationService, siteDefinitionResolver, contentTypeRepository)
        {
            _youTubeRepository      = youTubeRepository;
            _identityMappingService = identityMappingService;

            _youTubeProvider = contentProviderManager.GetProvider(YouTubeSettings.ProviderKey) as YouTubeProvider;
        }
        /// <summary>
        ///     Loads the provider.
        /// </summary>
        /// <returns>
        ///     [true] if the provider has been loaded.
        /// </returns>
        private static bool LoadProviders()
        {
            IContentProviderManager providerManager = ServiceLocator.Current.GetInstance <IContentProviderManager>();

            Collection <ClonedContentProviderSettings> providerCollection = SettingsRepository.Instance.GetAll();

            foreach (ClonedContentProviderSettings providerSettings in providerCollection)
            {
                try
                {
                    ContentProvider contentProvider = providerManager.GetProvider(providerSettings.Name);

                    if (contentProvider != null)
                    {
                        continue;
                    }

                    CategoryList categoryList =
                        new CategoryList(
                            providerSettings.CategoryList.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)
                            .Select(int.Parse)
                            .ToArray());

                    ClonedContentProvider provider = new ClonedContentProvider(
                        providerSettings.Name,
                        new PageReference(providerSettings.Root),
                        new PageReference(providerSettings.EntryPoint),
                        categoryList);

                    providerManager.ProviderMap.AddProvider(provider);
                }
                catch (ArgumentNullException)
                {
                    return(false);
                }
                catch (ArgumentException)
                {
                    return(false);
                }
                catch (NotSupportedException)
                {
                    return(false);
                }
            }

            return(true);
        }