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); }
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); }