Example #1
0
        private void Index(PaperRendererInfo renderer)
        {
            try
            {
                if (!paperTypeIndex.ContainsKey(renderer.PaperType))
                {
                    paperTypeIndex[renderer.PaperType] = new List <PaperRendererInfo>();
                }

                pathIndex.Add(renderer.PathTemplate);
                pathTemplateIndex[renderer.PathTemplate] = renderer;
                paperTypeIndex[renderer.PaperType].Add(renderer);

                Debug.WriteLine($"[PAPER]Mapped: {renderer.PaperType.FullName}: /{renderer.PathTemplate}");
                Console.WriteLine($"[PAPER]Mapped: {renderer.PaperType.FullName}: /{renderer.PathTemplate}");
            }
            catch (Exception ex)
            {
                ex.Trace($"[PAPER]Fault: {renderer.PaperType.FullName}: {ex.Message}");
            }
        }
Example #2
0
        public void RenderEntity_HasRowsLinks(Type paperType)
        {
            var template = "/{id}";
            var path     = "/17";

            var renderer = new QueryRenderer(injector.Object, registry.Object);

            renderer.PathTemplate = template;
            renderer.PaperType    = paperType;

            //... mock da classe link referenciada ...
            var linkedRenderer = new PaperRendererInfo
            {
                PaperRendererType = typeof(QueryRenderer),
                PaperType         = typeof(DataAndRowsQuery),
                PathTemplate      = "/{id}/RowLink"
            };

            registry
            .Setup(x => x.FindPaperRenderers(It.IsAny <Type>()))
            .Returns(linkedRenderer.AsSingle());

            // When
            httpRequest.Setup(x => x.Path).Returns(path);
            var entity    = renderer.RenderEntity(httpContext.Object, path);
            var secondRow = entity?.Data?.Entities?.Skip(1).FirstOrDefault();

            // Then
            var expected = new string[] {
                "rows.link.com?q=2",
                "http://localhost:90/Tests/2/RowLink?offset=1&limit=2&sort[]=id:desc"
            };
            var obtained =
                secondRow?.Links
                .Where(x => x.Class?.Contains("rowLink") == true)
                .Select(x => x.Href)
                .ToArray();

            Assert.Equal(expected, obtained);
        }
Example #3
0
 public void Add(PaperRendererInfo renderer)
 => Index(renderer);
Example #4
0
        private Ret <Entity> RenderEntity(HttpContext httpContext, IServiceProvider injector, PaperRendererInfo rendererType)
        {
            try
            {
                var path = httpContext.Request.Path.Value;

                var renderer = (IPaperRenderer)injector.CreateInstance(rendererType.PaperRendererType);
                renderer.PaperType    = rendererType.PaperType;
                renderer.PathTemplate = rendererType.PathTemplate;

                var ret = renderer.RenderEntity(httpContext, path);

                return(ret);
            }
            catch (Exception ex)
            {
                return(ex);
            }
        }