Пример #1
0
        //数据持久化
        internal static void  SaveToDb(ClientLevelInfo pClientLevelInfo, ClientLevel pClientLevel, bool pIsNew)
        {
            pClientLevel.ClientLevelId   = pClientLevelInfo.clientLevelId;
            pClientLevel.ClientLevelName = pClientLevelInfo.clientLevelName;
            pClientLevel.IsNew           = pIsNew;
            string UserName = SubsonicHelper.GetUserName();

            try
            {
                pClientLevel.Save(UserName);
            }
            catch (Exception ex)
            {
                LogManager.getInstance().getLogger(typeof(ClientLevelInfo)).Error(ex);
                if (ex.Message.Contains("插入重复键"))               //违反了唯一键
                {
                    throw new AppException("此对象已经存在");          //此处等待优化可以从唯一约束中直接取出提示来,如果没有的话,默认为原始的出错提示
                }
                throw new AppException("保存失败");
            }
            pClientLevelInfo.clientLevelId = pClientLevel.ClientLevelId;
            //如果缓存存在,更新缓存
            if (CachedEntityCommander.IsTypeRegistered(typeof(ClientLevelInfo)))
            {
                ResetCache();
            }
        }
Пример #2
0
        /// <summary>
        /// 获得分页列表,无论是否是缓存实体都从数据库直接拿取数据
        /// </summary>
        /// <param name="pPageIndex">页数</param>
        /// <param name="pPageSize">每页列表</param>
        /// <param name="pOrderBy">排序</param>
        /// <param name="pSortExpression">排序字段</param>
        /// <param name="pRecordCount">列表行数</param>
        /// <returns>数据分页</returns>
        public static List <ClientLevelInfo> GetPagedList(int pPageIndex, int pPageSize, SortDirection pOrderBy, string pSortExpression, out int pRecordCount)
        {
            if (pPageIndex <= 1)
            {
                pPageIndex = 1;
            }
            List <ClientLevelInfo> list = new List <ClientLevelInfo>();

            Query q = ClientLevel.CreateQuery();

            q.PageIndex = pPageIndex;
            q.PageSize  = pPageSize;
            q.ORDER_BY(pSortExpression, pOrderBy.ToString());
            ClientLevelCollection collection = new  ClientLevelCollection();

            collection.LoadAndCloseReader(q.ExecuteReader());

            foreach (ClientLevel clientLevel  in collection)
            {
                ClientLevelInfo clientLevelInfo = new ClientLevelInfo();
                LoadFromDAL(clientLevelInfo, clientLevel);
                list.Add(clientLevelInfo);
            }
            pRecordCount = q.GetRecordCount();

            return(list);
        }
Пример #3
0
    public static ClientLevel GenerateClientLevel(LevelInfo levelInfo)
    {
        GameObject  levelPrefab = PrefabManager.Instance.GetPrefab(levelInfo.LevelName);
        GameObject  levelGO     = Instantiate(levelPrefab);
        ClientLevel clientLevel = levelGO.GetComponent <ClientLevel>();

        clientLevel.Init(levelInfo);
        return(clientLevel);
    }
Пример #4
0
 /// <summary>
 /// 保存
 /// </summary>
 public override void Save()
 {
     if (!m_Loaded)           //新增
     {
         ClientLevel clientLevel = new ClientLevel();
         SaveToDb(this, clientLevel, true);
     }
     else            //修改
     {
         ClientLevel clientLevel = new ClientLevel(clientLevelId);
         if (clientLevel.IsNew)
         {
             throw new AppException("该数据已经不存在了");
         }
         SaveToDb(this, clientLevel, false);
     }
 }
Пример #5
0
        /// <summary>
        /// 删除
        /// </summary>
        /// <returns>是否成功</returns>
        public override void Delete()
        {
            if (!m_Loaded)
            {
                throw new AppException("尚未初始化");
            }
            bool result = (ClientLevel.Delete(ClientLevelId) == 1);

            //更新缓存
            if (result && CachedEntityCommander.IsTypeRegistered(typeof(ClientLevelInfo)))
            {
                ResetCache();
            }
            if (!result)
            {
                throw new AppException("删除失败,数据可能被删除");
            }
        }
Пример #6
0
 private void LoadFromId(int clientLevelId)
 {
     if (CachedEntityCommander.IsTypeRegistered(typeof(ClientLevelInfo)))
     {
         ClientLevelInfo clientLevelInfo = Find(GetList(), clientLevelId);
         if (clientLevelInfo == null)
         {
             throw new AppException("未能在缓存中找到相应的键值对象");
         }
         Copy(clientLevelInfo, this);
     }
     else
     {
         ClientLevel clientLevel = new ClientLevel(clientLevelId);
         if (clientLevel.IsNew)
         {
             throw new AppException("尚未初始化");
         }
         LoadFromDAL(this, clientLevel);
     }
 }
Пример #7
0
        public static DataTable getClientLevelList()
        {
            Query q = ClientLevel.Query();

            return(q.ExecuteDataSet().Tables[0]);
        }
