コード例 #1
0
        // ------------------------------------------------ Entities Layer
        protected override void CreateEntitiesLayer()
        {
            TableNameInfo tableName = null;
            string        singleTableName = string.Empty, tablePluralName = string.Empty;


            foreach (var tableInfo in GeneratorSettingsManager.TARGET_DATABASE_TABLES_INFORMATIONS)
            {
                // گرفتن اسم جمع و مفرد جدول
                GetSingleAndPluralTableName(ref tableName, ref singleTableName, ref tablePluralName, tableInfo);

                // دریافت کدهای کلاس های ان تــی تــی ها
                string entitiesLayerClassContent = _entityGenerator.Create(
                    GeneratorSettingsManager.TARGET_DATABASE_NAME,
                    tableInfo.TableName,
                    tableInfo.TableSchema,
                    tableName,
                    GeneratorSettingsManager.TARGET_DATABASE_CONNECTION_STRING,
                    GeneratorSettingsManager.ENTITIES_NAMESPACE_NAME,
                    tableInfo.TableSchema, singleTableName,
                    tablePluralName,
                    GeneratorSettingsManager.ATTRIBUTE_CONTENT_TYPE);


                // ساخت فایل کلاس های ان تی تی ها
                CreateEntitiesClassFile(GeneratorSettingsManager.DESTINATION_PATH, singleTableName, tableInfo, entitiesLayerClassContent);
            }
        }
コード例 #2
0
ファイル: EntityGenerator.cs プロジェクト: wushian/Generator
        public string Create(
            string targetDbName,
            string targetTableName,
            string targetSchemaName,
            TableNameInfo targetTableNameInfo,
            string targetTableConnectionString,
            string entitiesNameSpaceName,
            string TableSchemaName,
            string tableSingleName,
            string tablePluralName,
            AttributesLanguageMode attributesLanguageMode)
        {
            this.AttributesLanguageMode = attributesLanguageMode;

            // گرفتن خصوصیات جدول جاری
            this.TargetTableProperties = TargetDatabaseDataReceiver.GetTargetTableProperties(targetDbName, targetTableName, targetTableConnectionString);

            // گرفتن ریلیشن های جدول جاری
            this.TargetTableRelations = TargetDatabaseDataReceiver.GetTargetTableRelations(targetTableName, targetTableConnectionString);

            // add using clause
            AppendUsingsAndClassName(entitiesNameSpaceName, TableSchemaName, tableSingleName, tablePluralName, "");

            //-----------------------------------------------------------------------------------------
            IPrimaryKeyNameStrategy pkNameStrategy = PrimaryKeyNameModeFactory.GetStrategy(EntitiesCodeGeneratorSettings.PrimaryKeyNameMode);
            string pkName = string.Empty;

            // تخصیص خصوصیت به جدول
            foreach (var targetTableProperty in this.TargetTableProperties)
            {
                pkName = pkNameStrategy.GetTablePrimaryKeyName(tableSingleName);
                AppendProperties(targetTableProperty, pkName);
            }

            AppendProjectNameSpacesUsings(targetSchemaName);

            if (EntitiesCodeGeneratorSettings.NavigatePropertyGenerateMode == NavigatePropertyGenerateMode.PutNavigateProperties)
            {
                AppendNavigationProperties(targetTableName);
            }

            this.NewEntityClassContent.Append("\n\t}\n}");

            string result = NewEntityClassContent.ToString();

            this.NewEntityClassContent = new StringBuilder(string.Empty);

            return(result);
        }
コード例 #3
0
        // ------------------------------------------------ Services Layer
        protected override void CreateServicesLayer()
        {
            TableNameInfo tableName = null;
            string        singleTableName = string.Empty, tablePluralName = string.Empty;


            foreach (var tableInfo in GeneratorSettingsManager.TARGET_DATABASE_TABLES_INFORMATIONS)
            {
                // گرفتن اسم جمع و مفرد جدول
                GetSingleAndPluralTableName(ref tableName, ref singleTableName, ref tablePluralName, tableInfo);

                // ایجاد کلاس و اینترفیس های لایه ســــرویـــــس
                CreateServiceClassAndInterfaceFile(GeneratorSettingsManager.DESTINATION_PATH, singleTableName, tableInfo);
            }
        }
コード例 #4
0
        // ------------------------------------------------ ViewModels Layer
        protected override void CreateViewModelsLayer()
        {
            TableNameInfo tableName = null;
            string        singleTableName = string.Empty, tablePluralName = string.Empty;


            foreach (var tableInfo in GeneratorSettingsManager.TARGET_DATABASE_TABLES_INFORMATIONS)
            {
                // گرفتن اسم جمع و مفرد جدول
                GetSingleAndPluralTableName(ref tableName, ref singleTableName, ref tablePluralName, tableInfo);

                // ساخت فایل های کلاس لایه ویـــو-مـــدل
                var    vmGenerator     = new ViewModelGenerator();
                string nameSpaceDesign = vmGenerator.Create(tableInfo, singleTableName, GeneratorSettingsManager.DESTINATION_PATH, GeneratorSettingsManager.TARGET_DATABASE_CONNECTION_STRING);
            }
        }
