private RouteParam Visit(RouteParamAST routeParamAST) { RouteParam routeParam = new RouteParam(); routeParam.Name = Visit(routeParamAST.Name); routeParam.Type = Visit(routeParamAST.Type); if (routeParam.Type != null) { TypeSymbol baseTypeSymbol = currentScope.Lookup(routeParam.Type) as TypeSymbol; if (baseTypeSymbol == null || baseTypeSymbol.Type.Name != "SIGN") { throw logger.Error(new SemanticException(routeParamAST.Type.FindToken(), "Explicit type of a parameter must be a signature.")); } } if (routeParamAST.DefaultValue != null) { object defaultValue = Visit(routeParamAST.DefaultValue); if (routeParam.Type == null) { if (defaultValue is double || defaultValue is Matrix <double> ) { routeParam.DefaultValue = defaultValue; } else { throw logger.Error(new SemanticException(routeParamAST.DefaultValue.FindToken(), $"Type inconsistency of {routeParam.Name}, digit or matrix expected")); } } else { throw logger.Error(new SemanticException(routeParamAST.DefaultValue.FindToken(), "Default value not supported when type is model or route.")); } } return(routeParam); }
/// <summary> /// Deserializes file data from a stream. /// </summary> protected override void Read(BinaryReaderEx br) { br.BigEndian = false; br.AssertASCII("MSB "); br.AssertInt32(1); br.AssertInt32(0x10); br.AssertBoolean(false); // isBigEndian br.AssertBoolean(false); // isBitBigEndian br.AssertByte(1); // textEncoding br.AssertByte(0xFF); // is64BitOffset Entries entries = default; Models = new ModelParam(); entries.Models = Models.Read(br); Events = new EventParam(); entries.Events = Events.Read(br); Regions = new PointParam(); entries.Regions = Regions.Read(br); Routes = new RouteParam(); entries.Routes = Routes.Read(br); Layers = new LayerParam(); entries.Layers = Layers.Read(br); Parts = new PartsParam(); entries.Parts = Parts.Read(br); PartsPoses = new MapstudioPartsPose(); entries.PartsPoses = PartsPoses.Read(br); BoneNames = new MapstudioBoneName(); entries.BoneNames = BoneNames.Read(br); if (br.Position != 0) { throw new InvalidDataException("The next param offset of the final param should be 0, but it wasn't."); } MSB.DisambiguateNames(entries.Models); MSB.DisambiguateNames(entries.Parts); MSB.DisambiguateNames(entries.Regions); foreach (Event evt in entries.Events) { evt.GetNames(this, entries); } foreach (Region region in entries.Regions) { region.GetNames(this, entries); } foreach (Part part in entries.Parts) { part.GetNames(this, entries); } foreach (PartsPose pose in entries.PartsPoses) { pose.GetNames(this, entries); } }
/// <summary> /// Creates a new MSB3 with all sections empty. /// </summary> public MSB3() { Models = new ModelParam(); Events = new EventParam(); Regions = new PointParam(); Routes = new RouteParam(); Layers = new LayerParam(); Parts = new PartsParam(); PartsPoses = new MapstudioPartsPose(); BoneNames = new MapstudioBoneName(); }
/// <summary> /// Creates an MSBS with nothing in it. /// </summary> public MSBS() { Models = new ModelParam(); Events = new EventParam(); Regions = new PointParam(); Routes = new RouteParam(); Parts = new PartsParam(); Layers = new EmptyParam(0x23, "LAYER_PARAM_ST"); PartsPoses = new EmptyParam(0, "MAPSTUDIO_PARTS_POSE_ST"); BoneNames = new EmptyParam(0, "MAPSTUDIO_BONE_NAME_STRING"); }
/// <summary> /// Deserializes file data from a stream. /// </summary> protected override void Read(BinaryReaderEx br) { br.BigEndian = false; br.AssertASCII("MSB "); br.AssertInt32(1); br.AssertInt32(0x10); br.AssertBoolean(false); // isBigEndian br.AssertBoolean(false); // isBitBigEndian br.AssertByte(1); // textEncoding br.AssertByte(0xFF); // is64BitOffset Entries entries; Models = new ModelParam(); entries.Models = Models.Read(br); Events = new EventParam(); entries.Events = Events.Read(br); Regions = new PointParam(); entries.Regions = Regions.Read(br); Routes = new RouteParam(); entries.Routes = Routes.Read(br); Layers = new EmptyParam(0x23, "LAYER_PARAM_ST"); Layers.Read(br); Parts = new PartsParam(); entries.Parts = Parts.Read(br); PartsPoses = new EmptyParam(0, "MAPSTUDIO_PARTS_POSE_ST"); PartsPoses.Read(br); BoneNames = new EmptyParam(0, "MAPSTUDIO_BONE_NAME_STRING"); BoneNames.Read(br); if (br.Position != 0) { throw new InvalidDataException("The next param offset of the final param should be 0, but it wasn't."); } MSB.DisambiguateNames(entries.Models); MSB.DisambiguateNames(entries.Regions); MSB.DisambiguateNames(entries.Parts); foreach (Event evt in entries.Events) { evt.GetNames(this, entries); } foreach (Region region in entries.Regions) { region.GetNames(entries); } foreach (Part part in entries.Parts) { part.GetNames(this, entries); } }
/// <summary> /// Deserializes file data from a stream. /// </summary> protected override void Read(BinaryReaderEx br) { br.BigEndian = false; MSB.AssertHeader(br); Entries entries = default; Models = new ModelParam(); entries.Models = Models.Read(br); Events = new EventParam(); entries.Events = Events.Read(br); Regions = new PointParam(); entries.Regions = Regions.Read(br); Routes = new RouteParam().Read(br); Layers = new LayerParam().Read(br); Parts = new PartsParam(); entries.Parts = Parts.Read(br); PartsPoses = new MapstudioPartsPose().Read(br); entries.BoneNames = new MapstudioBoneName().Read(br); if (br.Position != 0) { throw new InvalidDataException($"The next param offset of the final param should be 0, but it was 0x{br.Position:X}."); } MSB.DisambiguateNames(entries.Models); MSB.DisambiguateNames(entries.Parts); MSB.DisambiguateNames(entries.Regions); MSB.DisambiguateNames(entries.BoneNames); foreach (Event evt in entries.Events) { evt.GetNames(this, entries); } foreach (Region region in entries.Regions) { region.GetNames(this, entries); } foreach (Part part in entries.Parts) { part.GetNames(this, entries); } foreach (PartsPose pose in PartsPoses) { pose.GetNames(this, entries); } }
internal static void PopulateDefaultMenuDataRoleCtx(DbContext db) { try { var home = new MenuItem { //Id = 1, Code = "1", Name = "Home", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <MenuItem>().Add(home); var admin = new MenuItem { //Id = 2, Code = "2", Name = "Admin", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <MenuItem>().Add(admin); var roles = new MenuItem { //Id = 5, Code = "6", Name = "Roles", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0, ParentId = admin.Id }; db.Set <MenuItem>().Add(roles); var about = new MenuItem { //Id = 7, Code = "7", Name = "About", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0, ParentId = home.Id }; db.Set <MenuItem>().Add(about); var marketing = new MenuItem { //Id = 7, Code = "10", Name = "Marketing", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0, ParentId = home.Id }; db.Set <MenuItem>().Add(marketing); var users = new MenuItem { //Id = 6, Code = "6", Name = "Users", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0, ParentId = admin.Id }; db.Set <MenuItem>().Add(users); var roleAdmin = new Role { Id = 1, Name = "Admin", }; db.Set <Role>().Add(roleAdmin); var roleUser = new Role { Id = 2, Name = "User", }; db.Set <Role>().Add(roleUser); var defaultName = new RouteName { // Id = 1, Code = "1", Name = "Default", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <RouteName>().Add(defaultName); var controller = new RouteParam { // Id = 1, Code = "1", Name = "controller", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <RouteParam>().Add(controller); var action = new RouteParam { // Id = 2, Code = "2", Name = "action", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <RouteParam>().Add(action); var area = new RouteParam { // Id = 3, Code = "3", Name = "area", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <RouteParam>().Add(area); var layoutRelationGroup = new MenuItemRelationGroup { // Id = 1, Code = "1", Name = "Layout", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <MenuItemRelationGroup>().Add(layoutRelationGroup); var homeAdminMenuRelation = new RoleMenuItemRelation { // Id = 1, MenuItemId = home.Id, MenuItemRelationGroupId = layoutRelationGroup.Id, RouteNameId = defaultName.Id, RoleId = roleAdmin.Id }; db.Set <RoleMenuItemRelation>().Add(homeAdminMenuRelation); var homeUsrRelation = new RoleMenuItemRelation { // Id = 2, MenuItemId = home.Id, MenuItemRelationGroupId = layoutRelationGroup.Id, RouteNameId = defaultName.Id, RoleId = roleUser.Id }; db.Set <RoleMenuItemRelation>().Add(homeUsrRelation); var adminAdminRelation = new RoleMenuItemRelation { // Id = 3, MenuItemId = admin.Id, MenuItemRelationGroupId = layoutRelationGroup.Id, RouteNameId = defaultName.Id, RoleId = roleAdmin.Id }; db.Set <RoleMenuItemRelation>().Add(adminAdminRelation); var aboutAdminRelation = new RoleMenuItemRelation { // Id = 4, MenuItemId = about.Id, MenuItemRelationGroupId = layoutRelationGroup.Id, RouteNameId = defaultName.Id, RoleId = roleAdmin.Id }; db.Set <RoleMenuItemRelation>().Add(aboutAdminRelation); var aboutUserRelation = new RoleMenuItemRelation { // Id = 4, MenuItemId = about.Id, MenuItemRelationGroupId = layoutRelationGroup.Id, RouteNameId = defaultName.Id, RoleId = roleUser.Id }; db.Set <RoleMenuItemRelation>().Add(aboutUserRelation); var usersAdminRelation = new RoleMenuItemRelation { // Id = 6, MenuItemId = users.Id, MenuItemRelationGroupId = layoutRelationGroup.Id, RouteNameId = defaultName.Id, RoleId = roleAdmin.Id }; db.Set <RoleMenuItemRelation>().Add(usersAdminRelation); var rolesAdminRelation = new RoleMenuItemRelation { //Id = 7, MenuItemId = roles.Id, MenuItemRelationGroupId = layoutRelationGroup.Id, RouteNameId = defaultName.Id, RoleId = roleAdmin.Id }; db.Set <RoleMenuItemRelation>().Add(rolesAdminRelation); var adminMarketing = new RoleMenuItemRelation { MenuItemId = marketing.Id, MenuItemRelationGroupId = layoutRelationGroup.Id, RouteNameId = defaultName.Id, RoleId = roleAdmin.Id }; db.Set <RoleMenuItemRelation>().Add(adminMarketing); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = controller.Id, Value = "Home", MenuItemRelationId = adminMarketing.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = action.Id, Value = "Index", MenuItemRelationId = adminMarketing.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = area.Id, Value = "marketing", MenuItemRelationId = adminMarketing.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = controller.Id, Value = "Home", MenuItemRelationId = homeAdminMenuRelation.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = controller.Id, Value = "Home", MenuItemRelationId = homeUsrRelation.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = controller.Id, Value = "Home", MenuItemRelationId = aboutAdminRelation.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = action.Id, Value = "About", MenuItemRelationId = aboutAdminRelation.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = action.Id, Value = "Index", MenuItemRelationId = homeUsrRelation.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = action.Id, Value = "Index", MenuItemRelationId = homeAdminMenuRelation.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = controller.Id, Value = "Admin", MenuItemRelationId = adminAdminRelation.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = controller.Id, Value = "Admin", MenuItemRelationId = rolesAdminRelation.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = action.Id, Value = "Roles", MenuItemRelationId = rolesAdminRelation.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = controller.Id, Value = "Admin", MenuItemRelationId = usersAdminRelation.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = action.Id, Value = "Users", MenuItemRelationId = usersAdminRelation.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = action.Id, Value = "Index", MenuItemRelationId = adminAdminRelation.Id }); db.SaveChanges(); } catch (Exception ex) { LogEventManager.Logger.Error(ex.Message, ex); throw; } }
internal static void PopulateDefaultMenuData(DbContext db) { try { var home = new MenuItem { Code = "1", Name = "Home", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <MenuItem>().Add(home); var admin = new MenuItem { Code = "2", Name = "Admin", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <MenuItem>().Add(admin); var roles = new MenuItem { Code = "6", Name = "Roles", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0, ParentId = admin.Id }; db.Set <MenuItem>().Add(roles); var about = new MenuItem { Code = "7", Name = "About", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0, ParentId = home.Id }; db.Set <MenuItem>().Add(about); var defaultRoute = new RouteName { Code = "1", Name = "Default", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <RouteName>().Add(defaultRoute); var controllerParam = new RouteParam { Code = "1", Name = "controller", // DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <RouteParam>().Add(controllerParam); var actionParam = new RouteParam { Code = "2", Name = "action", // DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <RouteParam>().Add(actionParam); var areaParam = new RouteParam { Code = "3", Name = "area", // DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <RouteParam>().Add(areaParam); var relGroup = new MenuItemRelationGroup { Code = "1", Name = "Layout", DateCreated = DateTime.Today, IsActive = true, SortOrder = 0 }; db.Set <MenuItemRelationGroup>().Add(relGroup); var homeRel = new MenuItemRelation { MenuItemId = home.Id, MenuItemRelationGroupId = relGroup.Id, RouteNameId = defaultRoute.Id }; db.Set <MenuItemRelation>().Add(homeRel); var adminRel = new MenuItemRelation { MenuItemId = admin.Id, MenuItemRelationGroupId = relGroup.Id, RouteNameId = defaultRoute.Id }; db.Set <MenuItemRelation>().Add(adminRel); var aboutRel = new MenuItemRelation { MenuItemId = about.Id, MenuItemRelationGroupId = relGroup.Id, RouteNameId = defaultRoute.Id }; db.Set <MenuItemRelation>().Add(aboutRel); var rolesRel = new MenuItemRelation { MenuItemId = roles.Id, MenuItemRelationGroupId = relGroup.Id, RouteNameId = defaultRoute.Id }; db.Set <MenuItemRelation>().Add(rolesRel); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = controllerParam.Id, Value = "Home", MenuItemRelationId = homeRel.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = actionParam.Id, Value = "Index", MenuItemRelationId = homeRel.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = controllerParam.Id, Value = "Admin", MenuItemRelationId = adminRel.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = controllerParam.Id, Value = "Admin", MenuItemRelationId = rolesRel.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = actionParam.Id, Value = "Users", MenuItemRelationId = rolesRel.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = actionParam.Id, Value = "Index", MenuItemRelationId = adminRel.Id }); db.Set <MenuItemRelationRouteValue>().Add(new MenuItemRelationRouteValue { RouteParamId = areaParam.Id, Value = "marketing", MenuItemRelationId = adminRel.Id }); db.SaveChanges(); } catch (Exception ex) { LogEventManager.Logger.Error(ex.Message, ex); throw; } }