public HomeViewModel() { var settings = new HtmlScoreRendererSettings(); settings.RenderSurface = HtmlScoreRendererSettings.HtmlRenderSurface.Svg; var musicFontUris = new[] { "/fonts/Polihymnia.svg", "/fonts/Polihymnia.ttf", "/fonts/Polihymnia.woff" }; settings.RenderingMode = ScoreRenderingModes.AllPages; settings.Fonts.Add(MusicFontStyles.MusicFont, new HtmlFontInfo("Polihymnia", 22, musicFontUris)); settings.Fonts.Add(MusicFontStyles.StaffFont, new HtmlFontInfo("Polihymnia", 24, musicFontUris)); settings.Fonts.Add(MusicFontStyles.GraceNoteFont, new HtmlFontInfo("Polihymnia", 14, musicFontUris)); settings.Fonts.Add(MusicFontStyles.LyricsFont, new HtmlFontInfo("Open Sans", 9, "/fonts/OpenSans-Regular.ttf")); settings.Fonts.Add(MusicFontStyles.TimeSignatureFont, new HtmlFontInfo("Open Sans", 12, "/fonts/OpenSans-Regular.ttf")); settings.Fonts.Add(MusicFontStyles.DirectionFont, new HtmlFontInfo("Open Sans", 10, "/fonts/OpenSans-Regular.ttf")); settings.Scale = 1; settings.CustomElementPositionRatio = 0.8; settings.IgnorePageMargins = true; Settings = settings; RadarChartSettings = new HtmlRadarChartRendererSettings(); Samples = new[] { new RadarChartSample("Performance", "Performance", 50) { ValidationMinValue = 40, ValidationMaxValue = 60 }, new RadarChartSample("User experience", "User experience", 52) { ValidationMinValue = 20, ValidationMaxValue = 40 }, new RadarChartSample("Responsiveness", "Responsiveness", 18) { ValidationMinValue = 20, ValidationMaxValue = 40 }, new RadarChartSample("Cost", "Cost", 30) { ValidationMinValue = 30, ValidationMaxValue = 60 }, new RadarChartSample("Awesomeness", "Awesomeness", 37) { ValidationMinValue = 20, ValidationMaxValue = 40 } }; }
private static MvcHtmlString RadarChartHelper(HtmlHelper helper, RadarChartSample[] samples, HtmlRadarChartRendererSettings settings) { var xElement = new XElement("svg"); xElement.Add(new XAttribute("style", $"width:{settings.Width.ToStringInvariant()}px; height:{settings.Height.ToStringInvariant()}px;")); new HtmlSvgRadarChartRenderer(settings, xElement).RedrawChart(samples); return(MvcHtmlString.Create(xElement.ToString())); }
public static MvcHtmlString RadarChartFor <TModel>(this HtmlHelper <TModel> htmlHelper, Expression <Func <TModel, RadarChartSample[]> > expression, HtmlRadarChartRendererSettings settings) { if (expression == null) { throw new ArgumentNullException(nameof(expression)); } if (settings == null) { throw new ArgumentNullException(nameof(settings)); } ModelMetadata metadata = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData); RadarChartSample[] samples = metadata.Model == null ? null : metadata.Model as RadarChartSample[]; return(RadarChartHelper(htmlHelper, samples, settings)); }