private string CreateAdaptersNamespace(string generatorDataSetName) { if (generatorDataSetName.StartsWith("[", StringComparison.Ordinal) && generatorDataSetName.EndsWith("]", StringComparison.Ordinal)) { generatorDataSetName = generatorDataSetName.Substring(1, generatorDataSetName.Length - 2); } return(MemberNameValidator.GenerateIdName(generatorDataSetName + "TableAdapters", this.CodeProvider, false)); }
private void AddShouldSerializeSingleTableMethods(CodeTypeDeclaration dataSourceClass) { foreach (DesignTable table in this.codeGenerator.TableHandler.Tables) { string generatorTablePropName = table.GeneratorTablePropName; if ((this.codeGenerator.CodeProvider.IsValidIdentifier(generatorTablePropName) && generatorTablePropName.StartsWith("[", StringComparison.Ordinal)) && generatorTablePropName.EndsWith("]", StringComparison.Ordinal)) { generatorTablePropName = generatorTablePropName.Substring(1, generatorTablePropName.Length - 2); } string name = MemberNameValidator.GenerateIdName("ShouldSerialize" + generatorTablePropName, this.codeGenerator.CodeProvider, false); CodeMemberMethod method = CodeGenHelper.MethodDecl(CodeGenHelper.GlobalType(typeof(bool)), name, MemberAttributes.Private); method.Statements.Add(CodeGenHelper.Return(CodeGenHelper.Primitive(false))); dataSourceClass.Members.Add(method); } }
internal static bool SupportsMultipleNamespaces(CodeDomProvider codeProvider) { string name = MemberNameValidator.GenerateIdName("TestNs1", codeProvider, false); string str2 = MemberNameValidator.GenerateIdName("TestNs2", codeProvider, false); CodeNamespace namespace2 = new CodeNamespace(name); CodeNamespace namespace3 = new CodeNamespace(str2); CodeCompileUnit compileUnit = new CodeCompileUnit(); compileUnit.Namespaces.Add(namespace2); compileUnit.Namespaces.Add(namespace3); StringWriter writer = new StringWriter(CultureInfo.CurrentCulture); codeProvider.GenerateCodeFromCompileUnit(compileUnit, writer, new CodeGeneratorOptions()); string str3 = writer.GetStringBuilder().ToString(); return(str3.Contains(name) && str3.Contains(str2)); }
internal static string FixIdName(string inVarName) { if (lookupIdentifiers == null) { InitLookupIdentifiers(); } string str = (string)lookupIdentifiers[inVarName]; if (str == null) { str = MemberNameValidator.GenerateIdName(inVarName, codeProvider, false); while (lookupIdentifiers.ContainsValue(str)) { str = '_' + str; } lookupIdentifiers[inVarName] = str; } return(str); }
internal void AddRowColumnProperties(CodeTypeDeclaration rowClass) { bool flag = false; string generatorRowClassName = this.codeGenerator.TableHandler.Tables[this.table.TableName].GeneratorRowClassName; string generatorTableVarName = this.codeGenerator.TableHandler.Tables[this.table.TableName].GeneratorTableVarName; foreach (DesignColumn column in this.columns) { CodeExpression expression; CodeExpression expression2; DataColumn dataColumn = column.DataColumn; Type dataType = dataColumn.DataType; string generatorColumnPropNameInRow = column.GeneratorColumnPropNameInRow; string generatorColumnPropNameInTable = column.GeneratorColumnPropNameInTable; GenericNameHandler handler = new GenericNameHandler(new string[] { generatorColumnPropNameInRow }, this.codeGenerator.CodeProvider); CodeMemberProperty property = CodeGenHelper.PropertyDecl(CodeGenHelper.Type(dataType), generatorColumnPropNameInRow, MemberAttributes.Public | MemberAttributes.Final); CodeStatement tryStmnt = CodeGenHelper.Return(CodeGenHelper.Cast(CodeGenHelper.GlobalType(dataType), CodeGenHelper.Indexer(CodeGenHelper.This(), CodeGenHelper.Property(CodeGenHelper.Field(CodeGenHelper.This(), generatorTableVarName), generatorColumnPropNameInTable)))); if (!dataColumn.AllowDBNull) { goto Label_0440; } string str5 = (string)dataColumn.ExtendedProperties["nullValue"]; switch (str5) { case null: case "_throw": tryStmnt = CodeGenHelper.Try(tryStmnt, CodeGenHelper.Catch(CodeGenHelper.GlobalType(typeof(InvalidCastException)), handler.AddNameToList("e"), CodeGenHelper.Throw(CodeGenHelper.GlobalType(typeof(StrongTypingException)), System.Design.SR.GetString("CG_ColumnIsDBNull", new object[] { dataColumn.ColumnName, this.table.TableName }), handler.GetNameFromList("e")))); goto Label_0440; default: { expression = null; switch (str5) { case "_null": if (dataColumn.DataType.IsSubclassOf(typeof(System.ValueType))) { this.codeGenerator.ProblemList.Add(new DSGeneratorProblem(System.Design.SR.GetString("CG_TypeCantBeNull", new object[] { dataColumn.ColumnName, dataColumn.DataType.Name }), ProblemSeverity.NonFatalError, column)); continue; } expression2 = CodeGenHelper.Primitive(null); goto Label_03AE; case "_empty": if (dataColumn.DataType == typeof(string)) { expression2 = CodeGenHelper.Property(CodeGenHelper.TypeExpr(CodeGenHelper.GlobalType(dataColumn.DataType)), "Empty"); } else { expression2 = CodeGenHelper.Field(CodeGenHelper.TypeExpr(CodeGenHelper.Type(generatorRowClassName)), generatorColumnPropNameInRow + "_nullValue"); ConstructorInfo constructor = dataColumn.DataType.GetConstructor(new Type[] { typeof(string) }); if (constructor == null) { this.codeGenerator.ProblemList.Add(new DSGeneratorProblem(System.Design.SR.GetString("CG_NoCtor0", new object[] { dataColumn.ColumnName, dataColumn.DataType.Name }), ProblemSeverity.NonFatalError, column)); continue; } constructor.Invoke(new object[0]); expression = CodeGenHelper.New(CodeGenHelper.Type(dataColumn.DataType), new CodeExpression[0]); } goto Label_03AE; } if (!flag) { this.table.NewRow(); flag = true; } object valueObj = this.codeGenerator.RowHandler.RowGenerator.ConvertXmlToObject.Invoke(dataColumn, new object[] { str5 }); DSGeneratorProblem problem = CodeGenHelper.GenerateValueExprAndFieldInit(column, valueObj, str5, generatorRowClassName, generatorColumnPropNameInRow + "_nullValue", out expression2, out expression); if (problem != null) { this.codeGenerator.ProblemList.Add(problem); continue; } break; } } Label_03AE :; tryStmnt = CodeGenHelper.If(CodeGenHelper.MethodCall(CodeGenHelper.This(), "Is" + generatorColumnPropNameInRow + "Null"), new CodeStatement[] { CodeGenHelper.Return(expression2) }, new CodeStatement[] { tryStmnt }); if (expression != null) { CodeMemberField field = CodeGenHelper.FieldDecl(CodeGenHelper.Type(dataColumn.DataType.FullName), generatorColumnPropNameInRow + "_nullValue"); field.Attributes = MemberAttributes.Private | MemberAttributes.Static; field.InitExpression = expression; rowClass.Members.Add(field); } Label_0440: property.GetStatements.Add(tryStmnt); property.SetStatements.Add(CodeGenHelper.Assign(CodeGenHelper.Indexer(CodeGenHelper.This(), CodeGenHelper.Property(CodeGenHelper.Field(CodeGenHelper.This(), generatorTableVarName), generatorColumnPropNameInTable)), CodeGenHelper.Value())); rowClass.Members.Add(property); if (dataColumn.AllowDBNull) { string name = MemberNameValidator.GenerateIdName("Is" + generatorColumnPropNameInRow + "Null", this.codeGenerator.CodeProvider, false); CodeMemberMethod method = CodeGenHelper.MethodDecl(CodeGenHelper.GlobalType(typeof(bool)), name, MemberAttributes.Public | MemberAttributes.Final); method.Statements.Add(CodeGenHelper.Return(CodeGenHelper.MethodCall(CodeGenHelper.This(), "IsNull", CodeGenHelper.Property(CodeGenHelper.Field(CodeGenHelper.This(), generatorTableVarName), generatorColumnPropNameInTable)))); rowClass.Members.Add(method); name = MemberNameValidator.GenerateIdName("Set" + generatorColumnPropNameInRow + "Null", this.codeGenerator.CodeProvider, false); CodeMemberMethod method2 = CodeGenHelper.MethodDecl(CodeGenHelper.GlobalType(typeof(void)), name, MemberAttributes.Public | MemberAttributes.Final); method2.Statements.Add(CodeGenHelper.Assign(CodeGenHelper.Indexer(CodeGenHelper.This(), CodeGenHelper.Property(CodeGenHelper.Field(CodeGenHelper.This(), generatorTableVarName), generatorColumnPropNameInTable)), CodeGenHelper.Field(CodeGenHelper.GlobalTypeExpr(typeof(Convert)), "DBNull"))); rowClass.Members.Add(method2); } } }