// ------------------------------------------------ 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); } }
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); }
// ------------------------------------------------ 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); } }
// ------------------------------------------------ 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); } }
// ------------------------------------------------ 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); } }
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); }
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); }