/// <inheritdoc/> public void Initialize( Func <TParent, IEnumerable <TChild> > sourceFunc, Maybe <Expression <Func <TParent, ICollection <TChild> > > > maybeTargetExpression, ICreateCopyHelper <TChild, TConcreteChild, TParent> createCopyHelper) { sourceFunc.NotNull(nameof(sourceFunc)); createCopyHelper.NotNull(nameof(createCopyHelper)); this.sourceFunc = sourceFunc; this.maybeTargetExpression = maybeTargetExpression; this.createCopyHelper = createCopyHelper; }
/// <inheritdoc/> public void Initialize( Func <T, TChild> sourceFunc, Expression <Func <T, TChild> > targetFuncExpr, ICreateCopyHelper <TChild, TConcreteChild, T> createCopyHelper) { createCopyHelper.NotNull(nameof(createCopyHelper)); sourceFunc.NotNull(nameof(sourceFunc)); targetFuncExpr.NotNull(nameof(targetFuncExpr)); this.targetExpression = targetFuncExpr; this.sourceFunc = sourceFunc; this.createCopyHelper = createCopyHelper; }