Exemple #1
0
        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");
                }
            }
        }
Exemple #4
0
    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);
                }
            });
        });
    }
Exemple #6
0
    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);
            }
        }
    }