public List <sys_dic> getsysdic(string tablename) { string sql = "select * from sys_dic where table_name = '" + tablename + "'"; MySqlParameter[] parms = null; Helpers.MySqlHelper a = new Helpers.MySqlHelper(); DataTable dt = a.ExecuteDataTable(sql, parms); List <sys_dic> list = new List <sys_dic>(); list = DataTableExtend.ToDataList <sys_dic>(dt); return(list); }
/// <summary> /// 下载大区服务器列表 /// </summary> public void DownloadRegionServerList(string url, string country_code, Action <string, GameServerAreaDataGenerate> OnCompleted) { DataTableExtend.DownLoadTableConfig <GameServerAreaDataGenerate>(url, (dataList) => { if (dataList == null) { if (OnCompleted != null) { OnCompleted("download fail!", null); } return; } if (!string.IsNullOrEmpty(country_code)) { foreach (var item in dataList) { if (ArrayContains(item.m_CountryCode, country_code)) { Debug.Log("选定大区key:" + item.m_key); if (OnCompleted != null) { OnCompleted(null, item); } return; } } } Debug.Log("使用ping选择大区:" + dataList.Count); List <string> specialServerHostList = new List <string>(); foreach (var item in dataList) { specialServerHostList.Add(item.m_SpecialServerHost); } UnityPingManager.PingGetOptimalItem(specialServerHostList.ToArray(), (statistics) => { Debug.Log("选出最优Ping:" + statistics); foreach (var item in dataList) { if (item.m_SpecialServerHost == statistics.host) { if (OnCompleted != null) { OnCompleted(null, item); } break; } } }); }); }
private void ToListTest(DataTable dataTable) { var list = DataTableExtend.ToList <EnumerableEntityDef>(dataTable); var entityProperties = list.GetType().GetGenericArguments()[0].GetProperties(); var dataTableColumns = dataTable.Columns; Assert.AreEqual(dataTable.Columns.Count, entityProperties.Length, "DataTable.ToList convert columns failed"); for (var i = 0; i < dataTable.Columns.Count; i++) { Assert.AreEqual(dataTable.Columns[i].ColumnName, entityProperties[i].Name, "DataTable.ToList convert column's name failed"); Assert.AreEqual(dataTable.Columns[i].DataType, entityProperties[i].PropertyType, "DataTable.ToList convert column's type failed"); } Assert.AreEqual(dataTable.Rows.Count, list.Count(), "DataTable.ToList convert rows failed"); for (var i = 0; i < dataTable.Rows.Count; i++) { for (var j = 0; j < dataTable.Columns.Count; j++) { var v = entityProperties[j].GetValue(list[i], null); Assert.AreEqual(dataTable.Rows[i][j], v, "DataTable.ToList convert cell failed"); } } }
protected override void OnFlowStart(params object[] paras) { //GameServerAreaData gameServerArea = flowManager.GetVariable<GameServerAreaData>(P_GameServerAreaData); string hotupdateConfigUrl = null; try { string url = flowManager.GetVariable <string>(P_GameServerAreaDataConfigURL); Debug.Log("P_GameServerAreaDataConfigURL:" + url); int lastIndex = url.LastIndexOf("/"); hotupdateConfigUrl = url;// Path.GetDirectoryName(url) + "/"+ P_HotUpdatePathData; hotupdateConfigUrl = hotupdateConfigUrl.Replace(hotupdateConfigUrl.Substring(lastIndex), "/" + P_HotUpdatePathData); Debug.Log("hotupdateConfigUrl:" + hotupdateConfigUrl); } catch (Exception e) { Finish("Parse URL failed :" + e); return; } DataTableExtend.DownLoadTableConfig <HotUpdatePathData>(hotupdateConfigUrl, GetHotUpdatePath); }
/// <summary> /// 下载大区服务器列表 /// </summary> public void DownloadRegionServerList(string url, string country_code, Action <string, GameServerAreaData> OnCompleted) { DataTableExtend.DownLoadTableConfig <GameServerAreaData>(url, (dataList, urlError) => { if (!string.IsNullOrEmpty(urlError)) { Debug.LogError("DownloadRegionServerList download fail!"); if (OnCompleted != null) { OnCompleted("download fail! " + urlError, null); } return; } if (dataList.Count == 0) { Debug.LogError("DownloadRegionServerList GameServerAreaData is Empty!"); if (OnCompleted != null) { OnCompleted("GameServerAreaData is Empty!", null); } return; } if (!string.IsNullOrEmpty(country_code)) { //根据国家选择大区 foreach (var item in dataList) { if (ArrayContains(item.m_CountryCode, country_code)) { Debug.Log("国家选定大区key:" + item.m_key); GameInfoCollecter.AddNetworkStateInfoValue("选定大区", item.m_key); if (OnCompleted != null) { OnCompleted(null, item); } return; } } } //根据大洲选择大区 string continentName = GetContinentByCountryCode(country_code); if (!string.IsNullOrEmpty(continentName)) { foreach (var item in dataList) { if (ArrayContains(item.m_ContinentName, continentName)) { Debug.Log("根据大洲选定大区key:" + item.m_key); GameInfoCollecter.AddNetworkStateInfoValue("选定大区", item.m_key); if (OnCompleted != null) { OnCompleted(null, item); } return; } } } Debug.Log("使用ping选择大区:" + dataList.Count); List <string> specialServerHostList = new List <string>(); foreach (var item in dataList) { specialServerHostList.Add(item.m_SpecialServerHost); } UnityPingManager.PingGetOptimalItem(specialServerHostList.ToArray(), (statistics) => { Debug.Log("选出最优Ping:" + statistics); GameServerAreaData saData = null; foreach (var item in dataList) { if (item.m_SpecialServerHost == statistics.host) { saData = item; break; } } string error = null; if (saData == null) { error = "Select Ping Result Error!"; } if (OnCompleted != null) { OnCompleted(error, saData); } }); }); }
static IEnumerator Exqute() { for (int i = 0; i < 10;) { if (www == null || www.isDone) { Debug.Log("下载选服配置地址:" + downLoadFilePath); www = new WWW(downLoadFilePath); yield return(www); if (!string.IsNullOrEmpty(www.error)) { i++; Debug.LogError("SelectSeverController下载配置失败:" + downLoadFilePath); yield return(new WaitForEndOfFrame()); } else { break; } } } if (string.IsNullOrEmpty(www.error)) { List <SelectNetworkData> configs = DataTableExtend.GetTableDatas <SelectNetworkData>(www.text); Debug.Log("下载选服配置:" + www.text); Debug.Log("DataTableExtend.GetTableDatas:" + configs.Count); List <SelectNetworkData> selectConfig = new List <SelectNetworkData>(); foreach (SelectNetworkData cc in configs) { //Debug.Log("===>>" + JsonUtils.ToJson(cc)); if (StringArrayHaveItem(cc.m_channel, channel)) { //Debug.Log("channel:" + channel+" Key:"+cc.m_key); if (platform == RuntimePlatform.Android) { if (StringArrayHaveItem(cc.m_androidVersion, version)) { selectConfig.Add(cc); } } else if (platform == (RuntimePlatform.IPhonePlayer)) { if (StringArrayHaveItem(cc.m_iosVersion, version)) { selectConfig.Add(cc); } } else if (platform == RuntimePlatform.WindowsEditor || platform == RuntimePlatform.WindowsPlayer || platform == RuntimePlatform.OSXEditor || platform == RuntimePlatform.OSXPlayer || platform == RuntimePlatform.LinuxEditor || platform == RuntimePlatform.LinuxPlayer) { if (StringArrayHaveItem(cc.m_standaloneVersion, version)) { selectConfig.Add(cc); } } } } Debug.Log("选择服务器数目:" + selectConfig.Count); //SelectNetworkDataGenerate select = selectConfig.Count > 0 ? selectConfig[0] : null; if (OnSelectServerComplete != null) { OnSelectServerComplete(selectConfig); } } else { // Debug.LogError("SelectSeverController下载配置失败:" + downLoadFilePath); if (OnSelectServerComplete != null) { OnSelectServerComplete(null); } } }