private static void GenerateEntities() { TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; DataTable tables = Islemler.GetTables(); foreach (DataRow item in tables.Rows) { string Content = string.Empty; string TableName = item["TABLE_NAME"].ToString(); string FolderName = item["FOLDER_NAME"].ToString(); string Columns = string.Empty; DataTable columns = Islemler.GetColumnsNotInPK(TableName); DataTable ForeingKeys = Islemler.GetFK(TableName); DataTable Referances = Islemler.GetRef(TableName); TableName = textInfo.ToTitleCase(textInfo.ToLower(TableName)).Replace("_", ""); foreach (DataRow Col in columns.Rows) { string ColumnName = textInfo.ToTitleCase(textInfo.ToLower(Col["COLUMN_NAME"].ToString())).Replace("_", ""); string DbType = Col["DATA_TYPE"].ToString(); string DataType = string.Empty; switch (DbType) { case "NUMBER": if (string.IsNullOrEmpty(Col["DATA_SCALE"].ToString()) || Col["DATA_SCALE"].ToString() == "0") { DataType = "int"; } else { DataType = "decimal"; } break; case "CHAR": DataType = "string"; break; case "VARCHAR2": DataType = "string"; break; case "DATE": DataType = "DateTime"; break; case "LONG": DataType = "string"; break; case "LONG RAW": DataType = "string"; break; case "BLOB": DataType = "string"; break; case "CLOB": DataType = "string"; break; default: DataType = "string"; break; } Columns += @" public virtual " + DataType + " " + ColumnName + " { get; set; }"; } string FKs = string.Empty; foreach (DataRow fk in ForeingKeys.Rows) { FKs += Environment.NewLine + Environment.NewLine + "\t\tpublic virtual " + textInfo.ToTitleCase(textInfo.ToLower(fk["R_TABLE_NAME"].ToString())).Replace("_", "") + " " + textInfo.ToTitleCase(textInfo.ToLower(fk["R_TABLE_NAME"].ToString())).Replace("_", "") + " { get; set; }"; } string Refs = string.Empty; foreach (DataRow r in Referances.Rows) { Refs += Environment.NewLine + Environment.NewLine + "\t\tpublic virtual IList<" + textInfo.ToTitleCase(textInfo.ToLower(r["TABLE_NAME"].ToString())).Replace("_", "") + "> " + textInfo.ToTitleCase(textInfo.ToLower(r["TABLE_NAME"].ToString())).Replace("_", "") + " { get; set; }"; } Content = @"using System; using bilisimHR.Common.Core.Entity; using System.Collections.Generic; namespace " + Namespace + FolderName + @" { public class " + TableName + @" : Entity<int> {" + Columns + FKs + Refs + @" } } "; CreateFiles(TableName, FolderName, Content); } }
private static void GenerateModel() { TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; DataTable tables = Islemler.GetTables(); foreach (DataRow item in tables.Rows) { string Content = string.Empty; string TableName = item["TABLE_NAME"].ToString(); string FolderName = item["FOLDER_NAME"].ToString(); string Columns = string.Empty; DataTable columns = Islemler.GetColumnsNotInPK(TableName); DataTable ForeingKeys = Islemler.GetFK(TableName); DataTable Referances = Islemler.GetRef(TableName); TableName = textInfo.ToTitleCase(textInfo.ToLower(TableName)).Replace("_", ""); foreach (DataRow Col in columns.Rows) { string ColumnName = textInfo.ToTitleCase(textInfo.ToLower(Col["COLUMN_NAME"].ToString())).Replace("_", ""); string DbType = Col["DATA_TYPE"].ToString(); string DataType = string.Empty; switch (DbType) { case "NUMBER": DataType = "decimal"; break; case "CHAR": DataType = "string"; break; case "VARCHAR2": DataType = "string"; break; case "DATE": DataType = "DateTime"; break; case "LONG": DataType = "string"; break; case "LONG RAW": DataType = "string"; break; case "BLOB": DataType = "string"; break; case "CLOB": DataType = "string"; break; default: DataType = "string"; break; } Columns += @" Map(x => x." + ColumnName + @").Column(""" + Col["COLUMN_NAME"].ToString() + @""")" + (Col["NULLABLE"].ToString() == "N" ? ".Not" : string.Empty) + @".Nullable();"; } string FKs = string.Empty; foreach (DataRow fk in ForeingKeys.Rows) { FKs += Environment.NewLine + "\t\t\tReferences(x => x." + textInfo.ToTitleCase(textInfo.ToLower(fk["R_TABLE_NAME"].ToString())).Replace("_", "") + @").Column(""" + fk["COLUMN_NAME"].ToString() + @""");"; } string Refs = string.Empty; foreach (DataRow r in Referances.Rows) { Refs += Environment.NewLine + Environment.NewLine + @"\t\t\tHasMany(x => x." + textInfo.ToTitleCase(textInfo.ToLower(r["TABLE_NAME"].ToString())).Replace("_", "") + @").KeyColumn(""" + r["COLUMN_NAME"].ToString() + @""").Inverse().Cascade.None().ForeignKeyConstraintName(""" + r["CONSTRAINT_NAME"].ToString() + @""");"; } Content = @"using bilisimHR.Common.Helper; using bilisimHR.DataLayer.Core.Entities." + FolderName + @"; namespace " + Namespace + FolderName + @" { public class " + TableName + @"Map: EntityBaseMap<" + TableName + @"> { public " + TableName + @"Map() { Table(""" + item["TABLE_NAME"].ToString() + @"""); LazyLoad(); " + Columns + FKs + Refs + @" } } } "; CreateFiles(TableName + "Map", FolderName, Content); } }
private static void GenerateModel() { TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; DataTable tables = Islemler.GetTables(); foreach (DataRow item in tables.Rows) { string Content = string.Empty; string TableName = item["TABLE_NAME"].ToString(); string FolderName = item["FOLDER_NAME"].ToString(); string Columns = string.Empty; DataTable ForeingKeys = Islemler.GetFK(TableName); TableName = textInfo.ToTitleCase(textInfo.ToLower(TableName)).Replace("_", ""); string ServiceName = TableName.Substring(0, 1).ToLower() + TableName.Substring(1, TableName.Length - 1); string x = "private readonly I" + TableName + @"Repository _" + ServiceName + @"Repository;"; string y = "I" + TableName + @"Repository " + ServiceName + @"Repository"; string z = "_" + ServiceName + @"Repository = " + ServiceName + @"Repository;"; string a = string.Empty; int row = 0; foreach (DataRow fk in ForeingKeys.Rows) { row++; string FkTableName = fk["R_TABLE_NAME"].ToString(); FkTableName = textInfo.ToTitleCase(textInfo.ToLower(FkTableName)).Replace("_", ""); string FkServiceName = FkTableName.Substring(0, 1).ToLower() + FkTableName.Substring(1, FkTableName.Length - 1); string FkColumnName = textInfo.ToTitleCase(textInfo.ToLower(fk["COLUMN_NAME"].ToString())).Replace("_", ""); x += @" private readonly I" + FkTableName + @"Repository _" + FkServiceName + @"Repository;"; y += ", I" + FkTableName + @"Repository " + FkServiceName + @"Repository"; z += @" _" + FkServiceName + @"Repository = " + FkServiceName + @"Repository;"; a += FkTableName + @" pk" + row + @" = _" + FkServiceName + @"Repository.Get((int)model." + FkColumnName + @"); dto." + FkTableName + @" = pk" + row + @"; if (pk" + row + @" == null) throw new ArgumentNullException(""" + FkColumnName + @" ArgumentNullException Insert Async""); "; } Content = @"using bilisimHR.DataLayer.Core.Repositories." + FolderName + @"; using bilisimHR.Services." + FolderName + @".Interfaces; using System; using System.Collections.Generic; using System.Threading.Tasks; using bilisimHR.Business.Model." + FolderName + @"; using bilisimHR.DataLayer.Core.Entities." + FolderName + @"; using bilisimHR.Common.Core.AutoMapping; namespace bilisimHR.Services." + FolderName + @".Classes { public class " + TableName + @"Service : I" + TableName + @"Service { " + x + @" public " + TableName + @"Service(" + y + @") { " + z + @" } public Task DeleteAsync(int id) { _" + ServiceName + @"Repository.Delete(id); return Task.FromResult<object>(null); } public Task<IList<" + TableName + @"Model>> GetAllAsync() { var dal = _" + ServiceName + @"Repository.GetAll(); if (dal == null) return Task.FromResult<IList<" + TableName + @"Model>>(null); else { IList<" + TableName + @"Model> modelList = new List<" + TableName + @"Model>(); foreach (var user in dal) modelList.Add(AutoMapperGenericHelper<" + TableName + @", " + TableName + @"Model>.Convert(user)); return Task.FromResult<IList<" + TableName + @"Model>>(modelList); //IQueryable<" + TableName + @"Model> modelList = AutoMapperGenericHelper<" + TableName + @", " + TableName + @"Model>.ConvertAsQueryable(dal); //return Task.FromResult<IList<" + TableName + @"Model>>(modelList.ToList()); } } public Task<" + TableName + @"Model> GetAsync(int id) { var dal = _" + ServiceName + @"Repository.Get(id); if (dal == null) return Task.FromResult<" + TableName + @"Model>(null); else { " + TableName + @"Model model = AutoMapperGenericHelper<" + TableName + @", " + TableName + @"Model>.Convert(dal); return Task.FromResult(model); } } public Task<object> InsertAsync(" + TableName + @"Model model) { if (model == null) throw new ArgumentNullException(""" + TableName + @"Model ArgumentNullException Insert Async""); " + TableName + @" dto = AutoMapperGenericHelper<" + TableName + @"Model, " + TableName + @">.Convert(model); " + a + @" var id = _" + ServiceName + @"Repository.Insert(dto); return Task.FromResult<object>(id); } public Task UpdateAsync(" + TableName + @"Model model) { if (model == null) throw new ArgumentNullException(""" + TableName + @"Model ArgumentNullException Insert Async""); " + TableName + @" dto = AutoMapperGenericHelper<" + TableName + @"Model, " + TableName + @">.Convert(model); " + a + @" _" + ServiceName + @"Repository.Update(dto); return Task.FromResult<object>(null); } } } "; CreateFiles(TableName + @"Service", FolderName, Content); } }
private static void GenerateModel() { TextInfo textInfo = new CultureInfo("en-US", false).TextInfo; DataTable tables = Islemler.GetTables(); foreach (DataRow item in tables.Rows) { string Content = string.Empty; string TableName = item["TABLE_NAME"].ToString(); string FolderName = item["FOLDER_NAME"].ToString(); string Columns = string.Empty; DataTable columns = Islemler.GetColumns(TableName); DataTable ForeingKeys = Islemler.GetFK(TableName); DataTable Referances = Islemler.GetRef(TableName); TableName = textInfo.ToTitleCase(textInfo.ToLower(TableName)).Replace("_", ""); foreach (DataRow Col in columns.Rows) { string ColumnName = textInfo.ToTitleCase(textInfo.ToLower(Col["COLUMN_NAME"].ToString())).Replace("_", ""); string DbType = Col["DATA_TYPE"].ToString(); string DataType = string.Empty; switch (DbType) { case "NUMBER": DataType = "decimal"; break; case "CHAR": DataType = "string"; break; case "VARCHAR2": DataType = "string"; break; case "DATE": DataType = "DateTime"; break; case "LONG": DataType = "string"; break; case "LONG RAW": DataType = "string"; break; case "BLOB": DataType = "string"; break; case "CLOB": DataType = "string"; break; default: DataType = "string"; break; } Columns += @" " + (Col["NULLABLE"].ToString() == "N" ? Environment.NewLine + "\t\t[Required]" : string.Empty) + @" public " + DataType + " " + ColumnName + " { get; set; }"; } string FKs = string.Empty; foreach (DataRow fk in ForeingKeys.Rows) { FKs += Environment.NewLine + Environment.NewLine + "\t\tpublic " + textInfo.ToTitleCase(textInfo.ToLower(fk["R_TABLE_NAME"].ToString())).Replace("_", "") + "Model " + textInfo.ToTitleCase(textInfo.ToLower(fk["R_TABLE_NAME"].ToString())).Replace("_", "") + " { get; }"; } string Refs = string.Empty; foreach (DataRow r in Referances.Rows) { Refs += Environment.NewLine + Environment.NewLine + "\t\tpublic virtual IList<" + textInfo.ToTitleCase(textInfo.ToLower(r["TABLE_NAME"].ToString())).Replace("_", "") + "Model> " + textInfo.ToTitleCase(textInfo.ToLower(r["TABLE_NAME"].ToString())).Replace("_", "") + " { get; set; }"; } Content = @"using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations; namespace " + Namespace + FolderName + @" { public class " + TableName + @"Model : BaseModel<uint> {" + Columns + FKs + Refs + @" } } "; CreateFiles(TableName + "Model", FolderName, Content); } }