ScrewTurn.Wiki.PagesStorageProvider.Init C# (CSharp) Method

Init() public method

Initializes the Provider.
If host or config are null. If config is not valid or is incorrect.
public Init ( IHostV30 host, string config ) : void
host IHostV30 The Host of the Provider.
config string The Configuration data, if any.
return void
        public void Init(IHostV30 host, string config)
        {
            if(host == null) throw new ArgumentNullException("host");
            if(config == null) throw new ArgumentNullException("config");

            this.host = host;

            if(!LocalProvidersTools.CheckWritePermissions(host.GetSettingValue(SettingName.PublicDirectory))) {
                throw new InvalidConfigurationException("Cannot write into the public directory - check permissions");
            }

            if(!Directory.Exists(Path.Combine(host.GetSettingValue(SettingName.PublicDirectory), PagesDirectory))) {
                Directory.CreateDirectory(Path.Combine(host.GetSettingValue(SettingName.PublicDirectory), PagesDirectory));
            }
            if(!Directory.Exists(Path.Combine(host.GetSettingValue(SettingName.PublicDirectory), MessagesDirectory))) {
                Directory.CreateDirectory(Path.Combine(host.GetSettingValue(SettingName.PublicDirectory), MessagesDirectory));
            }
            if(!Directory.Exists(Path.Combine(host.GetSettingValue(SettingName.PublicDirectory), SnippetsDirectory))) {
                Directory.CreateDirectory(Path.Combine(host.GetSettingValue(SettingName.PublicDirectory), SnippetsDirectory));
            }
            if(!Directory.Exists(Path.Combine(host.GetSettingValue(SettingName.PublicDirectory), ContentTemplatesDirectory))) {
                Directory.CreateDirectory(Path.Combine(host.GetSettingValue(SettingName.PublicDirectory), ContentTemplatesDirectory));
            }
            if(!Directory.Exists(Path.Combine(host.GetSettingValue(SettingName.PublicDirectory), DraftsDirectory))) {
                Directory.CreateDirectory(Path.Combine(host.GetSettingValue(SettingName.PublicDirectory), DraftsDirectory));
            }

            bool upgradeNeeded = false;

            if(!File.Exists(GetFullPath(NamespacesFile))) {
                File.Create(GetFullPath(NamespacesFile)).Close();
            }

            upgradeNeeded = VerifyIfPagesFileNeedsAnUpgrade();

            if(!File.Exists(GetFullPath(PagesFile))) {
                File.Create(GetFullPath(PagesFile)).Close();
            }
            else if(upgradeNeeded) {
                VerifyAndPerformUpgradeForPages();
            }

            if(!File.Exists(GetFullPath(CategoriesFile))) {
                File.Create(GetFullPath(CategoriesFile)).Close();
            }
            else if(upgradeNeeded) {
                VerifyAndPerformUpgradeForCategories();
            }

            if(!File.Exists(GetFullPath(NavigationPathsFile))) {
                File.Create(GetFullPath(NavigationPathsFile)).Close();
            }
            else if(upgradeNeeded) {
                VerifyAndPerformUpgradeForNavigationPaths();
            }

            // Prepare search index
            index = new StandardIndex();
            index.SetBuildDocumentDelegate(BuildDocumentHandler);
            indexStorer = new IndexStorer(GetFullPath(IndexDocumentsFile),
                GetFullPath(IndexWordsFile),
                GetFullPath(IndexMappingsFile),
                index);
            indexStorer.LoadIndex();

            if(indexStorer.DataCorrupted) {
                host.LogEntry("Search Engine Index is corrupted and needs to be rebuilt\r\n" +
                    indexStorer.ReasonForDataCorruption.ToString(),	LogEntryType.Warning, null, this);
            }
        }

