Exemple #1
0
        public static IList<LibraryDescription> Walk(IList<IDependencyProvider> providers, string name, SemanticVersion version, FrameworkName targetFramework)
        {
            var libraries = new List<LibraryDescription>();

            var sw = Stopwatch.StartNew();
            Logger.TraceInformation($"[{nameof(DependencyWalker)}]: Walking dependency graph for '{name} {targetFramework}'.");

            var context = new WalkContext();

            var walkSw = Stopwatch.StartNew();

            context.Walk(
                providers,
                name,
                version,
                targetFramework);

            walkSw.Stop();
            Logger.TraceInformation($"[{nameof(DependencyWalker)}]: Graph walk took {walkSw.ElapsedMilliseconds}ms.");

            context.Populate(targetFramework, libraries);

            sw.Stop();
            Logger.TraceInformation($"$[{ nameof(DependencyWalker)}]: Resolved dependencies for {name} in { sw.ElapsedMilliseconds}ms");

            return libraries;
        }
        private static void WalkTree(WalkContext context, Block block, int level = 0)
        {
            if (IsSplitExpression(block))
            {
                // TODO: Look at the block types surrounding these blocks to determine if we need the @ or not
                context.FlattenedTree.Insert(0, CreateCodeSpan("@if (Model.renderTop) {\r\n"));
                context.FlattenedTree.Add(CreateCodeSpan("\r\n}\r\n@if (!Model.renderTop) {\r\n"));
                context.NeedsSplit = true;
            }
            else
            {
                foreach (var item in block.Children)
                {
                    var span = item as Span;
                    if (span != null)
                    {
                        // TODO: Add @: in front of tags now missing end tag and vice versa because of added @if statements
                        context.FlattenedTree.Add(span);

                        // TODO: Process <component-xxx> tags
                    }

                    if (item.IsBlock)
                    {
                        WalkTree(context, (Block)item, level + 1);
                    }
                }
            }

            if (level == 0 && context.NeedsSplit)
            {
                context.FlattenedTree.Add(CreateCodeSpan("\r\n}\r\n"));
            }
        }
        public string Process(Stream stream)
        {
            using (var reader = new StreamReader(stream))
            {
                var parserResults = engine.ParseTemplate(reader);

                var walkContext = new WalkContext();
                WalkTree(walkContext, parserResults.Document);

                StringBuilder result = new StringBuilder();
                foreach (var span in walkContext.FlattenedTree)
                {
                    result.Append(span.Content);
                }

                return(result.ToString());
            }
        }
Exemple #4
0
        public void Walk(string name, SemanticVersion version, FrameworkName targetFramework)
        {
            var sw = Stopwatch.StartNew();
            Trace.TraceInformation("[{0}]: Walking dependency graph for '{1} {2}'.", GetType().Name, name, targetFramework);

            var context = new WalkContext();

            context.Walk(
                _dependencyProviders,
                name,
                version,
                targetFramework);

            context.Populate(targetFramework, Libraries);

            sw.Stop();
            Trace.TraceInformation("[{0}]: Resolved dependencies for {1} in {2}ms", GetType().Name, name, sw.ElapsedMilliseconds);
        }
Exemple #5
0
        public void Walk(string name, SemanticVersion version, FrameworkName frameworkName)
        {
            var sw = Stopwatch.StartNew();

            Trace.TraceInformation("Walking dependency graph for '{0} {1}'.", name, frameworkName);

            var context = new WalkContext();

            context.Walk(
                _loaders.OfType <IPackageLoader>(),
                name,
                version,
                frameworkName);

            context.Populate(frameworkName);

            sw.Stop();
            Trace.TraceInformation("Resolved dependencies for {0} in {1}ms", name, sw.ElapsedMilliseconds);
        }
        public void ShouldTreatHttpsAndHttpUrlAsSame()
        {
            var subUri = "http://s.com/page".AsUri();
            var basicallySameSubUri = "https://s.com/page".AsUri();

            var doc = new HtmlDocument();

            doc.LoadHtml("<body>" +
                         $"<a href=\"{subUri.OriginalString}\"> </a></body>");

            var context = new WalkContext("http://s.com".AsUri());

            context.TryRequestContentProcessing(subUri)
            .ShouldBeTrue("First request for content processing should be successful");
            context.TryRequestContentProcessing(subUri)
            .ShouldBeFalse("Second request for content processing should be unsuccessful");
            context.TryRequestContentProcessing(basicallySameSubUri)
            .ShouldBeFalse("First request for content processing " +
                           "(but with different scheme) should be unsuccessful");
        }
Exemple #7
0
        public void Walk(string name, SemanticVersion version, FrameworkName frameworkName)
        {
            var sw = Stopwatch.StartNew();
            Trace.TraceInformation("Walking dependency graph for '{0} {1}'.", name, frameworkName);

            var context = new WalkContext();

            context.Walk(
                _loaders.OfType<IPackageLoader>(),
                name,
                version,
                frameworkName);

            context.Populate(frameworkName);

            sw.Stop();
            Trace.TraceInformation("Resolved dependencies for {0} in {1}ms", name, sw.ElapsedMilliseconds);
        }
 public ParsingResult(IReadOnlyCollection <Item> deeperItems, WalkContext context)
 {
     DeeperItems = deeperItems ?? throw new ArgumentNullException(nameof(deeperItems));
     Context     = context ?? throw new ArgumentNullException(nameof(context));
 }
        public void WalkContextEnsureICanCreateInstance()
        {
            WalkContext context = new WalkContext();

            Assert.IsNotNull(context);
        }