using System; using System.Linq; using IwbZero.ToolCommon.StringModel; using WeEngine.Enum; using WePlatform.BaseInfo; using WePlatform.Configuration; using WePlatform.EF; namespace WePlatform.SeedData { public class DefaultStatesCreator { private readonly WePlatformDbContext _context; public DefaultStatesCreator(WePlatformDbContext context) { _context = context; } public void Create() { _context.TruncateTable("[dbo].[Sys_States]"); CreateState("情景演化类型", "Scene", "SceneType", SceneType.Evolution.ToInt(), "演化情景"); CreateState("情景演化类型", "Scene", "SceneType", SceneType.NonEvolution.ToInt(), "非演化情景"); CreateState("情景块类型", "Scene", "BlockType", SceneFlowBlockType.Objective.ToInt(), "客观情景块"); CreateState("情景块类型", "Scene", "BlockType", SceneFlowBlockType.Evolutionary.ToInt(), "演化情景块"); CreateState("行为评估类型", "Behavior", "ScoreType", BehaviorScoreType.Normal.ToInt(), "正向行为"); CreateState("行为评估类型", "Behavior", "ScoreType", BehaviorScoreType.Negative.ToInt(), "负向行为"); CreateState("行为评估类型", "Behavior", "ScoreType", BehaviorScoreType.ImportantNegative.ToInt(), "关键性负向行为"); CreateState("行为角色关系", "Behavior", "RoleLogicType", BehaviorRoleLogicType.Or.ToInt(), "或(有一个满足)"); CreateState("行为角色关系", "Behavior", "RoleLogicType", BehaviorRoleLogicType.And.ToInt(), "与(需全部满足)"); CreateState("引导类型", "Guide", "GuideType", GuideType.InfomationPrompt.ToInt(), "信息提示"); CreateState("引导类型", "Guide", "GuideType", GuideType.OperatePrompt.ToInt(), "操作提示"); CreateState("推演模型类型", "Engine", "ModelType", ModelType.ManyTeam.ToInt(), "多角色团队演化模型"); CreateState("推演模型类型", "Engine", "ModelType", ModelType.IndependentTeam.ToInt(), "单角色团队演化模型"); CreateState("推演模型类型", "Engine", "ModelType", ModelType.Independent.ToInt(), "单角色独立演化模型"); CreateState("推演模型类型", "Engine", "ModelType", ModelType.NonEvolutionIndependent.ToInt(), "单角色非演化模型"); CreateState("评估指标类型", "Eval", "TargetType", EvalTargetType.Positive.ToInt(), "仅正向指标"); CreateState("评估指标类型", "Eval", "TargetType", EvalTargetType.NegativeAndPositive.ToInt(), "负向指标和正向指标"); CreateState("资源类型", "Resource", "Type", ResourceType.Image.ToInt(), "图片资源"); CreateState("资源类型", "Resource", "Type", ResourceType.Audio.ToInt(), "音频资源"); CreateState("资源类型", "Resource", "Type", ResourceType.Video.ToInt(), "视频资源"); #region Default CreateState("激活状态", "Active", "Status", "false", "非激活"); CreateState("激活状态", "Active", "Status", "true", "激活"); //CreateState("性别", "Gender", "Type", "0", "未知"); CreateState("性别", "Gender", "Type", GenderTypeDefinition.Man, "男"); CreateState("性别", "Gender", "Type", GenderTypeDefinition.Women, "女"); CreateState("用户角色类型", "UserRole", "UserRoleType", UsersAndRolesTypeDefinition.Supper, "超级管理员"); CreateState("用户角色类型", "UserRole", "UserRoleType", UsersAndRolesTypeDefinition.System, "系统用户"); CreateState("用户角色类型", "UserRole", "UserRoleType", UsersAndRolesTypeDefinition.Advanced, "高级用户"); CreateState("用户角色类型", "UserRole", "UserRoleType", UsersAndRolesTypeDefinition.Ordinary, "普通用户"); CreateState("账号类型", "Account", "AccountType", AccountTypeDefinition.System, "系统用户"); CreateState("账号类型", "Account", "AccountType", AccountTypeDefinition.Guest, "来宾用户"); CreateState("菜单类型", "Function", "FunctionType", FunctionTypeDefinition.Catalog, "目录"); CreateState("菜单类型", "Function", "FunctionType", FunctionTypeDefinition.Menu, "菜单"); CreateState("菜单类型", "Function", "FunctionType", FunctionTypeDefinition.Button, "按钮"); CreateState("菜单类型", "Function", "FunctionType", FunctionTypeDefinition.NotShow, "不显示"); #endregion CreateState("帮助类别", "SysHelp", "Classification", "0", "系统帮助"); } private void CreateState(string name, string t, string c, string v, string d) { if (_context.SysStates.Any(s => s.TableName == t && s.ColumnName == c && s.CodeValue == v)) { return; } _context.SysStates.Add(new SysState() { StateNo = Guid.NewGuid().ToString("N"), StateName = name, TableName = t, ColumnName = c, CodeValue = v, DisplayValue = d, }); _context.SaveChanges(); } private void CreateState(string name, string t, string c, int v, string d) { if (_context.SysStates.Any(s => s.TableName == t && s.ColumnName == c && s.CodeValue == v + "")) { return; } _context.SysStates.Add(new SysState() { StateNo = Guid.NewGuid().ToString("N"), StateName = name, TableName = t, ColumnName = c, CodeValue = v + "", DisplayValue = d, }); _context.SaveChanges(); } } }