示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }
示例#4
0
        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);
            }
        }