public BindingTargetVisitor(
     IModelFieldOf <TSource> source,
     IBindingTransformFactory transformFactory
     )
 {
     _source           = source;
     _transformFactory = transformFactory;
 }
        public static BindingTransformation CreateTransformation(
            this IBindingTransformFactory bindingTransformFactory,
            IModelField source, IModelField target
            )
        {
            var transformationBuilder = new FieldBindingTransformationBuilder(source, target, bindingTransformFactory);

            return(transformationBuilder.CreateBindingTransformation());
        }
 public FieldBindingTransformationBuilder(
     IModelField source,
     IModelField target,
     IBindingTransformFactory transformFactory
     )
 {
     _source           = source;
     _target           = target;
     _transformFactory = transformFactory;
 }
Exemple #4
0
        public virtual DataModelBindingBuilder <TSourceModel, TSourceField, TTargetModel, TTargetField> Bind(ModelFieldBindingTarget <TTargetField> bindingTarget,
                                                                                                             ModelFieldBindingSource <TSourceField> bindingSource,
                                                                                                             IBindingTransformFactory bindingTransformFactory)
        {
            if (bindingSource == null)
            {
                throw new ArgumentNullException(nameof(bindingSource));
            }

            if (bindingTarget == null)
            {
                throw new ArgumentNullException(nameof(bindingTarget));
            }

            var bindingTransformation = bindingTransformFactory.CreateTransformation(
                bindingSource.Field, bindingTarget.Field
                );

            var fieldBinding = new ModelFieldBinding <TSourceField, TTargetField>(
                bindingSource, bindingTarget, bindingTransformation
                );

            FieldBindings.Add(fieldBinding);

            return(this);
        }