public MainResponse.DefaultResponse ModifyExhibitionType(ExhibitionType exhibitionType)
        {
            bool operate = false;

            if (ExhibitionTypeExists(exhibitionType.id))
            {
                db.Entry(exhibitionType).State = EntityState.Modified;
                int count = db.SaveChanges();
                if (count != 0)
                {
                    operate = true;
                }
            }
            return(new MainResponse.DefaultResponse()
            {
                operate = operate
            });
        }
        public MainResponse.DefaultResponse AddExhibitionType(ExhibitionType exhibitionType)
        {
            bool operate = false;

            if (!ExhibitionTypeExists(exhibitionType.id))
            {
                db.ExhibitionTypes.Add(exhibitionType);
                int count = db.SaveChanges();
                if (count != 0)
                {
                    operate = true;
                }
            }
            return(new MainResponse.DefaultResponse()
            {
                operate = operate
            });
        }
        public MainResponse.DefaultResponse DeleteExhibitionType(int id)
        {
            bool           operate        = false;
            ExhibitionType exhibitionType = db.ExhibitionTypes.Find(id);

            if (exhibitionType != null)
            {
                db.ExhibitionTypes.Remove(exhibitionType);
                int count = db.SaveChanges();
                if (count != 0)
                {
                    operate = true;
                }
            }
            return(new MainResponse.DefaultResponse()
            {
                operate = operate
            });
        }
        public void SetRoleInfo(RoleInfo roleInfo, ExhibitionType exhibitionType)
        {
            RoleInfo oldRoleInfo = roleInfo;
            RoleInfo newRoleInfo = roleInfo;

            if (exhibitionType == ExhibitionType.Advance)
            {
                if (roleInfo is PlayerInfo)
                {
                    oldRoleInfo = (roleInfo as PlayerInfo).GetPlayerInfoCopy();
                    oldRoleInfo.advanceLevel -= 1;
                }
                else if (roleInfo is HeroInfo)
                {
                    oldRoleInfo = (roleInfo as HeroInfo).GetHeroInfoCopy();
                    oldRoleInfo.advanceLevel -= 1;
                }
            }
            DespawnCharacter();
            TransformUtil.ClearChildren(roleModelRoot, true);
            if (roleInfo is PlayerInfo)
            {
                _oldCharacterEnyity = PlayerEntity.CreatePlayerEntityAs3DUIElement(oldRoleInfo as PlayerInfo, roleModelRoot, false, false);
                _newCharacterEntity = PlayerEntity.CreatePlayerEntityAs3DUIElement(newRoleInfo as PlayerInfo, roleModelRoot, false, false);
            }
            else if (roleInfo is HeroInfo)
            {
                _oldCharacterEnyity = HeroEntity.CreateHeroEntityAs3DUIElement(oldRoleInfo as HeroInfo, roleModelRoot, false, false);
                _newCharacterEntity = HeroEntity.CreateHeroEntityAs3DUIElement(newRoleInfo as HeroInfo, roleModelRoot, false, false);
            }
            ShadersUtil.SetShaderKeyword(_oldCharacterEnyity, ShadersUtil.RIMLIGHT_OFF, ShadersUtil.RIMLIGHT_ON);
            ShadersUtil.SetMainColor(_oldCharacterEnyity, ShadersUtil.MAIN_COLOR);
            ShadersUtil.SetShaderKeyword(_newCharacterEntity, ShadersUtil.RIMLIGHT_OFF, ShadersUtil.RIMLIGHT_ON);
            ShadersUtil.SetMainColor(_newCharacterEntity, ShadersUtil.MAIN_COLOR);

            _oldCharacterEnyity.gameObject.SetActive(true);
            _newCharacterEntity.gameObject.SetActive(false);
        }
        public ExhibitionTypeResponse.GetExhibitionByExhibitionTypeId GetExhibitionByExhibitionTypeId(int id)
        {
            bool           operate        = false;
            ExhibitionType exhibitionType = db.ExhibitionTypes.Find(id);
            List <ExhibitionTypeResponse.ExhibitionPartInfo> exhibitionPartInfos = null;
            int count = 0;

            if (exhibitionType != null)
            {
                exhibitionPartInfos = db.Exhibitions
                                      .Where(p => p.typeid == id).Select(p => new { p.id, p.name, p.showimage, p.author, p.description }).ToList()
                                      .Select(p => new ExhibitionTypeResponse.ExhibitionPartInfo(p.id, p.name, p.author, p.description, p.showimage)).ToList();
                if (exhibitionPartInfos != null)
                {
                    operate = true;
                    count   = exhibitionPartInfos.Count;
                }
            }
            return(new ExhibitionTypeResponse.GetExhibitionByExhibitionTypeId()
            {
                exhibitionPartInfos = exhibitionPartInfos, operate = operate
            });
        }