Usage Example

        public static void Initialize(string command, string dir, ILog log)
        {
            if (initialized)
                return;

            log = log ?? Logging.NullLog.Instance;

            initialized = true;

            log.Verbose("Initialization...");

            ConsoleHost host = new ConsoleHost(dir);

            ConsoleSettingsStorageProvider ssp = new ConsoleSettingsStorageProvider();
            ssp.Init(host, string.Empty);
            Collectors.SettingsProvider = ssp;

            Exchanger.ResourceExchanger = new ResourceExchanger();

            MimeTypes.Init();

            // Load Providers
            Collectors.FileNames = new System.Collections.Generic.Dictionary<string, string>(10);
            Collectors.UsersProviderCollector = new ProviderCollector<IUsersStorageProviderV30>();
            Collectors.PagesProviderCollector = new ProviderCollector<IPagesStorageProviderV30>();
            Collectors.FilesProviderCollector = new ProviderCollector<IFilesStorageProviderV30>();
            Collectors.FormatterProviderCollector = new ProviderCollector<IFormatterProviderV30>();
            Collectors.CacheProviderCollector = new ProviderCollector<ICacheProviderV30>();
            Collectors.DisabledUsersProviderCollector = new ProviderCollector<IUsersStorageProviderV30>();
            Collectors.DisabledPagesProviderCollector = new ProviderCollector<IPagesStorageProviderV30>();
            Collectors.DisabledFilesProviderCollector = new ProviderCollector<IFilesStorageProviderV30>();
            Collectors.DisabledFormatterProviderCollector = new ProviderCollector<IFormatterProviderV30>();
            Collectors.DisabledCacheProviderCollector = new ProviderCollector<ICacheProviderV30>();

            IPagesStorageProviderV30 p = new PagesStorageProvider();
            if (!ProviderLoader.IsDisabled(p.GetType().FullName))
            {
                p.Init(host, "");
                Collectors.PagesProviderCollector.AddProvider(p);
                Log.LogEntry("Provider " + p.Information.Name + " loaded (Enabled)", EntryType.General, Log.SystemUsername);
            }
            else
            {
                Collectors.DisabledPagesProviderCollector.AddProvider(p);
                Log.LogEntry("Provider " + p.Information.Name + " loaded (Disabled)", EntryType.General, Log.SystemUsername);
            }

            p = new ScrewTurn.Wiki.Plugins.SqlServer.SqlServerPagesStorageProvider();
            if (!ProviderLoader.IsDisabled(p.GetType().FullName))
            {
                p.Init(host, ConfigurationManager.ConnectionStrings["Default"].ConnectionString);
                Collectors.PagesProviderCollector.AddProvider(p);
                Log.LogEntry("Provider " + p.Information.Name + " loaded (Enabled)", EntryType.General, Log.SystemUsername);
            }
            else
            {
                Collectors.DisabledPagesProviderCollector.AddProvider(p);
                Log.LogEntry("Provider " + p.Information.Name + " loaded (Disabled)", EntryType.General, Log.SystemUsername);
            }

            CacheProvider c = new CacheProvider();
            if (!ProviderLoader.IsDisabled(c.GetType().FullName))
            {
                c.Init(host, "");
                Collectors.CacheProviderCollector.AddProvider(c);
                Log.LogEntry("Provider " + c.Information.Name + " loaded (Enabled)", EntryType.General, Log.SystemUsername);
            }
            else
            {
                Collectors.DisabledCacheProviderCollector.AddProvider(c);
                Log.LogEntry("Provider " + c.Information.Name + " loaded (Disabled)", EntryType.General, Log.SystemUsername);
            }

            log.Verbose("Initialisation OK");

            //CommandBase commandBase;

            //switch (command.ToLowerInvariant())
            //{
            //    case "extract":
            //        commandBase = new ExtractPagesCommand(args[2], args[3])
            //        {
            //            Filter = args.Length > 4 ? args[4] : null
            //        };
            //        break;

            //    case "buildindex":
            //        commandBase = new BuildIndexCommand(args[2], args[3]);
            //        break;

            //    case "addlinkscategory":
            //        commandBase = new AddLinksCategoryCommand(args[2], args[3]);
            //        break;

            //    default:
            //        throw new ArgumentOutOfRangeException(command);
            //}

            //commandBase.Run();
        }
All Usage Examples Of ScrewTurn.Wiki.PagesStorageProvider::Init
PagesStorageProvider