Пример #1
0
        internal string GenerateCodeController()
        {
            TemplateFile template = TemplateFile.LoadTemplate(TemplateType.CS, Resources.class_Controller);

            var instanceEntityName = StringHelper.ConverToInstanceName(CleanEntityName);

            var primaryEntityField = Entity.Fields.FirstOrDefault(f => f.IsPrimaryKey);

            if (primaryEntityField == null)
            {
                throw new DataException("Entity [" + Entity.Name + "] doesn't have primary key");
            }


            template.ReplaceTag("PRIMARYKEY_DATATYPE", DataTypeHelper.GetCSharpType(primaryEntityField.SimpleTypeName), false);
            template.ReplaceTag("PRIMARYKEY_PARAMETERNAME", primaryEntityField.ColumnName, false);
            template.ReplaceTag("PRIMARYKEY_LOCAL_VARIABLE", StringHelper.ConverToInstanceName(StringHelper.ConvertToSafeCodeName(primaryEntityField.ColumnName)), false);

            template.ReplaceTag("NAMESPACE_MODELS", Settings[AspNetMvcCoreConstants.NAMESPACE_MODELS].Value, false);
            template.ReplaceTag("NAMESPACE_CONTROLLER", Settings[AspNetMvcCoreConstants.NAMESPACE_CONTROLLER].Value, false);
            template.ReplaceTag("NAMESPACE_DBCONTEXT", Settings[AspNetMvcCoreConstants.NAMESPACE_DBCONTEXT].Value, false);

            template.ReplaceTag("INSTANCE_NAME_MODEL", instanceEntityName, false);
            template.ReplaceTag("CLASS_NAME_MODEL", ModelClassName, false);
            template.ReplaceTag("CLASS_NAME_CONTROLLER", ControllerClassName, false);
            template.ReplaceTag("VIEW_NAME", ViewBaseName, false);
            template.ReplaceTag("PROPERTIES_MODEL", string.Join(",", Entity.Fields.Select(t => t.ColumnName)), false);

            template.ReplaceTag("DETAILS_METHODNAME", Settings[AspNetMvcCoreConstants.DETAILS_METHODNAME].Value, false);
            template.ReplaceTag("CREATE_METHODNAME", Settings[AspNetMvcCoreConstants.CREATE_METHODNAME].Value, false);
            template.ReplaceTag("EDIT_METHODNAME", Settings[AspNetMvcCoreConstants.EDIT_METHODNAME].Value, false);
            template.ReplaceTag("DELETE_METHODNAME", Settings[AspNetMvcCoreConstants.DELETE_METHODNAME].Value, false);

            template.ReplaceTag("DBCONTEXT_NAME", Settings[AspNetMvcCoreConstants.DBCONTEXT_NAME].Value, false);

            template.ReplaceTag("AUTHOR_NAME", Settings[AspNetMvcCoreConstants.AUTHOR_NAME].Value, false);
            template.ReplaceTag("CREATION_DATE", GetSimpleDate(DateTime.Now), false);

            return(template.Content);
        }
