Beispiel #1
0
        public override async Task ProcessAsync(TagHelperContext context, TagHelperOutput output)
        {
            if (!isVisible)
            {
                output.SuppressOutput();
                return;
            }

            #region << Init >>
            var initSuccess = InitChart(context, output);

            if (!initSuccess)
            {
                return;
            }

            Chart = new ErpChart(Type, Labels, Datasets, ShowLegend);

            #endregion

            #region << Render Js>>
            var scriptJs = "<script>";
            scriptJs += "$(function(){";
            scriptJs += $"new Chart('{Id}', {{";
            scriptJs += $"type: '{ModelExtensions.GetLabel(Chart.Type)}',";
            scriptJs += $"data: " + JsonConvert.SerializeObject(Chart.Data) + ",";
            scriptJs += $"options: " + JsonConvert.SerializeObject(Chart.Options);
            scriptJs += "});";
            scriptJs += "});";
            scriptJs += "</script>";

            //var tooltipCallback = "{title: function(tooltipArray, data){return '';}, label: function(tooltipItem, data){return tooltipItem.xLabel + ' : ' + tooltipItem.yLabel;} }";
            //scriptJs = scriptJs.Replace("\"{{tooltipCallback}}\"", tooltipCallback);
            output.PostContent.AppendHtml(scriptJs);

            #endregion

            //prevents CS1998 warning (no use of await in async method)
            await Task.FromResult <object>(null);
        }