//数据持久化 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(); } }
/// <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); }
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); }
/// <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); } }
/// <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("删除失败,数据可能被删除"); } }
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); } }
public static DataTable getClientLevelList() { Query q = ClientLevel.Query(); return(q.ExecuteDataSet().Tables[0]); }
public ClientObject(Socket client, ClientLevel level) { m_Client = client; m_Level = level; }
//更新登陆的客户端的权限 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; } } }
//向所有连接的终端发送数据 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(""); } } }
//从后台获取数据 internal static void LoadFromDAL(ClientLevelInfo pClientLevelInfo, ClientLevel pClientLevel) { pClientLevelInfo.clientLevelId = pClientLevel.ClientLevelId; pClientLevelInfo.clientLevelName = pClientLevel.ClientLevelName; pClientLevelInfo.Loaded=true; }
//从后台获取数据 internal static void LoadFromDAL(ClientLevelInfo pClientLevelInfo, ClientLevel pClientLevel) { pClientLevelInfo.clientLevelId = pClientLevel.ClientLevelId; pClientLevelInfo.clientLevelName = pClientLevel.ClientLevelName; pClientLevelInfo.Loaded = true; }
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); } }
//数据持久化 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(); } }
private void GenerateClientLevel(LevelInfo levelInfo) { ClientLevel newLevel = ClientLevel.GenerateClientLevel(levelInfo); ClientLevelDict.Add(levelInfo.GUID, newLevel); }
private void SetCurrentLevel(uint guid) { CurrentClientLevel = ClientLevelDict[guid]; CurrentClientLevel.name = "[Current]Level_" + CurrentClientLevel.LevelInfo.LevelName; }
/// <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); } }