コード例 #1
0
ファイル: QueryBuilder.cs プロジェクト: ikvm/webmatrix
 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);
 }
コード例 #2
0
ファイル: CodeWizardForm.cs プロジェクト: ikvm/webmatrix
 public CodeWizardForm(CodeWizard codeWizard)
     : base(codeWizard.ServiceProvider)
 {
     this._codeWizard = codeWizard;
     base.TaskBorderStyle = BorderStyle.FixedSingle;
     base.TaskGlyph = CodeWizardFormGlyph;
     base.TaskAbout = true;
 }
コード例 #3
0
ファイル: SqlCodeWizard.cs プロジェクト: ikvm/webmatrix
 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;
 }