public override void GenerateCreateUsingAllColumns() { Code.Append("\t\tpublic void Create("); foreach (var column in Table.Columns) { if (column.Value.ManagedType.IsValueType) { Code.Append(column.Value + "? " + column.Value.FieldName + ", "); } else { Code.Append(column.Value + " " + column.Value.FieldName + ", "); } } Code.Remove(Code.Length - 2, 2); Code.Append(")\n"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tCreate(new " + Table.ClassName); Code.AppendLine("\t\t\t{"); foreach (var column in Table.Columns) { Code.AppendLine("\t\t\t\t" + column.Value.FieldName + " = " + column.Value.FieldName + ", "); } Code.Remove(Code.Length - 2, 2); Code.AppendLine("\n\t\t\t});"); Code.AppendLine("\t\t}"); Code.AppendLine(); }
public override void GenerateSelectByWithTop() { foreach (var column in Table.Columns) { if (string.Compare(column.Value.DatabaseType, "ntext", true) == 0 || string.Compare(column.Value.DatabaseType, "image", true) == 0) { continue; } Code.AppendLine("\t\t#region SELECT TOP(?).... WHERE " + column.Value.FieldName + "=?"); Code.AppendLine(); GenerateXmlDoc(2, "Retrieves the first set of items specified by count by " + column.Value.FieldName, new KeyValuePair <string, string>(column.Value.FieldName, column.Value.FieldName + " value"), new KeyValuePair <string, string>("count", "Number of records to be retrieved")); Code.AppendFormat( column.Value.ManagedType.IsValueType ? "\t\tpublic System.Collections.Generic.List<{0}> SelectBy{2}({1}? {2}, int count)" : "\t\tpublic System.Collections.Generic.List<{0}> SelectBy{2}({1} {2}, int count)", Table.ClassName, column.Value.ManagedType, column.Value.FieldName); Code.AppendLine(); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\treturn DataContext." + Table.ClassName + ".Where(c => c." + column.Value.FieldName + "== " + column.Value.FieldName + ").Take(count).ToList();"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); } }
public override void SelectByTwoColumns() { foreach (var firstColumn in Table.Columns) { if (String.Compare(firstColumn.Value.DatabaseType, "ntext", StringComparison.OrdinalIgnoreCase) == 0 || String.Compare(firstColumn.Value.DatabaseType, "image", StringComparison.OrdinalIgnoreCase) == 0) { continue; } foreach (var secondColumn in Table.Columns) { if (secondColumn.Equals(firstColumn)) { continue; } Code.AppendFormat("\t\tpublic System.Collections.Generic.List<{0}> SelectBy{3}And{6}({1}{2} {3}, {4}{5} {6})", Table.ClassName, firstColumn.Value.ManagedType, firstColumn.Value.ManagedType.IsValueType ? "?" : "", firstColumn.Value.FieldName, secondColumn.Value.ManagedType, secondColumn.Value.ManagedType.IsValueType ? "?" : "", secondColumn.Value.FieldName); Code.AppendLine(); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tif (!FakeDataSource.Any(c => c." + firstColumn.Value.FieldName + " == " + firstColumn.Value.FieldName + " && c." + secondColumn.Value.FieldName + " == " + secondColumn.Value.FieldName + ")) return null;"); Code.AppendLine("\t\t\treturn FakeDataSource.Where(c => c." + firstColumn.Value.FieldName + " == " + firstColumn.Value.FieldName + " && c." + secondColumn.Value.FieldName + " == " + secondColumn.Value.FieldName + ").ToList();"); Code.AppendLine("\t\t}"); Code.AppendLine(); } } }
public override void GenerateCreateUsingAllColumns() { Code.AppendLine("\t\t#region INSERT " + Table.Name + " by fields"); Code.AppendLine(); GenerateXmlDoc(2, "Inserts a new record to the table specifying all fields", Table.Columns.Select(column => new KeyValuePair <string, string>(column.Value.FieldName, column.Value.FieldName + " value")).ToArray()); Code.Append("\t\tpublic void Create("); foreach (var column in Table.Columns) { if (column.Value.ManagedType.IsValueType) { Code.Append(column.Value + "? " + column.Value.FieldName + ", "); } else { Code.Append(column.Value + " " + column.Value.FieldName + ", "); } } Code.Remove(Code.Length - 2, 2); Code.Append(")\n"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tthrow new System.NotImplementedException();"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); }
public override void GenerateDeleteBy() { foreach (var column in Table.Columns) { if (System.String.Compare(column.Value.DatabaseType, "ntext", System.StringComparison.OrdinalIgnoreCase) == 0 || System.String.Compare(column.Value.DatabaseType, "image", System.StringComparison.OrdinalIgnoreCase) == 0) { continue; } Code.AppendFormat("\t\tpublic int DeleteBy{1}({0}{2} {1})\n", column.Value.ManagedType, column.Value.FieldName, column.Value.ManagedType.IsValueType ? "?" : string.Empty); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tvar items = FakeDataSource.Where(c => c." + column.Value.FieldName + " == " + column.Value.FieldName + ");"); Code.AppendLine("\t\t\tvar count = 0;"); Code.AppendLine("\t\t\tforeach (var item in new System.Collections.Generic.List<" + Table.ClassName + ">(items))"); Code.AppendLine("\t\t\t{"); Code.AppendLine("\t\t\t\tFakeDataSource.Remove(item);"); Code.AppendLine("\t\t\t\tcount++;"); Code.AppendLine("\t\t\t}"); Code.AppendLine("\t\t\treturn count;"); Code.AppendLine("\t\t}"); Code.AppendLine(); } }
public override void GenerateSelectBy() { foreach (var column in Table.Columns) { if (string.Compare(column.Value.DatabaseType, "ntext", true) == 0 || string.Compare(column.Value.DatabaseType, "image", true) == 0) { continue; } Code.AppendLine("\t\t#region SELECT .... WHERE " + column.Value.FieldName + "=?"); Code.AppendLine(); GenerateXmlDoc(2, "Retrieves a collection of items by " + column.Value.FieldName, new KeyValuePair <string, string>(column.Value.FieldName, column.Value.FieldName + " value")); Code.AppendFormat( column.Value.ManagedType.IsValueType ? "\t\tpublic System.Collections.Generic.List<{0}> SelectBy{2}({1}? {2})" : "\t\tpublic System.Collections.Generic.List<{0}> SelectBy{2}({1} {2})", Table.ClassName, column.Value.ManagedType, column.Value.FieldName); Code.AppendLine(); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\treturn DataContext." + Table.ClassName + ".Where(c => c." + column.Value.FieldName + "== " + column.Value.FieldName + ").ToList();"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); } }
public override void VisitMethodDeclaration(MethodDeclaration md) { AppendIndented("Sub {0}", md.MethodName); md.Parameters.Accept(this); Code.AppendLine(); AppendIndentedLine("End Sub"); }
public override void GeneratePopulate() { Code.AppendLine("\t\tpublic void Create(System.Collections.Generic.IEnumerable<" + Table.ClassName + "> items)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tFakeDataSource.AddRange(items);"); Code.AppendLine("\t\t}"); Code.AppendLine(); }
public override void GenerateCreate() { Code.AppendLine("\t\tpublic void Create(" + Table.ClassName + " item)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tFakeDataSource.Add(item);"); Code.AppendLine("\t\t}"); Code.AppendLine(); }
public override void GenerateCount() { Code.AppendLine("\t\tpublic int Count()"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\treturn FakeDataSource.Count;"); Code.AppendLine("\t\t}"); Code.AppendLine(); }
public override void VisitMethodDeclaration(MethodDeclaration md) { AppendIndented("{0} {1}", md.ReturnType, md.MethodName); md.Parameters.Accept(this); Code.AppendLine(); AppendIndentedLine("{{"); AppendIndentedLine("}}"); }
private ProxyModel RenderCode() { EnsureWorkspace(); SetClientCode(); ProxyModel proxyModel = GetProxyModel(); WarnNonVirtualMethods(proxyModel); Code.AppendLine(proxyModel.Render()); return(proxyModel); }
public override void GenerateDeleteAll() { Code.AppendLine("\t\tpublic int Purge()"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tvar returnValue = FakeDataSource.Count;"); Code.AppendLine("\t\t\tFakeDataSource.Clear();"); Code.AppendLine("\t\t\treturn returnValue;"); Code.AppendLine("\t\t}"); Code.AppendLine(); }
protected void AppendLine() { if (SkipNewLinesLevel == 0) { Code.AppendLine(); } else if (ReplaceNewLineWithSpace) { Code.Append(" "); } }
public CSharpFakeDataAccessLayerCodeGenerator(StringBuilder code, Table table, bool supportSqlCeTransactions = true) : base(code, table) { Code.AppendLine("\t\tprivate readonly System.Collections.Generic.List<" + Table.ClassName + "> FakeDataSource = new System.Collections.Generic.List<" + Table.ClassName + ">();"); Code.AppendLine(); if (supportSqlCeTransactions) { Code.AppendLine("\t\tpublic System.Data.IDbTransaction Transaction { get; set; }"); Code.AppendLine(); } }
private void GenerateUpdateMany() { Code.AppendLine("\t\t#region UPDATE MANY"); Code.AppendLine(); GenerateXmlDoc(2, "Updates a collection of items", new KeyValuePair <string, string>("items", "Items to update")); Code.AppendLine("\t\tpublic void Update(System.Collections.Generic.IEnumerable<" + Table.ClassName + "> items)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tthrow new System.NotImplementedException();"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); }
public override void GeneratePopulate() { Code.AppendLine("\t\t#region INSERT MANY"); Code.AppendLine(); GenerateXmlDoc(2, "Populates the table with a collection of items"); Code.AppendLine("\t\tpublic void Create(System.Collections.Generic.IEnumerable<" + Table.ClassName + "> items)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tDataContext." + Table.ClassName + ".InsertAllOnSubmit(items);"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); }
public override void GenerateCreate() { Code.AppendLine("\t\t#region INSERT " + Table.Name); Code.AppendLine(); GenerateXmlDoc(2, "Inserts the item to the table", new KeyValuePair <string, string>("item", "Item to insert to the database")); Code.AppendLine("\t\tpublic void Create(" + Table.ClassName + " item)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tDataContext." + Table.ClassName + ".InsertOnSubmit(item);"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); }
public override void GenerateCount() { Code.AppendLine("\t\t#region COUNT " + Table.Name); Code.AppendLine(); GenerateXmlDoc(2, "Gets the number of records in the table"); Code.AppendLine("\t\tpublic int Count()"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\treturn DataContext." + Table.ClassName + ".Count();"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); }
private void GenerateDeleteMany() { Code.AppendLine("\t\t#region DELETE MANY"); Code.AppendLine(); GenerateXmlDoc(2, "Deletes a collection of item", new KeyValuePair <string, string>("items", "Items to delete")); Code.AppendLine("\t\tpublic void Delete(System.Collections.Generic.IEnumerable<" + Table.ClassName + "> items)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tDataContext." + Table.ClassName + ".DeleteAllOnSubmit(items);"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); }
public override void GenerateDelete() { Code.AppendLine("\t\tpublic void Delete(" + Table.ClassName + " item)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tFakeDataSource.Remove(item);"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\tpublic void Delete(System.Collections.Generic.IEnumerable<" + Table.ClassName + "> items)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tforeach (var item in items) FakeDataSource.Remove(item);"); Code.AppendLine("\t\t}"); Code.AppendLine(); }
public override void GenerateUpdate() { Code.AppendLine("\t\t#region UPDATE"); Code.AppendLine(); GenerateXmlDoc(2, "Updates the item", new KeyValuePair <string, string>("item", "Item to update")); Code.AppendLine("\t\tpublic void Update(" + Table.ClassName + " item)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tthrow new System.NotImplementedException();"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); GenerateUpdateMany(); }
public override void GenerateDelete() { Code.AppendLine("\t\t#region DELETE"); Code.AppendLine(); GenerateXmlDoc(2, "Deletes the item", new KeyValuePair <string, string>("item", "Item to delete")); Code.AppendLine("\t\tpublic void Delete(" + Table.ClassName + " item)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tDataContext." + Table.ClassName + ".DeleteOnSubmit(item);"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); GenerateDeleteMany(); }
public override void GenerateDeleteAll() { Code.AppendLine("\t\t#region Purge"); Code.AppendLine(); GenerateXmlDoc(2, "Purges the contents of the table"); Code.AppendLine("\t\tpublic int Purge()"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tvar count = Count();"); Code.AppendLine("\t\t\tDataContext." + Table.ClassName + ".DeleteAllOnSubmit(DataContext." + Table.ClassName + ".ToList());"); Code.AppendLine("\t\t\treturn count;"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); }
public override void GenerateSelectWithTop() { Code.AppendLine("\t\t#region SELECT TOP()"); Code.AppendLine(); GenerateXmlDoc(2, "Retrieves the first set of items specified by count as a generic collection", new KeyValuePair <string, string>("count", "Number of records to be retrieved")); Code.AppendLine("\t\tpublic System.Collections.Generic.List<" + Table.ClassName + "> ToList(int count)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\treturn DataContext." + Table.ClassName + ".Take(count).ToList();"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\tpublic " + Table.ClassName + "[] ToArray(int count)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\treturn DataContext." + Table.ClassName + ".Take(count).ToArray();"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); }
public override void GenerateSelectAll() { Code.AppendLine("\t\t#region SELECT *"); Code.AppendLine(); GenerateXmlDoc(2, "Retrieves all items as a generic collection"); Code.AppendLine("\t\tpublic System.Collections.Generic.List<" + Table.ClassName + "> ToList()"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\treturn DataContext." + Table.ClassName + ".ToList();"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\tpublic " + Table.ClassName + "[] ToArray()"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tvar list = ToList();"); Code.AppendLine("\t\t\treturn list != null ? list.ToArray() : null;"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); }
public override void GenerateSelectAll() { Code.AppendLine("\t\tpublic System.Collections.Generic.IEnumerable<" + Table.ClassName + "> ToEnumerable()"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\treturn FakeDataSource;"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\tpublic System.Collections.Generic.List<" + Table.ClassName + "> ToList()"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\treturn FakeDataSource;"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\tpublic " + Table.ClassName + "[] ToArray()"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tvar list = ToList();"); Code.AppendLine("\t\t\treturn list != null ? list.ToArray() : null;"); Code.AppendLine("\t\t}"); Code.AppendLine(); }
public override void GenerateCreateIgnoringPrimaryKey() { if (string.IsNullOrEmpty(Table.PrimaryKeyColumnName)) { return; } Code.AppendLine("\t\t#region INSERT Ignoring Primary Key"); Code.AppendLine(); GenerateXmlDoc(2, "Inserts a new record to the table without specifying the primary key", (from column in Table.Columns where column.Value.Name != Table.PrimaryKeyColumnName select new KeyValuePair <string, string>(column.Value.FieldName, column.Value.FieldName + " value")).ToArray()); Code.Append("\t\tpublic void Create("); foreach (var column in Table.Columns) { if (column.Value.Name == Table.PrimaryKeyColumnName) { continue; } if (column.Value.ManagedType.IsValueType) { Code.Append(column.Value + "? " + column.Value.FieldName + ", "); } else { Code.Append(column.Value + " " + column.Value.FieldName + ", "); } } Code.Remove(Code.Length - 2, 2); Code.Append(")"); Code.AppendLine(); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tthrow new System.NotImplementedException();"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); }
public override void GenerateUpdate() { Code.AppendLine("\t\tpublic void Update(" + Table.ClassName + " item)"); Code.AppendLine("\t\t{"); if (!string.IsNullOrEmpty(Table.PrimaryKeyColumnName)) { Code.AppendLine("\t\t\tfor (int i = 0; i < FakeDataSource.Count; i++)"); Code.AppendLine("\t\t\t{"); var column = Table.Columns.Values.First(c => c.IsPrimaryKey); Code.AppendLine("\t\t\t\tif (FakeDataSource[i]." + column.FieldName + " == item." + column.FieldName + ")"); Code.AppendLine("\t\t\t\t\tFakeDataSource[i] = item;"); Code.AppendLine("\t\t\t}"); } Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\tpublic void Update(System.Collections.Generic.IEnumerable<" + Table.ClassName + "> items)"); Code.AppendLine("\t\t{"); Code.AppendLine("\t\t\tforeach (var item in items) Update(item);"); Code.AppendLine("\t\t}"); Code.AppendLine(); }
public override void GenerateDeleteBy() { foreach (var column in Table.Columns) { if (string.Compare(column.Value.DatabaseType, "ntext", true) == 0 || string.Compare(column.Value.DatabaseType, "image", true) == 0) { continue; } Code.AppendLine("\t\t#region DELETE BY " + column.Value.FieldName); Code.AppendLine(); GenerateXmlDoc(2, "Delete records by " + column.Value.FieldName, new KeyValuePair <string, string>(column.Value.FieldName, column.Value.FieldName + " value")); Code.AppendFormat("\t\tpublic int DeleteBy{1}({0}{2} {1})", column.Value.ManagedType, column.Value.FieldName, column.Value.ManagedType.IsValueType ? "?" : string.Empty); Code.AppendLine("\n\t\t{"); Code.AppendLine("\t\t\tthrow new System.NotImplementedException();"); Code.AppendLine("\t\t}"); Code.AppendLine(); Code.AppendLine("\t\t#endregion"); Code.AppendLine(); } }