Пример #1
0
        private void WriteSeedData(SeedDataEntity seedDataEntity)
        {
            //var baseDirectory = AppContext.BaseDirectory;
            //var filePath = Path.Combine(baseDirectory, "SeedData.json");

            var filePath = Path.Combine(Directory.GetCurrentDirectory(), @"SeedData.json");

            JObject jObject = JObject.Parse(JsonConvert.SerializeObject(seedDataEntity));

            File.WriteAllText(filePath, JsonConvert.SerializeObject(jObject, Formatting.Indented));
        }
Пример #2
0
        /// <summary>
        /// 生成种子数据
        /// </summary>
        public void GenerateSeedData()
        {
            IFreeSql fsql = new FreeSql.FreeSqlBuilder()
                            .UseConnectionString(FreeSql.DataType.MySql, "Server=localhost; Port=3306; Database=Tenant1db; Uid=root; Pwd=000000; Charset=utf8mb4;")
                            .Build();

            var sysApiEntities                  = fsql.GetRepository <SysApiEntity>().Select.Where(x => x.IsDeleted == false).ToList();
            var SysConditionEntities            = fsql.GetRepository <SysConditionEntity>().Select.Where(x => x.IsDeleted == false).ToList();
            var SysDictionaryDetailEntities     = fsql.GetRepository <SysDictionaryDetailEntity>().Select.Where(x => x.IsDeleted == false).ToList();
            var SysDictionaryEntities           = fsql.GetRepository <SysDictionaryEntity>().Select.Where(x => x.IsDeleted == false).ToList();
            var SysGroupEntities                = fsql.GetRepository <SysGroupEntity>().Select.Where(x => x.IsDeleted == false).ToList();
            var SysPermissionEntities           = fsql.GetRepository <SysPermissionEntity>().Select.Where(x => x.IsDeleted == false).ToList();
            var SysResourceEntities             = fsql.GetRepository <SysResourceEntity>().Select.Where(x => x.IsDeleted == false).ToList();
            var SysRoleEntities                 = fsql.GetRepository <SysRoleEntity>().Select.Where(x => x.IsDeleted == false).ToList();
            var SysRPermissionConditionEntities = fsql.GetRepository <SysRPermissionConditionEntity>().Select.ToList();
            var SysRPermissionGroupEntities     = fsql.GetRepository <SysRPermissionGroupEntity>().Select.ToList();
            var SysRPermissionRoleEntities      = fsql.GetRepository <SysRPermissionRoleEntity>().Select.ToList();
            var SysRResourceApiEntities         = fsql.GetRepository <SysRResourceApiEntity>().Select.ToList();
            var SysRRoleResourceEntities        = fsql.GetRepository <SysRRoleResourceEntity>().Select.ToList();
            var SysSettingEntities              = fsql.GetRepository <SysSettingEntity>().Select.Where(x => x.IsDeleted == false).ToList();
            var SysUserEntities                 = fsql.GetRepository <SysUserEntity>().Select.Where(x => x.IsDeleted == false).ToList();

            SeedDataEntity seedDataEntity = new SeedDataEntity()
            {
                SysApiEntities                  = sysApiEntities,
                SysConditionEntities            = SysConditionEntities,
                SysDictionaryDetailEntities     = SysDictionaryDetailEntities,
                SysDictionaryEntities           = SysDictionaryEntities,
                SysGroupEntities                = SysGroupEntities,
                SysPermissionEntities           = SysPermissionEntities,
                SysResourceEntities             = SysResourceEntities,
                SysRoleEntities                 = SysRoleEntities,
                SysRPermissionConditionEntities = SysRPermissionConditionEntities,
                SysRPermissionGroupEntities     = SysRPermissionGroupEntities,
                SysRPermissionRoleEntities      = SysRPermissionRoleEntities,
                SysRResourceApiEntities         = SysRResourceApiEntities,
                SysRRoleResourceEntities        = SysRRoleResourceEntities,
                SysSettingEntities              = SysSettingEntities,
                SysUserEntities                 = SysUserEntities
            };


            WriteSeedData(seedDataEntity);


            fsql.Dispose();
        }
