Example #1
0
        public void ToEdit(IValueProvider valueProvider)
        {
            var htmlFiles            = valueProvider.GetFiles(Entities.FileType.Html);
            List <FileContext> files = new List <FileContext>();

            var searcher = new HtmlJsFileSearcher();

            foreach (var item in htmlFiles)
            {
                var list = searcher.Search(item.Tree);
                files.AddRange(list);
            }

            var uniqFiles = files.Distinct();

            File commonFile = new File();

            commonFile.FileName   = IO.Path.GetRandomFileName();
            commonFile.SearchName = commonFile.FileName;
            commonFile.Type       = FileType.Js;

            ProgramContext        program = new ProgramContext(null, 0);
            SourceElementsContext elems   = new SourceElementsContext(program, 0);

            foreach (var item in uniqFiles)
            {
                var tree      = item.File.Tree as ProgramContext;
                var treeElems = tree.sourceElements().sourceElement();
                foreach (var elem in treeElems)
                {
                    elems.AddChild(elem);
                }

                valueProvider.RemoveFile(item.File.FileName);
            }
            program.AddChild(elems);

            commonFile.Tree = program;

            valueProvider.AddFile(commonFile);

            HtmlAddScriptEditor htmlAdsScript = new HtmlAddScriptEditor();

            foreach (var item in htmlFiles)
            {
                htmlAdsScript.Add(item.Tree, new File[] { commonFile });
            }

            foreach (var item in files)
            {
                item.Context.Remove();
            }
        }
Example #2
0
        public void ToEdit(IValueProvider valueProvider)
        {
            var htmlFiles            = valueProvider.GetFiles(Entities.FileType.Html);
            List <FileContext> files = new List <FileContext>();

            var searcher = new HtmlStyleFilesSearcher();

            foreach (var item in htmlFiles)
            {
                var list = searcher.Search(item.Tree);
                files.AddRange(list);
            }

            var uniqFiles = files.Distinct();

            File commonFile = new File();

            commonFile.FileName   = IO.Path.GetRandomFileName() + ".css";
            commonFile.SearchName = commonFile.FileName;
            commonFile.Type       = FileType.Css;

            StylesheetContext context = new StylesheetContext(null, 0);

            foreach (var item in uniqFiles)
            {
                var style   = item.File.Tree as StylesheetContext;
                var nesteds = style.nestedStatement();
                foreach (var nested in nesteds)
                {
                    nested.parent = context;
                    context.AddChild(nested);
                }
                valueProvider.RemoveFile(item.File.FileName);
            }

            commonFile.Tree = context;

            valueProvider.AddFile(commonFile);

            HtmlAddStyleEditor htmlAddStyle = new HtmlAddStyleEditor();

            foreach (var item in htmlFiles)
            {
                htmlAddStyle.Add(item.Tree, new File[] { commonFile });
            }

            foreach (var item in files)
            {
                item.Context.Remove();
            }
        }
Example #3
0
        public void ToEdit(IValueProvider valueProvider)
        {
            var htmlFiles = valueProvider.GetFiles(Entities.FileType.Html);
            var editor    = new HtmlJsLoader();

            foreach (var item in htmlFiles)
            {
                editor.Replace(item.Tree, valueProvider);
            }

            var jsFiles = valueProvider.GetFiles(Entities.FileType.Js);

            foreach (var item in jsFiles)
            {
                if (item.IsExternal)
                {
                    valueProvider.RemoveFile(item.SearchName);
                }
            }
        }