예제 #1
0
        /// <summary>
        /// 得到数据服务器
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="hashValue"></param>
        /// <returns></returns>
        protected virtual DataServiceGroupInfo GetDataServiceGroup(string fileName, long hashValue)
        {
            var dataServiceGroups =
                DataServiceGroups.Where(it => (string.IsNullOrEmpty(it.Path) || fileName.Contains(it.Path)) && !it.IsClose).ToList();
            var index = (int)(hashValue % (dataServiceGroups.Count == 0 ? 1 : dataServiceGroups.Count));

            return(dataServiceGroups[index]);
        }
예제 #2
0
        /// <summary>
        /// 得到数据服务器
        /// </summary>
        /// <param name="fileName"></param>
        /// <returns></returns>
        protected virtual DataServiceGroupInfo GetDataServiceGroup(string fileName)
        {
            string name       = null;
            var    startIndex = fileName.LastIndexOf("_") + 1;

            if (startIndex > 0)
            {
                var endIndex = fileName.IndexOf(".", startIndex);
                if (startIndex > 0 && endIndex > -1 && endIndex > startIndex)
                {
                    name = fileName.Substring(startIndex, endIndex - startIndex);
                }
            }
            var dataServiceGroup = string.IsNullOrEmpty(name)?
                                   DataServiceGroups.FirstOrDefault(it => (string.IsNullOrEmpty(it.Path) || fileName.Contains(it.Path))):
                                   DataServiceGroups.FirstOrDefault(it => it.Name.Equals(name));

            return(dataServiceGroup);
        }