Ejemplo n.º 1
0
 public ExecutionContext(CopInfo copInfo, object inputObj, object outputObj, PropertyInfo inputProperty)
 {
     CopInfo       = copInfo;
     InputObj      = inputObj;
     OutputObj     = outputObj;
     InputProperty = inputProperty;
 }
Ejemplo n.º 2
0
        internal static ICopyStrategy GetStrategy(CopInfo copInfo)
        {
            Guard.NotNull(copInfo, nameof(copInfo));

            switch (copInfo)
            {
            case var _ when copInfo.CopyOption == CopyOption.SkipIfInputNull &&
                copInfo.TargetPropertyName != null && copInfo.IsInputPropertyNull:
                return(new SkipIfInputNullToDifferentTargetNameStrategy());

            case var _ when copInfo.TargetPropertyName != null:
                return(new CopyAllToDifferentTargetNameStrategy());

            case var _ when copInfo.CopyOption == CopyOption.SkipIfInputNull:
                return(new SkipIfInputNullStrategy());

            case var _ when copInfo.CopyOption == CopyOption.CopyAlways:
                return(new CopyAllStrategy());

            default:
                throw new InvalidOperationException("Cannot match strategy for given CopInfo.");
            }
        }