예제 #1
0
        public override void SetToDefault(IModuleData Data)
        {
            base.SetToDefault(Data);

            FindDOS2DataDirectory();

            DirectoryLayoutFile = DOS2DefaultPaths.DirectoryLayout(Data);
        }
예제 #2
0
        public void LoadDirectoryLayout()
        {
            if (Data.Settings.DirectoryLayouts == null)
            {
                Data.Settings.DirectoryLayouts = new List <string>();
            }
            else
            {
                Data.Settings.DirectoryLayouts.Clear();
            }

            string layoutFile         = "";
            string layoutFileContents = "";

            if (File.Exists(Data.Settings.DirectoryLayoutFile))
            {
                Log.Here().Activity("DirectoryLayout file found at {0}. Reading directory layout.", Data.Settings.DirectoryLayoutFile);

                layoutFile = Data.Settings.DirectoryLayoutFile;
            }
            else
            {
                Log.Here().Warning("DirectoryLayout.txt file not found. Using default settings.");

                if (File.Exists(DOS2DefaultPaths.DirectoryLayout(Data)))
                {
                    Log.Here().Activity("DirectoryLayout.default.txt found. Reading directory layout.");

                    layoutFile = DOS2DefaultPaths.DirectoryLayout(Data);
                }
                else
                {
                    Log.Here().Warning("Default DirectoryLayout.default.txt file not found. Using default settings stored in app.");

                    layoutFileContents = SCG.Modules.DOS2.Properties.Resources.DirectoryLayout;
                    FileCommands.WriteToFile(DOS2DefaultPaths.DirectoryLayout(Data), layoutFileContents);
                }

                Data.Settings.DirectoryLayoutFile = DOS2DefaultPaths.DirectoryLayout(Data);

                saveModuleSettings = true;
            }

            if (!String.IsNullOrEmpty(layoutFile) && File.Exists(layoutFile))
            {
                layoutFileContents = File.ReadAllText(layoutFile);
            }

            if (layoutFileContents != "")
            {
                using (var reader = new System.IO.StringReader(layoutFileContents))
                {
                    for (string line = reader.ReadLine(); line != null; line = reader.ReadLine())
                    {
                        if (line.Trim().Length > 0)
                        {
                            //Get the first non-whitespace character index.
                            int  offset    = line.TakeWhile(c => char.IsWhiteSpace(c)).Count();
                            bool isComment = line.Substring(offset, 1) == "#";

                            if (!isComment)
                            {
                                Data.Settings.DirectoryLayouts.Add(line);
                                Log.Here().Activity("Added {0} to project directory path patterns.", line);
                            }
                        }
                    }
                }
            }
        }