/// <summary> /// Adds a field for every argument that the DataMethos needs in order to be invoked /// </summary> /// <param name="method">DataMethod which parameters will be used as fields</param> public override void AddFields(MethodInfo method) { if (method == null) { throw new ArgumentNullException("dmethod"); } uint order = 0; //add a field for each parameter foreach (ParameterInfo param in method.GetParameters()) { FormField field; field = ObjectForm.CreateField(param.ParameterType); //set common values field.Container = this; field.Name = param.Name; field.Required = !param.IsOptional && !param.IsOut; field.CaptionControl.Text = new System.Resources.ResourceManager(method.DeclaringType).GetString(method.GetFriendlyFullName().Replace('.', '_') + '_' + param.Name); field.SortOrder = order++; Fields.Add(field); } }
/// <summary> /// Creates a field for a DataMember /// </summary> public void AddFields(MemberInfo member) { //if there's no values defined, exit if (member == null) { throw new ArgumentNullException(nameof(member)); } //field FormField fieldMin, fieldMax; Type returnType = MemberExpression.GetReturnType(member); //DateTime and numeric, create range fields if (returnType.Equals(typeof(DateTime)) || returnType.IsNumeric()) { //create fields fieldMin = ObjectForm.CreateField(returnType); fieldMax = ObjectForm.CreateField(returnType); //set id fieldMin.Name += "_0"; fieldMax.Name += "_1"; //labels fieldMin.CaptionControl.Text += Resources.Strings.OKHOSTING_ORM_UI_Forms_FilterDataForm_Min; fieldMax.CaptionControl.Text += Resources.Strings.OKHOSTING_ORM_UI_Forms_FilterDataForm_Max; //set container fieldMin.Container = this; fieldMax.Container = this; //not required fieldMin.Required = false; fieldMax.Required = false; //set to false always fieldMin.TableWide = false; fieldMax.TableWide = false; //add Fields.Add(fieldMin); Fields.Add(fieldMax); } //single value fields else { //create field fieldMin = ObjectForm.CreateField(returnType); //set container fieldMin.Container = this; //not required fieldMin.Required = false; //set to false always fieldMin.TableWide = false; //add Fields.Add(fieldMin); } }