Ejemplo n.º 1
0
        public void Register(IAppHost appHost)
        {
            appHost.RawHttpHandlers.Add(req => req.PathInfo == RoutePath
                ? (string.IsNullOrEmpty(req.QueryString["id"]) || string.IsNullOrEmpty(req.QueryString["format"])
                    ? new SharpPageHandler(HtmlTemplates.GetSvgTemplatePath())
            {
                ValidateFn = ValidateFn,
                Context = SharpPageHandler.NewContext(appHost),
            }
                    : (IHttpHandler) new SvgFormatHandler {
                Id = req.QueryString["id"],
                Format = req.QueryString["format"],
                Fill = req.QueryString["fill"],
            })
                : req.PathInfo.StartsWith(RoutePath)
                  ? new SvgFormatHandler(req.PathInfo.Substring(RoutePath.Length + 1))
            {
                Fill = req.QueryString["fill"]
            }
                  : null);

            var btnSvgCssFile = appHost.VirtualFileSources.GetFile("/css/buttons-svg.css");

            if (btnSvgCssFile != null)
            {
                var btnSvgCss = btnSvgCssFile.ReadAllText();
                foreach (var name in new[] { "svg-auth", "svg-icons" })
                {
                    if (Svg.CssFiles.ContainsKey(name) && !Svg.AppendToCssFiles.ContainsKey(name))
                    {
                        Svg.AppendToCssFiles[name] = btnSvgCss;
                    }
                }
            }

            appHost.GetPlugin <MetadataFeature>()
            .AddDebugLink(RoutePath, "SVG Images");
        }