Пример #8
0
 public ClientObject(Socket client, ClientLevel level)
 {
     m_Client = client;
     m_Level = level;
 }
Пример #9
0
 //更新登陆的客户端的权限
 public void UpdateClientList(Socket client, ClientLevel level)
 {
     for (int i = 0; i < m_ClientList.Count; i++)
     {
         ClientObject clientObj = m_ClientList[i];
         if (clientObj.Client == client)
         {
             clientObj.Level = level;
             break;
         }
     }
 }
Пример #10
0
        //向所有连接的终端发送数据
        public void BroadcastData(ClientLevel dataLevel, byte[] data)
        {
            //dataLevel为数据查看的权限,只有大于或等于该权限的用户才可以接收
            byte curLevelNo = (byte)dataLevel;
            for (int i = 0; i < m_ClientList.Count; i++)
            {
                try
                {
                    ClientObject clientObj = m_ClientList[i];
                    if (clientObj.Client.Connected)
                    {
                        if ((byte)clientObj.Level <= curLevelNo)
                        {
                            Send(clientObj.Client, data);
                        }
                    }

                }
                catch (Exception e)
                {
                    Console.WriteLine(e.ToString());
                    Console.WriteLine(DateTime.Now.ToString());
                    Console.WriteLine("");

                }
            }
        }
Пример #11
0
 //从后台获取数据
 internal static void LoadFromDAL(ClientLevelInfo pClientLevelInfo, ClientLevel  pClientLevel)
 {
     pClientLevelInfo.clientLevelId = pClientLevel.ClientLevelId;
      		pClientLevelInfo.clientLevelName = pClientLevel.ClientLevelName;
     pClientLevelInfo.Loaded=true;
 }
Пример #12
0
 //从后台获取数据
 internal static void  LoadFromDAL(ClientLevelInfo pClientLevelInfo, ClientLevel pClientLevel)
 {
     pClientLevelInfo.clientLevelId   = pClientLevel.ClientLevelId;
     pClientLevelInfo.clientLevelName = pClientLevel.ClientLevelName;
     pClientLevelInfo.Loaded          = true;
 }
Пример #13
0
 private void LoadFromId(int clientLevelId)
 {
     if (CachedEntityCommander.IsTypeRegistered(typeof(ClientLevelInfo)))
     {
         ClientLevelInfo clientLevelInfo=Find(GetList(), clientLevelId);
         if(clientLevelInfo==null)
             throw new AppException("未能在缓存中找到相应的键值对象");
         Copy(clientLevelInfo, this);
     }
     else
     {	ClientLevel clientLevel=new ClientLevel( clientLevelId);
         if(clientLevel.IsNew)
         throw new AppException("尚未初始化");
        	LoadFromDAL(this, clientLevel);
     }
 }
Пример #14
0
 //数据持久化
 internal static void SaveToDb(ClientLevelInfo pClientLevelInfo, ClientLevel  pClientLevel,bool pIsNew)
 {
     pClientLevel.ClientLevelId = pClientLevelInfo.clientLevelId;
      		pClientLevel.ClientLevelName = pClientLevelInfo.clientLevelName;
     pClientLevel.IsNew=pIsNew;
     string UserName = SubsonicHelper.GetUserName();
     try
     {
         pClientLevel.Save(UserName);
     }
     catch(Exception ex)
     {
         LogManager.getInstance().getLogger(typeof(ClientLevelInfo)).Error(ex);
         if(ex.Message.Contains("插入重复键"))//违反了唯一键
         {
             throw new AppException("此对象已经存在");//此处等待优化可以从唯一约束中直接取出提示来,如果没有的话,默认为原始的出错提示
         }
         throw new AppException("保存失败");
     }
     pClientLevelInfo.clientLevelId = pClientLevel.ClientLevelId;
     //如果缓存存在,更新缓存
     if (CachedEntityCommander.IsTypeRegistered(typeof(ClientLevelInfo)))
     {
         ResetCache();
     }
 }
Пример #15
0
        private void GenerateClientLevel(LevelInfo levelInfo)
        {
            ClientLevel newLevel = ClientLevel.GenerateClientLevel(levelInfo);

            ClientLevelDict.Add(levelInfo.GUID, newLevel);
        }
Пример #16
0
 private void SetCurrentLevel(uint guid)
 {
     CurrentClientLevel      = ClientLevelDict[guid];
     CurrentClientLevel.name = "[Current]Level_" + CurrentClientLevel.LevelInfo.LevelName;
 }
Пример #17
0
 /// <summary>
 /// 保存
 /// </summary>
 public override void Save()
 {
     if(!m_Loaded)//新增
     {
         ClientLevel clientLevel=new ClientLevel();
         SaveToDb(this, clientLevel,true);
     }
     else//修改
     {
         ClientLevel clientLevel=new ClientLevel(clientLevelId);
         if(clientLevel.IsNew)
             throw new AppException("该数据已经不存在了");
         SaveToDb(this, clientLevel,false);
     }
 }