private void EvaluateParam(string name, NCalc.ParameterArgs args, ICommandContext ctx, IServiceProvider svc)
        {
            switch (name.ToLowerInvariant())
            {
            case "pi":
                args.Result = Math.PI;
                break;

            case "e":
                args.Result = Math.E;
                break;

            case "all":
            case "allin":
                args.Result = Cur(svc, ctx);
                break;

            case "half":
                args.Result = Cur(svc, ctx) / 2;
                break;

            case "max":
                args.Result = Max(svc, ctx);
                break;

            default:
                break;
            }
        }
        private static void EvaluateParam(string name, NCalc.ParameterArgs args, ICommandContext ctx, IServiceProvider svc)
        {
            switch (name.ToUpperInvariant())
            {
            case "PI":
                args.Result = Math.PI;
                break;

            case "E":
                args.Result = Math.E;
                break;

            case "ALL":
            case "ALLIN":
                args.Result = Cur(svc, ctx);
                break;

            case "HALF":
                args.Result = Cur(svc, ctx) / 2;
                break;

            case "MAX":
                args.Result = Max(svc, ctx);
                break;

            default:
                break;
            }
        }
Beispiel #3
0
        private static void Expr_EvaluateParameter(string name, NCalc.ParameterArgs args)
        {
            switch (name.ToLowerInvariant())
            {
            case "pi": args.Result = Math.PI;
                break;

            case "e": args.Result = Math.E;
                break;
            }
        }
        private void EvaluateParameter(string name, NCalc.ParameterArgs args)
        {
            if (_dataset == null)
            {
                return;
            }

            Debug.Assert(_dataset.Values != null);

            var referenceName = name;

            // "this" is an alias for the currently evaluated descriptor (if any)
            if (_descriptor != null && String.Equals(referenceName, IdentifierThis, StringComparison.OrdinalIgnoreCase))
            {
                referenceName = _descriptor.Value.Reference;
            }

            // "required" means that a value for current descriptor must be specified (or calculated with defaults)
            if (_descriptor != null && String.Equals(referenceName, IdentifierRequired, StringComparison.OrdinalIgnoreCase))
            {
                DataSetValue dummy;
                args.HasResult = true;
                args.Result    = _dataset.Values.TryGetValue(_descriptor.Value.Reference, out dummy);

                return;
            }

            // Ending a parameter name with "?" returns null if it doesn't exist
            if (referenceName.EndsWith(OperatorNullCoalesce.ToString(), StringComparison.OrdinalIgnoreCase))
            {
                referenceName.TrimEnd(OperatorNullCoalesce);
                args.HasResult = true;
                args.Result    = null;
            }

            DataSetValue item;

            if (_dataset.Values.TryGetValue(referenceName, out item))
            {
                args.HasResult = true;
                args.Result    = item.Value;
            }
        }
Beispiel #5
0
 private void Exp_EvaluateParameter(string name, NCalc.ParameterArgs args)
 {
     //Avoid non-defined parameters with their names
     args.Result = name;
 }