Files: fixed get @share

This commit is contained in:
pavelbannov 2020-03-06 17:15:39 +03:00
parent 6ccfbec3b0
commit f0111a72a0

View File

@ -108,13 +108,15 @@ namespace ASC.Files.Core.Data
public File GetFile(object fileId)
{
var query = GetFileQuery(r => r.Id.ToString() == fileId.ToString() && r.CurrentVersion);
var fileIdString = fileId.ToString();
var query = GetFileQuery(r => r.Id.ToString() == fileIdString && r.CurrentVersion);
return FromQueryWithShared(query).SingleOrDefault();
}
public File GetFile(object fileId, int fileVersion)
{
var query = GetFileQuery(r => r.Id.ToString() == fileId.ToString() && r.Version == fileVersion);
var fileIdString = fileId.ToString();
var query = GetFileQuery(r => r.Id.ToString() == fileIdString && r.Version == fileVersion);
return FromQueryWithShared(query).SingleOrDefault();
}
@ -122,7 +124,8 @@ namespace ASC.Files.Core.Data
{
if (string.IsNullOrEmpty(title)) throw new ArgumentNullException(title);
var query = GetFileQuery(r => r.Title == title && r.CurrentVersion == true && r.FolderId.ToString() == parentId.ToString())
var parentIdString = parentId.ToString();
var query = GetFileQuery(r => r.Title == title && r.CurrentVersion == true && r.FolderId.ToString() == parentIdString)
.OrderBy(r => r.CreateOn);
return FromQueryWithShared(query).FirstOrDefault();
@ -130,7 +133,8 @@ namespace ASC.Files.Core.Data
public File GetFileStable(object fileId, int fileVersion = -1)
{
var query = GetFileQuery(r => r.Id.ToString() == fileId.ToString() && r.Forcesave == ForcesaveType.None);
var fileIdString = fileId.ToString();
var query = GetFileQuery(r => r.Id.ToString() == fileIdString && r.Forcesave == ForcesaveType.None);
if (fileVersion >= 0)
{
@ -144,7 +148,8 @@ namespace ASC.Files.Core.Data
public List<File> GetFileHistory(object fileId)
{
var query = GetFileQuery(r => r.Id.ToString() == fileId.ToString()).OrderByDescending(r => r.Version);
var fileIdString = fileId.ToString();
var query = GetFileQuery(r => r.Id.ToString() == fileIdString).OrderByDescending(r => r.Version);
return FromQueryWithShared(query);
}
@ -153,7 +158,8 @@ namespace ASC.Files.Core.Data
{
if (fileIds == null || fileIds.Length == 0) return new List<File>();
var query = GetFileQuery(r => fileIds.Any(a => a.ToString() == r.Id.ToString()) && r.CurrentVersion);
var fileIdsString = fileIds.Select(r => r.ToString()).ToList();
var query = GetFileQuery(r => fileIdsString.Any(a => a == r.Id.ToString()) && r.CurrentVersion);
return FromQueryWithShared(query);
}
@ -384,8 +390,9 @@ namespace ASC.Files.Core.Data
if (file.CreateBy == default) file.CreateBy = AuthContext.CurrentAccount.ID;
if (file.CreateOn == default) file.CreateOn = TenantUtil.DateTimeNow();
var fileIdString = file.ID.ToString();
var toUpdate = FilesDbContext.Files
.Where(r => r.Id.ToString() == file.ID.ToString() && r.CurrentVersion && r.TenantId == TenantID)
.Where(r => r.Id.ToString() == fileIdString && r.CurrentVersion && r.TenantId == TenantID)
.FirstOrDefault();
if (toUpdate != null)
@ -658,9 +665,10 @@ namespace ASC.Files.Core.Data
public bool IsExist(string title, object folderId)
{
var folderIdString = folderId.ToString();
return Query(FilesDbContext.Files)
.Where(r => r.Title == title)
.Where(r => r.FolderId == (int)folderId)
.Where(r => r.FolderId.ToString() == folderIdString)
.Where(r => r.CurrentVersion)
.Any();
}
@ -745,9 +753,10 @@ namespace ASC.Files.Core.Data
public object FileRename(File file, string newTitle)
{
var fileIdString = file.ID.ToString();
newTitle = Global.ReplaceInvalidCharsAndTruncate(newTitle);
var toUpdate = Query(FilesDbContext.Files)
.Where(r => r.Id == (int)file.ID)
.Where(r => r.Id.ToString() == fileIdString)
.Where(r => r.CurrentVersion)
.FirstOrDefault();
@ -928,9 +937,10 @@ namespace ASC.Files.Core.Data
public void ReassignFiles(object[] fileIds, Guid newOwnerId)
{
var fileIdsStrings = fileIds.Select(r => r.ToString()).ToList();
var toUpdate = Query(FilesDbContext.Files)
.Where(r => r.CurrentVersion)
.Where(r => fileIds.Any(a => a.ToString() == r.Id.ToString()));
.Where(r => fileIdsStrings.Any(a => a == r.Id.ToString()));
foreach (var f in toUpdate)
{
@ -944,9 +954,10 @@ namespace ASC.Files.Core.Data
{
if (parentIds == null || parentIds.Length == 0 || filterType == FilterType.FoldersOnly) return new List<File>();
var parentIdsStrings = parentIds.Select(r => r.ToString()).ToList();
var q = GetFileQuery(r => r.CurrentVersion)
.Join(FilesDbContext.Tree, a => a.FolderId, t => t.FolderId, (file, tree) => new { file, tree })
.Where(r => parentIds.Any(a => a.ToString() == r.tree.ParentId.ToString()))
.Where(r => parentIdsStrings.Any(a => a == r.tree.ParentId.ToString()))
.Select(r => r.file);
if (!string.IsNullOrEmpty(searchText))