private void WriteSingleReadData(string resultClassName, DatabaseResultSet result) { //single result set using (_cb.BeginNest("private static void ReadData(IDataReader rdr, ICollection<" + resultClassName + "> result)")) { using (_cb.BeginNest("while (rdr.Read())")) { _cb.AppendLine("var record = new " + resultClassName + "();"); for (int index = 0; index < result.Columns.Count; index++) { var column = result.Columns[index]; var name = column.NetName ?? NameFixer.ToPascalCase(column.Name); var dt = column.DataType; var dataType = dt != null?dt.NetCodeName(column) : column.DbDataType; if (!string.Equals(dataType, "String", StringComparison.OrdinalIgnoreCase) && !dataType.EndsWith("[]", StringComparison.OrdinalIgnoreCase)) { dataType += "?"; //nullable } //manage DbNull _cb.AppendLine("record." + name + " = (" + dataType + ")FixNull(rdr[" + index + "]);"); } _cb.AppendLine("result.Add(record);"); } } }
public void TestSingularNames() { using (var t = new BulkTester((x, r) => NameFixer.MakeSingular(x).ShouldBe(r, x))) { t.Test("categories", "category"); t.Test("products", "product"); t.Test("CATEGORIES", "CATEGORY"); t.Test("PRODUCTS", "PRODUCT"); t.Test("NOAM", "NOAM"); } }
public static string ArgumentCamelCaseName(DatabaseArgument argument) { var name = argument.NetName; if (string.IsNullOrEmpty(name)) { name = NameFixer.ToPascalCase(argument.Name); argument.NetName = name; } return(Char.ToLowerInvariant(name[0]) + (name.Length > 1 ? name.Substring(1) : string.Empty)); }
public static SyntaxTree MoveNamesToCorrectNamespaces(SyntaxTree tree, Dictionary <string, string> namesToNamespaces) { if (tree.FilePath.EndsWith("manual.cs")) { return(tree); } var nameFixer = new NameFixer(namesToNamespaces); var newTree = nameFixer.FixNames(tree); return(CSharpSyntaxTree.ParseText(newTree.GetText(), null, tree.FilePath)); }
private void WriteProperties(DatabaseResultSet result) { foreach (var column in result.Columns) { if (string.IsNullOrEmpty(column.NetName)) { column.NetName = NameFixer.ToPascalCase(column.Name); } var dataType = TranslateDataTypeToCSharp(column.DbDataType); if (!string.Equals(dataType, "String", StringComparison.OrdinalIgnoreCase) && !dataType.EndsWith("[]", StringComparison.OrdinalIgnoreCase)) { dataType += "?"; //nullable } _cb.AppendAutomaticProperty(dataType, column.NetName); } }
public void ToPascalCaseTest() { //ARRANGE var dict = new Dictionary <string, string>(); //pascalcase dict.Add("START_DATE", "StartDate"); //underscore dict.Add("EMPLOYEE_ID", "EmployeeId"); dict.Add("EMPLOYEE ID", "EmployeeId"); //spaces dict.Add("CategoryId", "CategoryId"); //if mixed case, preserve it //singularization dict.Add("Cars", "Car"); dict.Add("rates", "Rate"); dict.Add("Boxes", "Box"); dict.Add("Categories", "Category"); dict.Add("queries", "Query"); dict.Add("Statuses", "Status"); dict.Add("People", "Person"); //complex titlecase dict.Add("les naufragés d'ythaq", "LesNaufragésDythaq"); dict.Add("Database_IO", "DatabaseIO"); //mixed case with uppercase acronym //Id recognition dict.Add("CategoryID", "CategoryId"); //weird db names dict.Add("$NAME", "Name"); foreach (var item in dict) { var name = item.Key; var expected = item.Value; //ACT var actual = NameFixer.ToPascalCase(name); //ASSERT Assert.AreEqual(expected, actual); } }
public static List <SyntaxTree> MoveNamesToCorrectNamespaces(List <SyntaxTree> trees, Dictionary <string, string> namesToNamespaces) { List <SyntaxTree> ret = new List <SyntaxTree>(); var nameFixer = new NameFixer(namesToNamespaces); foreach (SyntaxTree tree in trees) { if (tree.FilePath.EndsWith("manual.cs")) { ret.Add(tree); } else { var newTree = nameFixer.FixNames(tree); newTree = CSharpSyntaxTree.ParseText(newTree.GetText().ToString(), null, tree.FilePath); ret.Add(newTree); } } return(ret); }
public void ToCamelCaseTest() { //ARRANGE var dict = new Dictionary <string, string>(); //pascalcase dict.Add("START_DATE", "startDate"); //underscore dict.Add("EMPLOYEE_ID", "employeeId"); dict.Add("EMPLOYEE ID", "employeeId"); //spaces dict.Add("CategoryId", "categoryId"); //if mixed case, preserve it //no singularization dict.Add("Cars", "cars"); //complex titlecase dict.Add("les naufragés d'ythaq", "lesNaufragésDythaq"); dict.Add("Database_IO", "databaseIO"); //mixed case with uppercase acronym //Id recognition dict.Add("CategoryID", "categoryId"); //weird db names dict.Add("$NAME", "name"); //c# keywords dict.Add("NAMESPACE", "@namespace"); dict.Add("CLASS", "@class"); foreach (var item in dict) { var name = item.Key; var expected = item.Value; //ACT var actual = NameFixer.ToCamelCase(name); //ASSERT Assert.AreEqual(expected, actual); } }
public SprocLogic(DatabaseStoredProcedure storedProcedure) { _storedProcedure = storedProcedure; _className = _storedProcedure.NetName ?? (_storedProcedure.NetName = NameFixer.ToPascalCase(_storedProcedure.Name)); }
public TreeRewriterForAdding(NameFixer parent, Dictionary <string, MovedData> namespaceToMovedData) { this.parent = parent; this.namespaceToMovedData = namespaceToMovedData; }