public ControlBuilder <TFlowDataType, TParentType, TParentDataType, TContextType> SetControlType(ControlType controlType, string uiTemplate = null) { Element.ControlType = controlType; if (string.IsNullOrEmpty(uiTemplate)) { Element.UiTemplate = _controlMapper.GetDefault(controlType); } else { _controlMapper.CheckForTemplate(controlType, uiTemplate); Element.UiTemplate = uiTemplate; } return(this); }
AddControl <TPropertyType>(Expression <Func <TDataType, TPropertyType> > property, ControlType controlType = ControlType.Text, string name = null) { var expression = (MemberExpression)property.Body; var attrs = expression.Member.GetCustomAttributes(false); var validators = GenerateValidationModel.Generate(attrs, _validationMapper); var modelProperty = expression.Member.Name.FirstCharToLower(); // name = name != null ? name : modelProperty; var builder = new ControlBuilder <TFlowDataType, CollectionBuilder <TFlowDataType, TParentType, TParentDataType, TDataType, TContextType>, TDataType, TContextType>( this, name, _controlMapper, controlType); builder.Element.ModelProperty = modelProperty; builder.Element.TaskPath = $"{Element.TaskPath}.{modelProperty}"; builder.Element.DataType = property.ReturnType; builder.Element.UiTemplate = _controlMapper.GetDefault(controlType); builder.Element.Tasks = new List <TaskDefinition>(); if (validators != null) { builder.Element.Validators = validators; } Element.Elements.Add(builder.Element); return(builder); }