Example #1
0
        public static void SetupParameter(ValueLine vl, ChartParameterEmbedded parameter)
        {
            var scriptParameter = parameter.ScriptParameter;

            vl.LabelColumns = new BsColumn(6);
            vl.LabelText    = scriptParameter.Name;

            if (scriptParameter.Type == ChartParameterType.Number || scriptParameter.Type == ChartParameterType.String)
            {
                vl.ValueLineType = ValueLineType.TextBox;
            }
            else if (scriptParameter.Type == ChartParameterType.Enum)
            {
                vl.ValueLineType = ValueLineType.Enum;

                var token = scriptParameter.GetToken(parameter.ParentChart);

                var compatible = scriptParameter.GetEnumValues().Where(a => a.CompatibleWith(token)).ToList();
                vl.ReadOnly       = compatible.Count <= 1;
                vl.EnumComboItems = compatible.Select(ev => new SelectListItem
                {
                    Value    = ev.Name,
                    Text     = ev.Name,
                    Selected = ((string)vl.UntypedValue) == ev.Name
                }).ToList();

                if (!vl.ValueHtmlProps.IsNullOrEmpty())
                {
                    vl.ValueHtmlProps.Clear();
                }
            }


            vl.ValueHtmlProps["class"] = "sf-chart-redraw-onchange";
        }
Example #2
0
        private static FixTokenResult FixParameter(ChartParameterEmbedded item, ref string val)
        {
            var error = item.PropertyCheck(nameof(item.Value));

            if (error == null)
            {
                return(FixTokenResult.Nothing);
            }

            SafeConsole.WriteLineColor(ConsoleColor.White, "Parameter Name: {0}".FormatWith(item.ScriptParameter.Name));
            SafeConsole.WriteLineColor(ConsoleColor.White, "Parameter Definition: {0}".FormatWith(item.ScriptParameter.ValueDefinition));
            SafeConsole.WriteLineColor(ConsoleColor.White, "CurrentValue: {0}".FormatWith(item.Value));
            SafeConsole.WriteLineColor(ConsoleColor.White, "Error: {0}.".FormatWith(error));
            SafeConsole.WriteLineColor(ConsoleColor.Yellow, "- s: Skip entity");
            SafeConsole.WriteLineColor(ConsoleColor.DarkRed, "- r: Remove parame");
            SafeConsole.WriteLineColor(ConsoleColor.Red, "- d: Delete entity");
            SafeConsole.WriteLineColor(ConsoleColor.Green, "- freeText: New value");

            string answer = Console.ReadLine();

            if (answer == null)
            {
                throw new InvalidOperationException("Impossible to synchronize interactively without Console");
            }

            string a = answer.ToLower();

            if (a == "s")
            {
                return(FixTokenResult.SkipEntity);
            }

            if (a == "r")
            {
                return(FixTokenResult.RemoveToken);
            }

            if (a == "d")
            {
                return(FixTokenResult.DeleteEntity);
            }

            val = answer;
            return(FixTokenResult.Fix);
        }
Example #3
0
    public static bool SynchronizeColumns(this ChartScript chartScript, IChartBase chart, PostRetrievingContext?ctx)
    {
        bool result = false;

        for (int i = 0; i < chartScript.Columns.Count; i++)
        {
            if (chart.Columns.Count <= i)
            {
                chart.Columns.Add(new ChartColumnEmbedded());
                result = true;
            }

            chart.Columns[i].parentChart  = chart;
            chart.Columns[i].ScriptColumn = chartScript.Columns[i];

            if (!result)
            {
                result = chart.Columns[i].IntegrityCheck() != null;
            }
        }

        if (chart.Columns.Count > chartScript.Columns.Count)
        {
            chart.Columns.RemoveRange(chartScript.Columns.Count, chart.Columns.Count - chartScript.Columns.Count);
            result = true;
        }

        if (chart.Parameters.Modified != ModifiedState.Sealed)
        {
            var chartScriptParameters = chartScript.AllParameters().ToList();

            if (chart.Parameters.Select(a => a.Name).OrderBy().SequenceEqual(chartScriptParameters.Select(a => a.Name).OrderBy()))
            {
                foreach (var cp in chart.Parameters)
                {
                    var sp = chartScriptParameters.FirstEx(a => a.Name == cp.Name);

                    cp.parentChart     = chart;
                    cp.ScriptParameter = sp;

                    //if (cp.PropertyCheck(() => cp.Value).HasText())
                    //    cp.Value = sp.DefaultValue(cp.GetToken());
                }
            }
            else
            {
                var byName = chart.Parameters.ToDictionary(a => a.Name);
                chart.Parameters.Clear();
                foreach (var sp in chartScriptParameters)
                {
                    var cp = byName.TryGetC(sp.Name);

                    if (cp != null)
                    {
                        cp.parentChart     = chart;
                        cp.ScriptParameter = sp;
                        ctx?.ForceModifiedState.Add(cp, ModifiedState.SelfModified);
                        //if (cp.PropertyCheck(() => cp.Value).HasText())
                        //    cp.Value = sp.DefaultValue(cp.GetToken());
                    }
                    else
                    {
                        cp = new ChartParameterEmbedded
                        {
                            Name            = sp.Name,
                            parentChart     = chart,
                            ScriptParameter = sp,
                        };

                        cp.Value = sp.ValueDefinition.DefaultValue(sp.GetToken(chart));
                    }

                    chart.Parameters.Add(cp);
                }
            }
        }

        return(result);
    }