Ejemplo n.º 1
0
        /* Function: AddAllFiles
         * Goes through all the files for all the used styles and calls <Files.Manager.AddOrUpdateFile()> on each one.
         */
        override public void AddAllFiles(CancelDelegate cancelDelegate)
        {
            status.Reset();

            Styles.FileSource stylesFileSource = (Styles.FileSource)FileSource;
            IList <Style>     styles           = stylesFileSource.Styles;

            // String stack instead of Path stack because the IO functions will return strings and there's no need to normalize
            // them all or otherwise use Path functions on them.
            Stack <string> foldersToSearch = new Stack <string>();

            foldersToSearch.Push(EngineInstance.Config.SystemStyleFolder);
            foldersToSearch.Push(EngineInstance.Config.ProjectConfigFolder);
            status.AddFolders(Files.InputType.Style, 2);

            while (foldersToSearch.Count > 0)
            {
                string   folder     = foldersToSearch.Pop();
                string[] subfolders = System.IO.Directory.GetDirectories(folder);
                status.AddFolders(Files.InputType.Style, subfolders.Length);

                if (cancelDelegate())
                {
                    return;
                }

                foreach (string subfolder in subfolders)
                {
                    foldersToSearch.Push(subfolder);
                }

                string[] files = System.IO.Directory.GetFiles(folder);

                if (cancelDelegate())
                {
                    return;
                }

                foreach (string file in files)
                {
                    if (cancelDelegate())
                    {
                        return;
                    }

                    Path filePath = file;

                    foreach (Style style in styles)
                    {
                        if (style.Contains(filePath))
                        {
                            status.AddFiles(Files.FileType.Style, 1);
                            Manager.AddOrUpdateFile(filePath, Files.FileType.Style, System.IO.File.GetLastWriteTimeUtc(file),
                                                    stylesFileSource.ForceReparse);
                            break;
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        /* Function: Start
         * Initializes the manager and returns whether all the settings are correct and that execution is ready to begin.
         * If there are problems they are added as <Errors> to the errorList parameter.  This class is *not* designed to allow
         * multiple attempts.  If this function fails scrap the entire <Engine.Instance> and start again.
         */
        public bool Start(ErrorList errorList)
        {
            bool success = true;

            fileSource = new Styles.FileSource(this);
            EngineInstance.Files.AddFileSource(fileSource);

            return(success);
        }
Ejemplo n.º 3
0
 /* Function: FileSourceAdder
  */
 public FileSourceAdder(Styles.FileSource fileSource, Engine.Instance engineInstance) : base(fileSource, engineInstance)
 {
 }