Пример #2
0
        public string GenerateCodeDataAccessAsync()
        {
            TemplateFile template;
            string       templateType = Settings[CodeBaseConstants.DATAACCESS_TEMPLATE].Value;

            if (templateType.Equals("en"))
            {
                template = TemplateFile.LoadTemplate(TemplateType.CS, Resources.class_DataAccess_async_en);
            }
            else if (templateType.Equals("es"))
            {
                template = TemplateFile.LoadTemplate(TemplateType.CS, Resources.class_DataAccess_async_es);
            }
            else
            {
                template = TemplateFile.LoadTemplate(TemplateType.CS, Resources.class_DataAccess_async);
            }

            var primaryEntityField = Entity.Fields.FirstOrDefault(f => f.IsPrimaryKey);

            if (primaryEntityField == null)
            {
                throw new DataException("Entity [" + Entity.Name + "] doesn't have primary key");
            }

            TemplateSection sectionParameters      = template.ExtractSection("PARAMETERS");
            TemplateSection sectionParametersAsync = template.ExtractSection("PARAMETERS_ASYNC");
            TemplateSection sectionProperties      = template.ExtractSection("PROPERTIES");
            TemplateSection sectionPropertiesAsync = template.ExtractSection("PROPERTIES_ASYNC");

            TemplateSectionCollection sectionParameterList      = new TemplateSectionCollection();
            TemplateSectionCollection sectionParameterAsyncList = new TemplateSectionCollection();
            TemplateSectionCollection sectionPropertyList       = new TemplateSectionCollection();
            TemplateSectionCollection sectionPropertyAsyncList  = new TemplateSectionCollection();

            var instanceEntityName = StringHelper.ConverToInstanceName(CleanEntityName);

            foreach (var entityField in Entity.Fields)
            {
                TemplateSection sectionProperty = sectionProperties.ExtractSection(entityField.SimpleTypeName);
                sectionProperty.ReplaceTag("PROPERTYNAME", entityField.ColumnName);
                sectionProperty.ReplaceTag("COLUMNNAME", entityField.ColumnName);
                sectionPropertyList.AddSection(sectionProperty);

                TemplateSection sectionPropertyAsync = sectionPropertiesAsync.ExtractSection(entityField.SimpleTypeName);
                sectionPropertyAsync.ReplaceTag("PROPERTYNAME", entityField.ColumnName);
                sectionPropertyAsync.ReplaceTag("COLUMNNAME", entityField.ColumnName);
                sectionPropertyAsyncList.AddSection(sectionPropertyAsync);

                TemplateSection sectionParameter = sectionParameters.ExtractSection(entityField.SimpleTypeName);
                sectionParameter.ReplaceTag("PARAMETERNAME", entityField.ColumnName);
                sectionParameter.ReplaceTag("PROPERTYNAME", entityField.ColumnName);
                sectionParameter.ReplaceTag("INSTANCE_NAME_DOMAIN", instanceEntityName, false);
                sectionParameterList.AddSection(sectionParameter);

                TemplateSection sectionParameterAsync = sectionParametersAsync.ExtractSection(entityField.SimpleTypeName);
                sectionParameterAsync.ReplaceTag("PARAMETERNAME", entityField.ColumnName);
                sectionParameterAsync.ReplaceTag("PROPERTYNAME", entityField.ColumnName);
                sectionParameterAsync.ReplaceTag("INSTANCE_NAME_DOMAIN", instanceEntityName, false);
                sectionParameterAsyncList.AddSection(sectionParameterAsync);
            }

            template.ReplaceSection("PARAMETERS", sectionParameterList);
            template.ReplaceSection("PARAMETERS_ASYNC", sectionParameterAsyncList);
            template.ReplaceSection("PROPERTIES", sectionPropertyList);
            template.ReplaceSection("PROPERTIES_ASYNC", sectionPropertyAsyncList);

            template.ReplaceTag("PRIMARYKEY_DATATYPE", DataTypeHelper.GetCSharpType(primaryEntityField.SimpleTypeName), false);
            template.ReplaceTag("PRIMARYKEY_PARAMETERNAME", primaryEntityField.ColumnName, false);
            template.ReplaceTag("PRIMARYKEY_LOCAL_VARIABLE", StringHelper.ConverToInstanceName(StringHelper.ConvertToSafeCodeName(primaryEntityField.ColumnName)), false);

            template.ReplaceTag("NAMESPACE_DOMAIN", Settings[CodeBaseConstants.NAMESPACE_DOMAIN].Value, false);
            template.ReplaceTag("NAMESPACE_DATAACCESS", Settings[CodeBaseConstants.NAMESPACE_DATAACCESS].Value, false);
            template.ReplaceTag("NAMESPACE_DBHELPER", Settings[CodeBaseConstants.NAMESPACE_DBHELPER].Value, false);
            template.ReplaceTag("NAMESPACE_ACCESS_MODEL", Settings[CodeBaseConstants.NAMESPACE_ACCESS_MODEL].Value, false);

            template.ReplaceTag("INSTANCE_NAME_DOMAIN", instanceEntityName, false);
            template.ReplaceTag("CLASS_NAME_DOMAIN", DomainClassName, false);
            template.ReplaceTag("CLASS_NAME_DATAACCESS", DataAccessClassName, false);

            template.ReplaceTag("SAVE_STORED_PROCEDURE", SaveStoredProcedureName, false);
            template.ReplaceTag("GETBYID_STORED_PROCEDURE", GetByIdStoredProcedureName, false);
            template.ReplaceTag("LISTALL_STORED_PROCEDURE", ListAllStoredProcedureName, false);
            template.ReplaceTag("DELETE_STORED_PROCEDURE", DeleteStoredProcedureName, false);

            template.ReplaceTag("SAVE_METHODNAME", Settings[CodeBaseConstants.SAVE_METHODNAME].Value, false);
            template.ReplaceTag("GETBYID_METHODNAME", Settings[CodeBaseConstants.GETBYID_METHODNAME].Value, false);
            template.ReplaceTag("LISTALL_METHODNAME", Settings[CodeBaseConstants.LISTALL_METHODNAME].Value, false);
            template.ReplaceTag("DELETE_METHODNAME", Settings[CodeBaseConstants.DELETE_METHODNAME].Value, false);
            template.ReplaceTag("BUILDFUNCTION_METHODNAME", Settings[CodeBaseConstants.BUILDFUNCTION_METHODNAME].Value, false);
            template.ReplaceTag("ASYNC_METHODS_SUFFIX", Settings[CodeBaseConstants.ASYNC_METHODS_SUFFIX].Value, false);

            template.ReplaceTag("CONNECTIONSTRING_KEY", Settings[CodeBaseConstants.CONNECTIONSTRING_KEY].Value, false);
            template.ReplaceTag("DBHELPER_INSTANCEOBJECT", Settings[CodeBaseConstants.DBHELPER_INSTANCEOBJECT].Value, false);
            template.ReplaceTag("GETSCALAR_METHODNAME", Settings[CodeBaseConstants.GETSCALAR_METHODNAME].Value, false);
            template.ReplaceTag("GETENTITY_METHODNAME", Settings[CodeBaseConstants.GETENTITY_METHODNAME].Value, false);
            template.ReplaceTag("GETDATATABLE_METHODNAME", Settings[CodeBaseConstants.GETDATATABLE_METHODNAME].Value, false);
            template.ReplaceTag("EXECUTESP_METHODNAME", Settings[CodeBaseConstants.EXECUTESP_METHODNAME].Value, false);

            template.ReplaceTag("GETSCALAR_ASYNC_METHODNAME", Settings[CodeBaseConstants.GETSCALAR_ASYNC_METHODNAME].Value, false);
            template.ReplaceTag("GETENTITY_ASYNC_METHODNAME", Settings[CodeBaseConstants.GETENTITY_ASYNC_METHODNAME].Value, false);
            template.ReplaceTag("GETDATATABLE_ASYNC_METHODNAME", Settings[CodeBaseConstants.GETDATATABLE_ASYNC_METHODNAME].Value, false);
            template.ReplaceTag("EXECUTESP_ASYNC_METHODNAME", Settings[CodeBaseConstants.EXECUTESP_ASYNC_METHODNAME].Value, false);

            template.ReplaceTag("AUTHOR_NAME", Settings[CodeBaseConstants.AUTHOR_NAME].Value, false);
            template.ReplaceTag("CREATION_DATE", GetSimpleDate(DateTime.Now), false);

            return(template.Content);
        }