Esempio n. 1
0
        private void button2_Click(object sender, EventArgs e)
        {
            List <string> res = new List <string>();

            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                if (bool.Parse(row.Cells[0].Value.ToString()))
                {
                    res.Add(row.Cells[1].Value as string);
                }
            }

            Dictionary <string, GFieldInfo[]> gfiss = new Dictionary <string, GFieldInfo[]>();

            foreach (var t in Wizard.Schema.AllTables)
            {
                if (res.Contains(t.Name))
                {
                    var Fields = new List <GFieldInfo>();
                    foreach (var c in t.Columns.Values)
                    {
                        var c_i = new GFieldInfo();
                        c_i.Name     = c.Name;
                        c_i.Type     = c.Type.ToString();
                        c_i._db_type = c.DbType;
                        Fields.Add(c_i);
                    }
                    gfiss.Add(t.Name, Fields.ToArray());
                }
            }
            List <GeneralProperty> ths = new List <GeneralProperty>();

            foreach (KeyValuePair <string, GFieldInfo[]> gfis in gfiss)
            {
                GeneralProperty gp = new GeneralProperty();
                gp.Fields      = new List <GFieldInfo>(gfis.Value);
                gp.OwnerFields = new List <OwnerFieldInfo>();
                gp.TableName   = gfis.Key;
                ths.Add(gp);
            }
            Wizard.Tables = ths.ToArray();
            Wizard.NextStep();
        }
Esempio n. 2
0
        private CodeTypeReference _addField(GFieldInfo fieldinfo, CodeTypeDeclaration model)
        {
            CodeMemberField field = new CodeMemberField();

            field.Attributes = MemberAttributes.Private;
            field.Name       = "__" + fieldinfo.Name;

            CodeMemberProperty property = new CodeMemberProperty();

            property.Attributes = MemberAttributes.Public;
            property.Name       = fieldinfo.DisplayName;

            if (fieldinfo.Type.StartsWith("gen:"))
            {
                if (fieldinfo.Type.Substring(4).StartsWith("enum"))
                {
                    field.Type = property.Type = _getEnum(fieldinfo.Type, "_" + fieldinfo.Name, model);
                }
            }
            else
            {
                field.Type = property.Type = new CodeTypeReference(Type.GetType(fieldinfo.Type));
            }

            property.CustomAttributes.Add(
                new CodeAttributeDeclaration("DataField",
                                             new CodeAttributeArgument(
                                                 new CodePrimitiveExpression(fieldinfo.Name)
                                                 ),
                                             new CodeAttributeArgument(
                                                 new CodeFieldReferenceExpression(
                                                     new CodeTypeReferenceExpression("SerializeType"),
                                                     fieldinfo.SerializeType.ToString()
                                                     )
                                                 )
                                             )
                );
            if (fieldinfo.IsIndexField)
            {
                property.CustomAttributes.Add(
                    new CodeAttributeDeclaration("IndexField")
                    );
            }
            if (fieldinfo.DefaultValue != null)
            {
                property.CustomAttributes.Add(
                    new CodeAttributeDeclaration("DefaultValue",
                                                 new CodeAttributeArgument(
                                                     new CodePrimitiveExpression(fieldinfo.DefaultValue)
                                                     )
                                                 )
                    );
            }

            property.HasGet = true;
            property.GetStatements.Add(new CodeMethodReturnStatement(
                                           new CodeFieldReferenceExpression(
                                               new CodeThisReferenceExpression(),
                                               field.Name
                                               )
                                           ));

            property.HasSet = true;
            property.SetStatements.Add(new CodeMethodInvokeExpression(
                                           new CodeThisReferenceExpression(),
                                           "SetValue",
                                           new CodePrimitiveExpression(fieldinfo.Name),
                                           new CodePropertySetValueReferenceExpression()
                                           ));

            model.Members.Add(field);
            model.Members.Add(property);

            return(property.Type);
        }