Ejemplo n.º 1
0
        /// <summary>
        /// 获取全部服务器可以使用的第一个跟目录
        /// </summary>
        /// <returns>Id,RootFolderPath</returns>
        public FsRootFolder GetAvailableRootFolder(string src)
        {
            string errMsg = string.Format("当前文件服务没有可用的根目录,请查看FileStore数据库的FsRootFolder表,Src={0}", src);

            var query = entities.FsRootFolder.Where(c => c.IsFull != "1");
            IQueryable <FsRootFolder> result = new List <FsRootFolder>().AsQueryable();

            result = query.Where(c => c.SrcFilter == src && (c.ExtNameFilter == null || c.ExtNameFilter == ""));
            if (result.Count() > 0)
            {
                goto SelectComplete;
            }

            result = query.Where(c => (c.SrcFilter == null || c.SrcFilter == "") && (c.ExtNameFilter == null || c.ExtNameFilter == ""));
            if (result.Count() > 0)
            {
                goto SelectComplete;
            }

SelectComplete:
            if (result.Count() == 0)
            {
                throw new Exception(errMsg);
            }
            FsRootFolder rootFolder = result.First();

            return(rootFolder);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 获取本服务器可以使用的第一个跟目录
        /// </summary>
        /// <returns>Id,RootFolderPath</returns>
        public FsRootFolder GetAvailableRootFolder(string serverName, string src, string extName)
        {
            extName = extName.Trim('.');
            //LogWriter.Info("Start"+DateTime.Now.ToString());
            //var query = entities.FsRootFolder.Where(c => c.FsServer.ServerName == serverName && c.IsFull != "1");
            var       QuerySql = string.Format(@"SELECT FSR.*,FSS.ServerName FROM dbo.FsRootFolder FSR WITH(NOLOCK)
                                                                LEFT JOIN dbo.FsServer FSS WITH(NOLOCK) ON FSS.Id = FSR.ServerId 
                                                                WHERE ServerName='{0}' AND IsFull!='1'", serverName);
            DataTable QueryDt  = SQLDB.ExecuteDataTable(QuerySql);

            //IQueryable<FsRootFolder> result = new List<FsRootFolder>().AsQueryable();
            DataRow[] A = QueryDt.Select("SrcFilter='" + src + "' and ExtNameFilter like '%" + extName + "%'");
            if (A.Count() > 0)
            {
                goto SelectComplete;
            }
            //result = query.Where(c => c.SrcFilter == src && c.ExtNameFilter.Contains(extName));
            //if (result.Count() > 0) goto SelectComplete;

            A = QueryDt.Select("SrcFilter='" + src + "' and (ExtNameFilter is null or ExtNameFilter='')");
            if (A.Count() > 0)
            {
                goto SelectComplete;
            }
            //result = query.Where(c => c.SrcFilter == src && (c.ExtNameFilter == null || c.ExtNameFilter == ""));
            //if (result.Count() > 0) goto SelectComplete;

            A = QueryDt.Select("(SrcFilter is null or SrcFilter='') and ExtNameFilter like '&" + extName + "&'");
            if (A.Count() > 0)
            {
                goto SelectComplete;
            }
            //result = query.Where(c => (c.SrcFilter == null || c.SrcFilter == "") && c.ExtNameFilter.Contains(extName));
            //if (result.Count() > 0) goto SelectComplete;

            A = QueryDt.Select("(SrcFilter is null or SrcFilter='') and (ExtNameFilter is null or ExtNameFilter='')");
            if (A.Count() > 0)
            {
                goto SelectComplete;
            }
            //result = query.Where(c => (c.SrcFilter == null || c.SrcFilter == "") && (c.ExtNameFilter == null || c.ExtNameFilter == ""));
            //if (result.Count() > 0) goto SelectComplete;

SelectComplete:
            //if (result.Count() == 0)
            //{
            //    string errMsg = string.Format("当前文件服务没有可用的根目录,请查看FileStore数据库的FsRootFolder表,Src={0},ExtName={1}", src, extName);
            //    throw new Exception(errMsg);
            //}
            if (A.Count() == 0)
            {
                string errMsg = string.Format("当前文件服务没有可用的根目录,请查看FileStore数据库的FsRootFolder表,Src={0},ExtName={1}", src, extName);
                throw new Exception(errMsg);
            }
            //FsRootFolder rootFolder = result.First();
            FsRootFolder rootFolder = D2E <FsRootFolder>(A[0]);

            //LogWriter.Info("End" + DateTime.Now.ToString());
            return(rootFolder);
        }