public QueryBuilder(CodeWizard codeWizard, QueryBuilderType type) : base(codeWizard) { this._type = type; base.WizardPanels.Add(new SelectDatabasePanel(base.ServiceProvider)); if (type == QueryBuilderType.Select) { base.WizardPanels.Add(new BuildSelectPanel(base.ServiceProvider)); base.WizardPanels.Add(new QueryPreviewPanel(base.ServiceProvider)); base.WizardPanels.Add(new NameSelectMethodPanel(base.ServiceProvider)); this.Text = "SELECT Data Code Wizard"; } else if (type == QueryBuilderType.Delete) { base.WizardPanels.Add(new BuildDeletePanel(base.ServiceProvider)); base.WizardPanels.Add(new QueryPreviewPanel(base.ServiceProvider)); base.WizardPanels.Add(new NameNonQueryMethodPanel(base.ServiceProvider, "MyDeleteMethod")); this.Text = "DELETE Data Code Wizard"; } else if (type == QueryBuilderType.Update) { base.WizardPanels.Add(new BuildUpdatePanel(base.ServiceProvider)); base.WizardPanels.Add(new QueryPreviewPanel(base.ServiceProvider)); base.WizardPanels.Add(new NameNonQueryMethodPanel(base.ServiceProvider, "MyUpdateMethod")); this.Text = "UPDATE Data Code Wizard"; } else if (type == QueryBuilderType.Insert) { base.WizardPanels.Add(new BuildInsertPanel(base.ServiceProvider)); base.WizardPanels.Add(new NameNonQueryMethodPanel(base.ServiceProvider, "MyInsertMethod")); this.Text = "INSERT Data Code Wizard"; } base.Size = new Size(510, 0x198); }
public CodeWizardForm(CodeWizard codeWizard) : base(codeWizard.ServiceProvider) { this._codeWizard = codeWizard; base.TaskBorderStyle = BorderStyle.FixedSingle; base.TaskGlyph = CodeWizardFormGlyph; base.TaskAbout = true; }
public static string Run(CodeWizard codeWizard, IServiceProvider serviceProvider, CodeDomProvider codeDomProvider, QueryBuilderType type) { IUIService service = (IUIService) serviceProvider.GetService(typeof(IUIService)); IDatabaseManager manager = (IDatabaseManager) serviceProvider.GetService(typeof(IDatabaseManager)); if (codeDomProvider != null) { ICodeGenerator generator = codeDomProvider.CreateGenerator(); if (generator != null) { QueryBuilder form = new QueryBuilder(codeWizard, type); if (service.ShowDialog(form) == DialogResult.OK) { StringWriter w = new StringWriter(); CodeGeneratorOptions o = new CodeGeneratorOptions(); CodeMemberMethod method = new CodeMemberMethod(); method.Name = form.MethodName; IDictionary dictionary = new HybridDictionary(true); foreach (QueryParameter parameter in form.Parameters) { string variableNameFromParameterName = GetVariableNameFromParameterName(parameter.Name); if (dictionary[variableNameFromParameterName] == null) { System.Type typeFromDbType = QueryParameter.GetTypeFromDbType(parameter.Type); method.Parameters.Add(new CodeParameterDeclarationExpression(typeFromDbType, variableNameFromParameterName)); dictionary[variableNameFromParameterName] = string.Empty; } } method.ReturnType = new CodeTypeReference(form.ReturnType); method.Attributes = MemberAttributes.Final; method.Statements.AddRange(BuildConnection((IDataProviderDatabase) form.Database, ((IDataProviderDatabase) form.Database).ConnectionString)); method.Statements.Add(new CodeSnippetStatement(string.Empty)); method.Statements.Add(BuildQueryString(form.Query)); method.Statements.AddRange(BuildCommand((IDataProviderDatabase) form.Database)); method.Statements.Add(new CodeSnippetStatement(string.Empty)); int num = 0; dictionary = new HybridDictionary(true); foreach (QueryParameter parameter2 in form.Parameters) { string str2 = GetVariableNameFromParameterName(parameter2.Name); if (dictionary[str2] == null) { method.Statements.AddRange(BuildDbParameterAssignment((IDataProviderDatabase) form.Database, parameter2.Name, parameter2.Type, codeDomProvider)); num++; dictionary[str2] = string.Empty; } } if (num > 0) { method.Statements.Add(new CodeSnippetStatement(string.Empty)); } if (type == QueryBuilderType.Select) { if (form.ReturnType == typeof(IDataReader)) { method.Statements.AddRange(BuildSelectReturnDataReader()); } else { method.Statements.AddRange(BuildSelectReturnDataSet((IDataProviderDatabase) form.Database)); } } else { method.Statements.AddRange(BuildExecuteNonQuery()); } CodeTypeDeclaration e = new CodeTypeDeclaration("TempType"); e.Members.Add(method); generator.GenerateCodeFromType(e, w, o); string s = w.ToString(); w = new StringWriter(); CodeTypeDeclaration declaration2 = new CodeTypeDeclaration("TempType"); generator.GenerateCodeFromType(declaration2, w, o); string str4 = w.ToString(); w = new StringWriter(); StringReader reader = new StringReader(s); StringReader reader2 = new StringReader(str4); string str5 = reader.ReadLine(); string str6 = reader2.ReadLine(); while (str5 != null) { if (str5 != str6) { w.WriteLine(str5); } else { str6 = reader2.ReadLine(); } str5 = reader.ReadLine(); } return w.ToString(); } } } return string.Empty; }