Пример #3
0
        protected void Submit()
        {
            if (!configForm.IsValid())
            {
                return;
            }

            var systemDb = TenantItem.DbOptions.Where(x => x.Key.ToLower() == "system").FirstOrDefault();

            if (systemDb == null)
            {
                _ = MessageBox.AlertAsync("找不到System数据库配置");
                return;
            }
            try
            {
                Logs.Clear();
                Logs.Add("保存配置 开始");
                if (!WriteTenantSettings())
                {
                    _ = MessageBox.AlertAsync("配置保存失败");
                    return;
                }
                Logs.Add("保存配置 结束");


                Logs.Add("创建数据连接对象 开始");
                var      dbType  = (FreeSql.DataType)Enum.Parse(typeof(FreeSql.DataType), systemDb.DbType);
                var      connStr = systemDb.ConnectionStrings.Where(x => x.UseType == DbUseType.Master).First().ConnectionString;
                IFreeSql fsql    = new FreeSql.FreeSqlBuilder()
                                   .UseConnectionString(dbType, connStr)
                                   .Build();

                DbConnection dbConnection = fsql.Ado.MasterPool.Get().Value; // 这儿验证 连接是否成功,这句代码可以不要,如果连接字符不变正确,为了提早发现(报异常)
                fsql.Aop.AuditValue += SyncDataAuditValue;
                Logs.Add("创建数据连接对象 结束");


                Logs.Add("同步数据库结构 开始");
                if (dbType == DataType.Oracle)
                {
                    fsql.CodeFirst.IsSyncStructureToUpper = true;
                }
                fsql.CodeFirst.SyncStructure(new Type[]
                {
                    typeof(SysApiEntity),                  // API
                    typeof(SysConditionEntity),            // 数据条件 相关功能暂未实现,表结构已设计
                    typeof(SysDictionaryDetailEntity),     // 数据字典明细,相关功能暂未实现,表结构已设计
                    typeof(SysDictionaryEntity),           // 数据字典主表,相关功能暂未实现,表结构已设计
                    typeof(SysGroupEntity),                // 数据归属组
                    typeof(SysLoginLogEntity),             // 登录日志
                    typeof(SysOperationLogEntity),         // API访问日志
                    typeof(SysPermissionEntity),           // 权限岗
                    typeof(SysResourceEntity),             // 资源
                    typeof(SysRoleEntity),                 // 角色
                    typeof(SysRPermissionConditionEntity), // 权限岗 与 数据条件关系表,功能未实现
                    typeof(SysRPermissionGroupEntity),     // 权限岗 与 数据组关系表
                    typeof(SysRPermissionRoleEntity),      // 权限岗 与 角色关系表
                    typeof(SysRResourceApiEntity),         // 资源 与 API关系表
                    typeof(SysRRoleResourceEntity),        // 角色 与 资源关系表
                    typeof(SysSettingEntity),              // 系统设置表,相关功能暂未实现,表结构已设计
                    typeof(SysUserEntity)                  // 用户表
                });
                Logs.Add("同步数据库结构 结束");


                Logs.Add("种子数据初始化 开始");
                using (var uow = fsql.CreateUnitOfWork())
                    using (var tran = uow.GetOrBeginTransaction())
                    {
                        SeedDataEntity data = (new SeedData()).GetSeedData();

                        InitDtData(fsql, data.SysApiEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysConditionEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysDictionaryDetailEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysDictionaryEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysGroupEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysPermissionEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysResourceEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysRoleEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysRPermissionConditionEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysRPermissionGroupEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysRPermissionRoleEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysRResourceApiEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysRRoleResourceEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysSettingEntities.ToArray(), tran).Wait();
                        InitDtData(fsql, data.SysUserEntities.ToArray(), tran).Wait();

                        uow.Commit();
                    }
                Logs.Add("种子数据初始化 结束");

                fsql.Dispose();
                // _ = MessageBox.AlertAsync("初始化成功");
            }
            catch (Exception ex)
            {
                _ = MessageBox.AlertAsync(ex.Message);
            }
        }