Esempio n. 1
0
        private static object?ReturnIfElse(FilterState pkg)
        {
            if (pkg.Data == null || pkg.SourcePath == null || pkg.SourcePath.Length < 1)
            {
                return(null);
            }
            var param = pkg.Params;

            object?GetMappedData(string s) => string.IsNullOrWhiteSpace(s) ? null : GetDataAtPath(pkg.NewPath(s.Split('.')));

            // Get the params.
            // Get the data
            // If data == expected return recurse success path, else recurse fail path

            var target = GetDataAtPath(pkg);

            var expectKey = nameof(IfElseMappingParams.ExpectedValue);
            var expected  = param.ContainsKey(expectKey) ? param[expectKey] : "";

            var sameKey  = nameof(IfElseMappingParams.Same);
            var samePath = param.ContainsKey(sameKey) ? param[sameKey] : "";

            var differentKey  = nameof(IfElseMappingParams.Different);
            var differentPath = param.ContainsKey(differentKey) ? param[differentKey] : "";

            if (target == null)
            {
                return(GetMappedData(string.IsNullOrEmpty(expected) ? samePath : differentPath));
            }

            return(GetMappedData(target.ToString() == expected ? samePath : differentPath));
        }
Esempio n. 2
0
        private static object?JoinValues(FilterState pkg)
        {
            if (pkg.Data == null || pkg.SourcePath == null || pkg.SourcePath.Length < 1)
            {
                return(null);
            }
            var param = pkg.Params;

            object?GetMappedData(string s) => string.IsNullOrWhiteSpace(s) ? null : GetDataAtPath(pkg.NewPath(s.Split('.') ?? Array.Empty <string>()));

            // Get the params.
            // Get the data
            // If data == expected return recurse success path, else recurse fail path

            var target = GetDataAtPath(pkg);

            var infixKey = nameof(JoinPathsMappingParams.Infix);
            var infix    = param.ContainsKey(infixKey) ? param[infixKey] ?? "" : "";

            var extraDataKey  = nameof(JoinPathsMappingParams.ExtraData);
            var extraDataPath = param.ContainsKey(extraDataKey) ? param[extraDataKey] : "";

            if (string.IsNullOrWhiteSpace(extraDataPath !))
            {
                return(target);
            }

            var extraData = GetMappedData(extraDataPath)?.ToString();

            if (string.IsNullOrWhiteSpace(extraData !))
            {
                return(target);
            }

            return(target + infix + extraData);
        }