Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        /// <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);
            }
        }
Exemplo n.º 3
0
 /// <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();
 }
Exemplo n.º 4
0
 /// <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");
 }
Exemplo n.º 5
0
        /// <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);
            }
        }
Exemplo n.º 6
0
        /// <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;
            }
        }