Beispiel #1
0
        protected bool HandleRequestWithBody(IHttpContext context, Func <object, object> bodyHandler)
        {
            bool        result      = false;
            RestRequest restRequest = new RestRequest(context);

            if (restRequest.IsValid)
            {
                IRequest  request  = context.Request;
                IResponse response = context.Response;

                string typeName      = restRequest.TypeName;
                string fileExtension = restRequest.Extension;

                Type type = restRequest.GetStorableType(Repository.StorableTypes);

                if (type != null)
                {
                    if (Deserializers.ContainsKey(fileExtension))
                    {
                        string postBody = ReadInputBody(request);
                        object value    = Deserializers[fileExtension](postBody, type);
                        value = bodyHandler(value);
                        IRenderer renderer = RendererFactory.CreateRenderer(request, fileExtension);
                        renderer.Render(new RestResponse {
                            Success = true, Data = value
                        }, response.OutputStream);
                        result = true;
                    }
                }
            }
            return(result);
        }
        public async Task <IActionResult> Post(string filename = "input.csdl")
        {
            var csdl = await new StreamReader(Request.Body).ReadToEndAsync();

            var generator = new PlantConverter();

            try
            {
                var plant = generator.EmitPlantDiagram(csdl, filename);

                var factory = new RendererFactory();

                var renderer = factory.CreateRenderer(new PlantUmlSettings());

                var bytes = await renderer.RenderAsync(plant, OutputFormat.Svg);

                var idx = Guid.NewGuid().ToString();
                _resourceStore.SetItem(idx, bytes);

                var url = this.Url.Action("Get", "UmlDiagram", new { id = idx });
                return(Created(url, null));
            }
            catch (Exception ex)
            {
                return(BadRequest(ex));
            }
        }
Beispiel #3
0
        // ** Delete / DELETE
        // /{Type}/{Id}.{ext}
        protected override bool Delete(IHttpContext context)
        {
            bool        result      = false;
            RestRequest restRequest = new RestRequest(context);

            if (restRequest.IsValid)
            {
                Type type = restRequest.GetStorableType(Repository.StorableTypes);
                if (type != null)
                {
                    IRenderer renderer = RendererFactory.CreateRenderer(context.Request, restRequest.Extension);
                    object    instance = Repository.Retrieve(type, restRequest.Id);
                    if (instance != null)
                    {
                        Repository.Delete(instance);
                        renderer.Render(new RestResponse {
                            Success = true
                        }, context.Response.OutputStream);
                        result = true;
                    }
                }
            }

            return(result);
        }
        public override StringBuffer Render(IMarkdownRenderer markdownRenderer, MarkdownCodeBlockToken token, MarkdownBlockContext context)
        {
            IPlantUmlRenderer plantUmlRenderer = rendererFactory.CreateRenderer(settings);
            IOutputFormatter  outputFormatter  = formatterFactory.CreateOutputFormatter(markdownRenderer.Options);

            byte[] output = plantUmlRenderer.Render(token.Code, settings.OutputFormat);
            return(outputFormatter.FormatOutput(token, output));
        }
        public async Task Run(string inputFolder, string outFolder)
        {
            try
            {
                var dirs = Directory.EnumerateDirectories(inputFolder);
                foreach (var dir in dirs)
                {
                    string[] folderArr = dir.Split("\\");
                    if (folderArr.Length == 0)
                    {
                        folderArr = dir.Split("/");
                    }

                    string folderName = folderArr[folderArr.Length - 1];
                    string pumlFolder = $"{outFolder}\\{folderName}\\{PUML_FOLDER}";
                    await gen.Run(dir, pumlFolder);

                    var factory      = new RendererFactory();
                    var localSetting = new PlantUmlSettings()
                    {
                        LocalPlantUmlPath    = "C:\\Users\\emriti\\Desktop\\wow\\plantuml.jar",
                        LocalGraphvizDotPath = "C:\\Program Files\\Graphviz\\bin\\dot.exe",
                        RenderingMode        = RenderingMode.Local
                    };
                    var renderer = factory.CreateRenderer(localSetting);

                    var files        = Directory.EnumerateFiles(pumlFolder, "include.puml", SearchOption.AllDirectories);
                    var outputFormat = OutputFormat.Svg;
                    var outputExt    = "svg";

                    foreach (var file in files)
                    {
                        var data = "";
                        using (StreamReader sr = new StreamReader(file))
                        {
                            data = sr.ReadToEnd();
                        }

                        var bytes = await renderer.RenderAsync(data, outputFormat);

                        var filePath = $"{outFolder}\\{folderName}\\{folderName}.{outputExt}";
                        File.WriteAllBytes(filePath, bytes);

                        OnProgress($"Rendering svg {folderName} ...");
                    }
                }
            }
            catch (Exception ex)
            {
                OnError(ex);
            }
        }
