Example #1
0
        private void btnGenerate_Click(object sender, EventArgs e)
        {
            lbOutputs.Items.Clear();
            ListItem[] items = new ListItem[clbTables.CheckedItems.Count + clbViews.CheckedItems.Count];
            int itemIndex = 0;
            foreach (object item in clbTables.CheckedItems)
            {
                items[itemIndex] = item as ListItem;
                itemIndex++;
            }
            foreach (object item in clbViews.CheckedItems)
            {
                items[itemIndex] = item as ListItem;
                itemIndex++;
            }
            _SelectedItems = items;

            _CodeType = rbEntities.Checked ? CodeType.Entities : CodeType.DbContext;
            _DbContextName = tbDbContextName.Text;
            _DefaultNamespace = tbDefaultNamespace.Text;
            _OutputPath = tbPath.Text.EndsWith("\\") ? tbPath.Text : tbPath.Text + "\\";
            if (Directory.Exists(_OutputPath) == false)
                Directory.CreateDirectory(_OutputPath);

            Task.Factory.StartNew(StartToGenerate);
        }
Example #2
0
        private void GenerateEntityObject(ListItem objectItem)
        {
            string objectName = objectItem.Value;
            string className = GetClassName(objectName);
            string indent = string.Empty;
            using (FileStream fs = File.Create(string.Format("{0}{1}_Generated.cs", _OutputPath, className)))
            {
                using (StreamWriter sw = new StreamWriter(fs, Encoding.Default))
                {
                    // comments
                    WriteWarnningComments(sw);

                    // namespace declarations
                    WriteLine(sw, indent, GetNamespaceDeclarations());
                    sw.WriteLine();

                    //namespace
                    sw.Write("namespace ");
                    sw.WriteLine(_DefaultNamespace);

                    // the { for namespace
                    sw.WriteLine("{");
                    PushIndent(ref indent);

                    // class name
                    if (className != objectName)
                    {
                        WriteLine(sw, indent, string.Format("[Table(\"{0}\")]", objectName));
                    }
                    WriteLine(sw, indent, string.Format("public partial class {0}", className));

                    // the { for class
                    WriteLine(sw, indent, "{");

                    // properties
                    PushIndent(ref indent);
                    GenerateProperties(objectName, className, sw, indent);
                    PopIndent(ref indent);

                    // the } for class
                    WriteLine(sw, indent, "}");

                    // the } for namespace
                    PopIndent(ref indent);
                    WriteLine(sw, indent, "}");
                }
            }

            Action addDone = () => lbOutputs.Items.Add(objectName + ": done.");
            lbOutputs.Invoke(addDone);
        }