Esempio n. 1
0
        private void PickUp(object o, string prefix, string label, DCInfo info)
        {
            DCPartInfo part = CreateDCPart(info, label);

            foreach (PropertyInfo prop in o.GetType().GetProperties())
            {
                if (Attribute.IsDefined(prop, typeof(IgnoreAttribute)))
                {
                    IgnoreAttribute attr = GetAttribute <IgnoreAttribute>(prop);

                    if (attr.Fields == null || attr.Fields.Length == 0)
                    {
                        continue;
                    }
                }

                string name = !String.IsNullOrEmpty(prefix) ? String.Format("{0}-{1}", prefix, prop.Name) : prop.Name;

                if (Attribute.IsDefined(prop, typeof(ChildrenAttribute)))
                {
                    DescAttribute desc = GetAttribute <DescAttribute>(prop);
                    PickUp(prop.GetValue(o, null), name,
                           desc != null ? desc.Title : String.Empty, info);
                }
                else if (Attribute.IsDefined(prop, typeof(OptionAttribute)))
                {
                    part.Params.Add(GetDCParam(prop, name));
                }
            }

            SortParam(part);
        }
Esempio n. 2
0
        private DataControlParameter GetDCParam(PropertyInfo prop, string name)
        {
            DataControlParameter param = new DataControlParameter();

            param.Name     = name;
            param.Required = Attribute.IsDefined(prop, typeof(RequiredAttribute));

            DescAttribute desc = GetAttribute <DescAttribute>(prop);

            if (desc != null)
            {
                param.Title       = desc.Title;
                param.Description = desc.Description;

                OptionAttribute option = GetAttribute <OptionAttribute>(prop);
                param.Type    = option.Type;
                param.Maximum = option.Maxnum.ToString();
                param.Minium  = option.Minnum.ToString();
                param.Length  = option.Length;
                param.Data    = option.Data;
            }

            WeightAttribute weight = GetAttribute <WeightAttribute>(prop);

            if (weight != null)
            {
                param.Weight = weight != null ? weight.Weight : 0;
            }

            DefaultAttribute defaultVal = GetAttribute <DefaultAttribute>(prop);

            if (defaultVal != null)
            {
                param.DefaultValue = defaultVal.Value.ToString();
            }

            return(param);
        }