Beispiel #1
0
        public async Task TestProjectCodeFirstConfig()
        {
            using var scope = ServiceProvider.CreateScope();
            var fsql       = ServiceProvider.GetService <IFreeSql <FsBuilder> >();
            var config     = new GeneratorModeConfig();
            var reflection = scope.ServiceProvider.GetService <ReflectionHelper>();
            var items      = await reflection.GetAssembliesNameItems();

            var assemblyItem = items.FirstOrDefault(x => x.Value.Equals(Assembly.GetAssembly(typeof(IKey <>)).FullName));

            Assert.True(assemblyItem != null);
            var typeItem = await reflection.GetAbstractClass(assemblyItem.Value);

            var abstruct = typeItem.FirstOrDefault(x => x.Value == typeof(IKey <>).FullName);

            Assert.True(abstruct != null);
            var tables = scope.ServiceProvider
                         .GetService <ReflectionHelper>();
            var projectid = fsql.Insert <Project>().AppendData(new Project()).ExecuteIdentity();

            config.EntitySource.EntityAssemblyName = null;
            config.EntitySource.EntityBaseName     = abstruct.Value;
            config.PickType      = PickType.Ignore;
            config.GeneratorMode = GeneratorMode.CodeFirst;

            config.Validate();
            var id = fsql.Insert <GeneratorModeConfig>().AppendData(config).ExecuteIdentity();

            fsql.Delete <Project>().Where(x => x.Id == projectid).ExecuteAffrows();
            Assert.True(id > 0);
            fsql.Delete <GeneratorModeConfig>().Where(x => x.Id == id);
        }
Beispiel #2
0
        public async Task TestProjectDbFirstConfig()
        {
            using var scope = ServiceProvider.CreateScope();
            var fsql   = ServiceProvider.GetService <IFreeSql <FsBuilder> >();
            var config = new GeneratorModeConfig();

            config.EntitySource.EntityAssemblyName = null;
            var reflection = scope.ServiceProvider.GetService <ReflectionHelper>();
            var items      = await reflection.GetAssembliesNameItems();

            var assemblyItem = items.FirstOrDefault(x => x.Value.Equals(Assembly.GetAssembly(typeof(IKey <>)).FullName));
            var typeItem     = await reflection.GetAbstractClass(assemblyItem.Value);

            var abstruct     = typeItem.FirstOrDefault(x => x.Value == typeof(IKey <>).FullName);
            var projectid    = fsql.Insert <Project>().AppendData(new Project()).ExecuteIdentity();
            var datasourceId = fsql.Insert <DataSource>().AppendData(new DataSource
            {
                ConnectionString = "",
                DbType           = DataType.Sqlite,
                Name             = ""
            }).ExecuteIdentity();

            config.GeneratorMode = GeneratorMode.DbFirst;
            config.DataSourceId  = datasourceId;
            config.Validate();
            var id = fsql.Insert <GeneratorModeConfig>().AppendData(config).ExecuteIdentity();

            fsql.Delete <Project>().Where(x => x.Id == projectid).ExecuteAffrows();
            Assert.True(id > 0);
            fsql.Delete <GeneratorModeConfig>().Where(x => x.Id == id);
            var aff = fsql.Delete <DataSource>().Where(x => x.Id == datasourceId).ExecuteAffrows();

            Assert.True(aff > 0);
        }
Beispiel #3
0
        /// <summary>
        /// 默认生成器实体源配置新增
        /// </summary>
        public GeneratorModeConfig DefaultGeneratorModeConfig(EntitySource es)
        {
            var config        = _serviceProvider.GetService <IGeneratorConfigService>();
            var defaultConfig = new GeneratorModeConfig()
            {
                Name           = "DefaultConfig",
                PickType       = PickType.Ignore,
                GeneratorMode  = GeneratorMode.CodeFirst,
                EntitySourceId = es.Id
            };

            return(config.AddGConfig(defaultConfig).Result);
        }
Beispiel #4
0
        /// <summary>
        /// 新增配置
        /// </summary>
        /// <param name="config"></param>
        /// <param name="autoSave"></param>
        /// <returns></returns>
        public async Task <GeneratorModeConfig> AddGConfig(GeneratorModeConfig config, bool autoSave = false)
        {
            if (config.GeneratorMode == GeneratorMode.DbFirst)
            {
                CheckConfig(config.DataSourceId);
            }
            else
            {
                CheckEntityConfig(config.EntitySourceId);
            }
            var res = await _configRepository.InsertAsync(config);

            if (autoSave)
            {
                UnitOfWork.Commit();
            }
            return(res);
        }
Beispiel #5
0
        /// <summary>
        /// 更新配置 Step2
        /// </summary>
        /// <param name="config"></param>
        /// <param name="autoSave"></param>
        /// <returns></returns>
        public async Task <GeneratorModeConfig> UpdateConfig(GeneratorModeConfig config, bool autoSave = false)
        {
            if (config.GeneratorMode == GeneratorMode.DbFirst)
            {
                CheckConfig(config.DataSourceId);
                config.EntitySourceId = 0;
            }
            else
            {
                CheckEntityConfig(config.EntitySourceId);
                config.DataSourceId = 0;
            }
            await _configRepository.UpdateAsync(config);

            if (autoSave)
            {
                UnitOfWork.Commit();
            }
            return(config);
        }
 public async Task <IActionResult> UpdateConfig([FromBody] GeneratorModeConfig config)
 {
     return(Success(await ConfigService.UpdateConfig(config, true)));
 }