예제 #1
0
 public override IEnumerable <string> Execute(string value, DependencyDataSource dependencyDataSource)
 {
     yield return(WebUtility.HtmlDecode(value));
 }
예제 #2
0
 public virtual void Resolve(DependencyDataSource dependencyDataSource)
 {
     Url        = dependencyDataSource.Resolve(UrlWithDependencies);
     Parameters = ParametersWithDependencies.ToDictionary(pred => pred.Key, pred => dependencyDataSource.Resolve(pred.Value));
     Headers    = HeadersWithDependencies.ToDictionary(pred => pred.Key, pred => dependencyDataSource.Resolve(pred.Value));
 }
예제 #3
0
        public override IEnumerable <string> Execute(decimal?value, DependencyDataSource dependencyDataSource)
        {
            var addendumDecimal = decimal.Parse(dependencyDataSource.Resolve(AddendumString), CultureInfo.InvariantCulture);

            yield return(ToString(value ?? 0 + addendumDecimal));
        }
예제 #4
0
        public override IEnumerable <string> Execute(string value, DependencyDataSource dependencyDataSource)
        {
            var bytes = Convert.FromBase64String(value);

            yield return(Encoding.UTF8.GetString(bytes));
        }
예제 #5
0
 public override IEnumerable <string> Execute(string value, DependencyDataSource dependencyDataSource)
 {
     return(Enumerable.Repeat(value, int.Parse(dependencyDataSource.Resolve(NumberString))));
 }
예제 #6
0
 public override IEnumerable <string> Execute(string value, DependencyDataSource dependencyDataSource)
 {
     return(value.Split(dependencyDataSource.ResolveAll(Separator).ToArray(), IgnoreEmptyEntries ? StringSplitOptions.RemoveEmptyEntries : StringSplitOptions.None));
 }
예제 #7
0
 public override IEnumerable <string> Execute(string value, DependencyDataSource dependencyDataSource)
 {
     return(EvalAction.Execute(EvalParams, value));
 }
예제 #8
0
 public override IEnumerable <string> Execute(string value, DependencyDataSource dependencyDataSource)
 {
     throw new NotSupportedException();
 }
예제 #9
0
        public override IEnumerable <string> Execute(string value, DependencyDataSource dependencyDataSource)
        {
            var options = RegexOptions.Compiled;

            if (!CaseSensitive)
            {
                options |= RegexOptions.IgnoreCase;
            }

            if (MultiLine)
            {
                options |= RegexOptions.Multiline;
            }

            var regex = new Regex(RegexPattern, options);

            var matches          = regex.Matches(value);
            var matchesToProcess = matches.Cast <Match>();

            switch (MatchProcessingMode)
            {
            case MatchProcessingModes.FirstResult:
                matchesToProcess = matchesToProcess.Take(1);
                break;
            }

            IList <string> extractedValues = new List <string>();

            foreach (var match in matchesToProcess)
            {
                var matchGroups = match.Groups
                                  .Cast <Group>()
                                  .Skip(1) //skip complete match itself
                                  .Select(group => group.Value.Trim())
                                  .Where(group => !string.IsNullOrEmpty(group));

                IEnumerable <string> extractedFromMatch;
                switch (MatchGroupProcessingMode)
                {
                case MatchGroupProcessingModes.FirstResult:
                    extractedFromMatch = matchGroups.Take(1);
                    break;

                case MatchGroupProcessingModes.Enumerate:
                    extractedFromMatch = matchGroups;
                    break;

                //case MatchProcessingModes.Concat:
                //    break;
                default:
                    throw new NotSupportedException();
                }

                foreach (var extractedValue in extractedFromMatch)
                {
                    extractedValues.Add(extractedValue);
                }
            }

            if (extractedValues.Count > 0)
            {
                return(extractedValues);
            }

            if (DefaultValue != null)
            {
                return(Enumerable.Repeat(DefaultValue, 1));
            }

            return(Enumerable.Empty <string>());
        }
예제 #10
0
        public override IEnumerable <string> Execute(decimal?value, DependencyDataSource dependencyDataSource)
        {
            var multiplierDecimal = decimal.Parse(dependencyDataSource.Resolve(MultiplierString), CultureInfo.InvariantCulture);

            yield return(ToString(value * multiplierDecimal));
        }
예제 #11
0
 public override IEnumerable <string> Execute(IEnumerable <decimal?> values, DependencyDataSource dependencyDataSource)
 {
     yield return(ToString(values.Sum()));
 }
예제 #12
0
 public override IEnumerable <string> Execute(IEnumerable <string> values, DependencyDataSource dependencyDataSource)
 {
     yield return(string.Join(dependencyDataSource.Resolve(Separator), values));
 }
예제 #13
0
 public override IEnumerable <string> Execute(IEnumerable <string> values, DependencyDataSource dependencyDataSource)
 {
     return(values.Take(int.Parse(dependencyDataSource.Resolve(NumberString))));
 }