/// <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); }
/// <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); }