コード例 #5
0
        // ------------------------------------------------ Web Layer
        protected override void CreateWebLayer()
        {
            TableNameInfo tableName = null;
            string        singleTableName = string.Empty, tablePluralName = string.Empty;


            foreach (var tableInfo in GeneratorSettingsManager.TARGET_DATABASE_TABLES_INFORMATIONS)
            {
                // گرفتن اسم جمع و مفرد جدول
                GetSingleAndPluralTableName(ref tableName, ref singleTableName, ref tablePluralName, tableInfo);

                // ساخـــت فایل های ویـــو
                CreateViewFile(singleTableName, tableInfo);

                // ساخت کلاس کـنـتـرلــــــرها
                CreateControllerClassFile(GeneratorSettingsManager.DESTINATION_PATH, singleTableName, tableInfo, GeneratorSettingsManager.GENERATE_AREA_MODE);
            }
        }
コード例 #6
0
 private void GetSingleAndPluralTableName(ref TableNameInfo tableName, ref string singleTableName, ref string tablePluralName, TableInfo tableInfo)
 {
     tableName       = GeneratorDatabase.Titles.Where(c => c.Single == tableInfo.TableName || c.Plural == tableInfo.TableName).FirstOrDefault();
     singleTableName = ((tableName != null) ? tableName.Single : tableInfo.TableName);
     tablePluralName = ((tableName != null) ? tableName.Plural : tableInfo.TableName);
 }
コード例 #7
0
        public string Create(TableInfo _Tables, string singleName, string fileAddress, string connection)
        {
            var _CreateVM = new StringBuilder();
            var _ListVM   = new StringBuilder();

            const string nameSpaceSystem = "using System.Collections.Generic;\n";                        // ثابت
            string       nameSpaceEntity = "using DomainModels.Entities." + _Tables.TableSchema + ";\n"; // نیم اسپیس ان تی تی

            string folderName     = singleName + "VM";
            string nameSpaceClass = "namespace ViewModels." + _Tables.TableSchema + "." + folderName + "\n";

            string className = singleName + "_VM";

            string nameSpaceDesign = "ViewModels." + _Tables.TableSchema + "." + folderName + "." + className;


            // گرفتن ارتباط جداول با جدول فعلی
            List <RelationSchemaInfo> _Relation = GetRelations(_Tables, connection);


            string createProp = "";
            string listProp   = "";

            foreach (var item in _Relation)
            {
                TableNameInfo tableName          = GeneratorDatabaseProcessor.Titles.Where(c => c.Single == item.ReferenceTableName || c.Plural == item.ReferenceTableName).FirstOrDefault();
                string        singleRelationName = ((tableName != null) ? tableName.Single : item.ReferenceTableName);
                string        pluralNameTable    = ((tableName != null) ? tableName.Plural : item.ReferenceTableName);

                createProp += "\t\tpublic ICollection<" + singleRelationName + "> " + pluralNameTable + " { get; set; }\n";
                listProp   += "\t\tpublic " + singleRelationName + " " + singleRelationName + " { get; set; }\n";

                if (_Tables.TableSchema != item.ReferenceSchemaName)
                {
                    nameSpaceEntity += "using DomainModels.Entities." + item.ReferenceSchemaName + ";\n";
                }
            }


            _CreateVM.Append(nameSpaceSystem);
            _CreateVM.Append(nameSpaceEntity + "\n");
            _CreateVM.Append(nameSpaceClass);
            _CreateVM.Append("{\n\tpublic class Create" + className + "\n\t{\n");
            _CreateVM.Append("\t\tpublic " + singleName + " " + singleName + " { get; set; }\n");

            _ListVM.Append(_CreateVM.ToString().Replace("Create" + className, "List" + className));

            _CreateVM.Append(createProp);
            _CreateVM.Append("\t}\n}");


            _ListVM.Append(listProp);
            _ListVM.Append("\t}\n}");


            Directory.CreateDirectory(fileAddress + "\\ViewModels\\" + _Tables.TableSchema + "\\" + folderName);
            File.WriteAllText(fileAddress + "\\ViewModels\\" + _Tables.TableSchema + "\\" + folderName + "\\Create" + className + ".cs", _CreateVM.ToString());
            File.WriteAllText(fileAddress + "\\ViewModels\\" + _Tables.TableSchema + "\\" + folderName + "\\List" + className + ".cs", _ListVM.ToString());

            return(nameSpaceDesign);
        }