예제 #1
0
 public override IEnumerable <Row> Execute(IEnumerable <Row> rows)
 {
     foreach (var row in rows)
     {
         if (ShouldRun(row))
         {
             foreach (var pair in Parameters)
             {
                 _context.Put(pair.Value.Name, pair.Value.Value ?? row[pair.Key]);
             }
             var sw = StringWriters.GetObject();
             Velocity.Evaluate(_context, sw, string.Empty, Template);
             var sb = sw.GetStringBuilder();
             row[OutKey] = Common.ConversionMap[OutType](sb.ToString());
             sb.Clear();
             StringWriters.PutObject(sw);
             foreach (var pair in Parameters)
             {
                 _context.Remove(pair.Value.Name);
             }
         }
         else
         {
             Skip();
         }
         yield return(row);
     }
 }