Beispiel #6
0
        protected override bool Post(IHttpContext context)
        {
            IJsonRpcRequest request = JsonRpcMessage.Parse(context);
            bool            result  = false;

            if (request != null)
            {
                JsonRpcResponse response = request.Execute();
                IRenderer       renderer = RendererFactory.CreateRenderer(context.Request);
                renderer.Render(response.GetOutput(), context.Response.OutputStream);
            }
            return(result);
        }
        public static IVisualElementRenderer GetOrCreateRenderer(this VisualElement self)
        {
            if (self == null)
            {
                throw new ArgumentNullException("self");
            }

            IVisualElementRenderer renderer = Platform.GetRenderer(self);

            if (renderer == null)
            {
                renderer = RendererFactory.CreateRenderer(self);
                Platform.SetRenderer(self, renderer);
            }

            return(renderer);
        }
Beispiel #8
0
        public static IVisualElementRenderer GetOrCreateRenderer(this VisualElement self)
        {
            if (self == null)
            {
                throw new ArgumentNullException("self");
            }

            IVisualElementRenderer renderer = Platform.GetRenderer(self);

            if (renderer == null)
            {
#pragma warning disable 618
                renderer = RendererFactory.CreateRenderer(self);
#pragma warning restore 618
                Platform.SetRenderer(self, renderer);
            }

            return(renderer);
        }
Beispiel #9
0
        // ** Retrieve / GET **
        // /{Type}.{ext}?{Query}
        // /{Type}/{Id}.{ext}
        // /{Type}/{Id}/{ChildListProperty}.{ext}
        protected override bool Get(IHttpContext context)
        {
            RestRequest restRequest = new RestRequest(context);
            bool        result      = false;

            if (restRequest.IsValid)
            {
                IResponse response = context.Response;
                Type      type     = restRequest.GetStorableType(Repository.StorableTypes);
                if (type != null)
                {
                    IRenderer renderer = RendererFactory.CreateRenderer(context.Request, restRequest.Extension);
                    if (restRequest.Query.Count > 0)
                    {
                        renderer.Render(new RestResponse {
                            Success = true, Data = Repository.Query(type, restRequest.Query.ToDynamicData(4.RandomLetters()))
                        }, response.OutputStream);
                        result = true;
                    }
                    else if (restRequest.Id > 0)
                    {
                        object instance = Repository.Retrieve(type, restRequest.Id);
                        if (instance != null)
                        {
                            RestResponse restResponse = new RestResponse {
                                Success = true, Data = instance
                            };
                            if (!string.IsNullOrEmpty(restRequest.ChildListProperty))
                            {
                                restResponse.Data = instance.Property(restRequest.ChildListProperty);
                            }
                            renderer.Render(restResponse, response.OutputStream);
                            result = true;
                        }
                    }
                }
            }

            return(result);
        }
Beispiel #10
0
        public static async Task <string> GetImageContent(string contentForUml, string plantUmlJarPath, string localGraphvizDotPath)
        {
            var factory = new RendererFactory();
            // var renderer = factory.CreateRenderer(new PlantUmlSettings
            // {
            //     RenderingMode = RenderingMode.Local,
            //     LocalPlantUmlPath = plantUmlJarPath,
            //     LocalGraphvizDotPath = localGraphvizDotPath
            // });
            var renderer = factory.CreateRenderer();

            var bytes = await Task.Run <byte[]>(() => renderer.Render(contentForUml, OutputFormat.Svg));//renderer.Render(contentForUml, OutputFormat.Svg);

            return(System.Text.Encoding.UTF8.GetString(bytes));
            // var uri = PlantUMLUrl.SVG(contentForUml);
            // string svgFileContent;
            // using (var client = new HttpClient())
            // {
            //     svgFileContent = await client.GetStringAsync(uri);
            // }
            // return svgFileContent;
        }