Exemple #1
0
 private void Transform(SourceContext sourceContext, TransformationMap transformationMap)
 {
     if (transformationMap.MappingType == MappingType.Field)
     {
         if (!sourceContext.Source.ContainsKey(transformationMap.KeyExpression))
         {
             SetEmptyOutput(sourceContext, transformationMap);
             sourceContext.AddErrorForDestinationColumn(transformationMap.Output,
                                                        $"Source key {transformationMap.KeyExpression} is missed",
                                                        SourceContext.ErrorTypeTransformation);
         }
         else
         {
             if (transformationMap.TransformOnlyIfColumnExists &&
                 sourceContext.ListOfSchemaMissedColumns.Contains(transformationMap.KeyExpression))
             {
                 sourceContext.Destination.Remove(transformationMap.Output);
             }
             else
             {
                 sourceContext.Destination[transformationMap.Output] =
                     sourceContext.Source[transformationMap.KeyExpression];
             }
         }
     }
     else if (transformationMap.MappingType == MappingType.Expression)
     {
         sourceContext.Destination[transformationMap.Output] =
             _expressionEvaluator.Evaluate(transformationMap.Expression);
     }
     else if (transformationMap.MappingType == MappingType.DataMapping)
     {
     }
 }
Exemple #2
0
 private void SafeRun(Action action, SourceContext sourceContext, TransformationMap map)
 {
     try
     {
         action();
     }
     catch (Exception e)
     {
         SetEmptyOutput(sourceContext, map);
         sourceContext.AddErrorForDestinationColumn(map.Output, e, SourceContext.ErrorTypeCleanup);
     }
 }
Exemple #3
0
 private void SetEmptyOutput(SourceContext context, TransformationMap map)
 {
     context.Destination[map.Output] = null;
 }