Example #1
0
 public BindField(
     IComplexTypeBindingBuilder typeBuilder,
     IComplexTypeFieldBindingBuilder fieldBuilder)
 {
     _typeBuilder = typeBuilder
                    ?? throw new ArgumentNullException(nameof(typeBuilder));
     _fieldBuilder = fieldBuilder
                     ?? throw new ArgumentNullException(nameof(fieldBuilder));
 }
Example #2
0
        public IBindField <T> Field <TPropertyType>(
            Expression <Func <T, TPropertyType> > field)
        {
            if (field == null)
            {
                throw new ArgumentNullException(nameof(field));
            }

            IComplexTypeFieldBindingBuilder fieldBuilder =
                ComplexTypeFieldBindingBuilder.New()
                .SetMember(field.ExtractMember());

            _typeBuilder.AddField(fieldBuilder);
            return(new BindField <T>(_typeBuilder, fieldBuilder));
        }
        public IComplexTypeBindingBuilder AddField(
            IComplexTypeFieldBindingBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (!builder.IsComplete())
            {
                // TODO : resources
                throw new ArgumentException("notcompleted", nameof(builder));
            }

            if (builder is ComplexTypeFieldBindingBuilder b)
            {
                _bindingInfo.Fields = _bindingInfo.Fields.Add(b.Create());
                return(this);
            }

            // TODO : resources
            throw new NotSupportedException("builder not supported");
        }
        public IComplexTypeBindingBuilder AddField(
            IComplexTypeFieldBindingBuilder builder)
        {
            if (builder == null)
            {
                throw new ArgumentNullException(nameof(builder));
            }

            if (!builder.IsComplete())
            {
                throw new ArgumentException(
                          TypeResources.ComplexTypeBindingBuilder_FieldNotComplete,
                          nameof(builder));
            }

            if (builder is ComplexTypeFieldBindingBuilder b)
            {
                _fields.Add(b);
                return(this);
            }

            throw new NotSupportedException(TypeResources
                                            .ComplexTypeBindingBuilder_FieldBuilderNotSupported);
        }