Пример #1
0
 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();
            }
        }
Пример #3
0
        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();
        }
Пример #5
0
        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");
        }
Пример #8
0
 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();
 }
Пример #9
0
 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();
 }
Пример #10
0
 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();
 }
Пример #11
0
        public override void VisitMethodDeclaration(MethodDeclaration md)
        {
            AppendIndented("{0} {1}", md.ReturnType, md.MethodName);
            md.Parameters.Accept(this);

            Code.AppendLine();
            AppendIndentedLine("{{");
            AppendIndentedLine("}}");
        }
Пример #12
0
        private ProxyModel RenderCode()
        {
            EnsureWorkspace();
            SetClientCode();
            ProxyModel proxyModel = GetProxyModel();

            WarnNonVirtualMethods(proxyModel);
            Code.AppendLine(proxyModel.Render());
            return(proxyModel);
        }
Пример #13
0
 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();
 }
Пример #14
0
 protected void AppendLine()
 {
     if (SkipNewLinesLevel == 0)
     {
         Code.AppendLine();
     }
     else if (ReplaceNewLineWithSpace)
     {
         Code.Append(" ");
     }
 }
Пример #15
0
        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();
 }
Пример #21
0
        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();
 }
Пример #27
0
        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();
        }
Пример #29
0
        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();
            }
        }