Dao: any replaced with containts
This commit is contained in:
parent
4a1260e828
commit
334c766052
@ -174,7 +174,7 @@ namespace ASC.Files.Core.Data
|
||||
{
|
||||
if (fileIds == null || !fileIds.Any()) return new List<File<int>>();
|
||||
|
||||
var query = GetFileQuery(r => fileIds.Any(a => a == r.Id) && r.CurrentVersion)
|
||||
var query = GetFileQuery(r => fileIds.Contains(r.Id) && r.CurrentVersion)
|
||||
.AsNoTracking();
|
||||
|
||||
return FromQueryWithShared(query).Select(ToFile).ToList();
|
||||
@ -184,7 +184,7 @@ namespace ASC.Files.Core.Data
|
||||
{
|
||||
if (fileIds == null || !fileIds.Any() || filterType == FilterType.FoldersOnly) return new List<File<int>>();
|
||||
|
||||
var query = GetFileQuery(r => fileIds.Any(a => a == r.Id) && r.CurrentVersion).AsNoTracking();
|
||||
var query = GetFileQuery(r => fileIds.Contains(r.Id) && r.CurrentVersion).AsNoTracking();
|
||||
|
||||
if (!string.IsNullOrEmpty(searchText))
|
||||
{
|
||||
@ -192,7 +192,7 @@ namespace ASC.Files.Core.Data
|
||||
|
||||
if (FactoryIndexer.TrySelectIds(s => func(s).In(r => r.Id, fileIds.ToArray()), out var searchIds))
|
||||
{
|
||||
query = query.Where(r => searchIds.Any(b => b == r.Id));
|
||||
query = query.Where(r => searchIds.Contains(r.Id));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -205,7 +205,7 @@ namespace ASC.Files.Core.Data
|
||||
if (subjectGroup)
|
||||
{
|
||||
var users = UserManager.GetUsersByGroup(subjectID).Select(u => u.ID).ToArray();
|
||||
query = query.Where(r => users.Any(b => b == r.CreateBy));
|
||||
query = query.Where(r => users.Contains(r.CreateBy));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -274,7 +274,7 @@ namespace ASC.Files.Core.Data
|
||||
|
||||
if (FactoryIndexer.TrySelectIds(expression, out var searchIds))
|
||||
{
|
||||
q = q.Where(r => searchIds.Any(a => a == r.Id));
|
||||
q = q.Where(r => searchIds.Contains(r.Id));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -296,7 +296,7 @@ namespace ASC.Files.Core.Data
|
||||
if (subjectGroup)
|
||||
{
|
||||
var users = UserManager.GetUsersByGroup(subjectID).Select(u => u.ID).ToArray();
|
||||
q = q.Where(r => users.Any(a => a == r.CreateBy));
|
||||
q = q.Where(r => users.Contains(r.CreateBy));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -445,7 +445,7 @@ namespace ASC.Files.Core.Data
|
||||
if (parentFoldersIds.Any())
|
||||
{
|
||||
var folderToUpdate = FilesDbContext.Folders
|
||||
.Where(r => parentFoldersIds.Any(a => a == r.Id));
|
||||
.Where(r => parentFoldersIds.Contains(r.Id));
|
||||
|
||||
foreach (var f in folderToUpdate)
|
||||
{
|
||||
@ -569,7 +569,7 @@ namespace ASC.Files.Core.Data
|
||||
if (parentFoldersIds.Any())
|
||||
{
|
||||
var folderToUpdate = FilesDbContext.Folders
|
||||
.Where(r => parentFoldersIds.Any(a => a == r.Id));
|
||||
.Where(r => parentFoldersIds.Contains(r.Id));
|
||||
|
||||
foreach (var f in folderToUpdate)
|
||||
{
|
||||
@ -669,7 +669,7 @@ namespace ASC.Files.Core.Data
|
||||
FilesDbContext.RemoveRange(toDeleteFiles);
|
||||
|
||||
var tagsToRemove = Query(FilesDbContext.Tag)
|
||||
.Where(r => !Query(FilesDbContext.TagLink).Where(a => a.TagId == r.Id).Any());
|
||||
.Where(r => !Query(FilesDbContext.TagLink).Any(a => a.TagId == r.Id));
|
||||
|
||||
FilesDbContext.Tag.RemoveRange(tagsToRemove);
|
||||
|
||||
@ -1027,7 +1027,7 @@ namespace ASC.Files.Core.Data
|
||||
{
|
||||
var toUpdate = Query(FilesDbContext.Files)
|
||||
.Where(r => r.CurrentVersion)
|
||||
.Where(r => fileIds.Any(a => a == r.Id));
|
||||
.Where(r => fileIds.Contains(r.Id));
|
||||
|
||||
foreach (var f in toUpdate)
|
||||
{
|
||||
@ -1044,7 +1044,7 @@ namespace ASC.Files.Core.Data
|
||||
var q = GetFileQuery(r => r.CurrentVersion)
|
||||
.AsNoTracking()
|
||||
.Join(FilesDbContext.Tree, a => a.FolderId, t => t.FolderId, (file, tree) => new { file, tree })
|
||||
.Where(r => parentIds.Any(a => a == r.tree.ParentId))
|
||||
.Where(r => parentIds.Contains(r.tree.ParentId))
|
||||
.Select(r => r.file);
|
||||
|
||||
if (!string.IsNullOrEmpty(searchText))
|
||||
@ -1053,7 +1053,7 @@ namespace ASC.Files.Core.Data
|
||||
|
||||
if (FactoryIndexer.TrySelectIds(s => func(s), out var searchIds))
|
||||
{
|
||||
q = q.Where(r => searchIds.Any(b => b == r.Id));
|
||||
q = q.Where(r => searchIds.Contains(r.Id));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1066,7 +1066,7 @@ namespace ASC.Files.Core.Data
|
||||
if (subjectGroup)
|
||||
{
|
||||
var users = UserManager.GetUsersByGroup(subjectID).Select(u => u.ID).ToArray();
|
||||
q = q.Where(r => users.Any(u => u == r.CreateBy));
|
||||
q = q.Where(r => users.Contains(r.CreateBy));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1099,7 +1099,7 @@ namespace ASC.Files.Core.Data
|
||||
{
|
||||
if (FactoryIndexer.TrySelectIds(s => s.MatchAll(searchText), out var ids))
|
||||
{
|
||||
var query = GetFileQuery(r => r.CurrentVersion && ids.Any(i => i == r.Id)).AsNoTracking();
|
||||
var query = GetFileQuery(r => r.CurrentVersion && ids.Contains(r.Id)).AsNoTracking();
|
||||
return FromQueryWithShared(query).Select(ToFile)
|
||||
.Where(
|
||||
f =>
|
||||
|
@ -149,7 +149,7 @@ namespace ASC.Files.Core.Data
|
||||
.Distinct();
|
||||
|
||||
var q = FilesDbContext.Tree.AsNoTracking()
|
||||
.Where(r => subq.Any(q => q == r.FolderId))
|
||||
.Where(r => subq.Contains(r.FolderId))
|
||||
.OrderByDescending(r => r.Level)
|
||||
.Select(r => r.ParentId)
|
||||
.FirstOrDefault();
|
||||
@ -187,7 +187,7 @@ namespace ASC.Files.Core.Data
|
||||
{
|
||||
if (FactoryIndexer.TrySelectIds(s => s.MatchAll(searchText), out var searchIds))
|
||||
{
|
||||
q = q.Where(r => searchIds.Any(a => a == r.Id));
|
||||
q = q.Where(r => searchIds.Contains(r.Id));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -208,7 +208,7 @@ namespace ASC.Files.Core.Data
|
||||
if (subjectGroup)
|
||||
{
|
||||
var users = UserManager.GetUsersByGroup(subjectID).Select(u => u.ID).ToArray();
|
||||
q = q.Where(r => users.Any(a => a == r.CreateBy));
|
||||
q = q.Where(r => users.Contains(r.CreateBy));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -227,14 +227,14 @@ namespace ASC.Files.Core.Data
|
||||
|| filterType == FilterType.ArchiveOnly || filterType == FilterType.MediaOnly)
|
||||
return new List<Folder<int>>();
|
||||
|
||||
var q = GetFolderQuery(r => folderIds.Any(q => q == r.Id)).AsNoTracking();
|
||||
var q = GetFolderQuery(r => folderIds.Contains(r.Id)).AsNoTracking();
|
||||
|
||||
if (searchSubfolders)
|
||||
{
|
||||
q = GetFolderQuery()
|
||||
.AsNoTracking()
|
||||
.Join(FilesDbContext.Tree, r => r.Id, a => a.FolderId, (folder, tree) => new { folder, tree })
|
||||
.Where(r => folderIds.Any(q => q == r.tree.ParentId))
|
||||
.Where(r => folderIds.Contains(r.tree.ParentId))
|
||||
.Select(r => r.folder);
|
||||
}
|
||||
|
||||
@ -246,7 +246,7 @@ namespace ASC.Files.Core.Data
|
||||
: s.MatchAll(searchText).In(r => r.Id, folderIds.ToArray()),
|
||||
out var searchIds))
|
||||
{
|
||||
q = q.Where(r => searchIds.Any(a => a == r.Id));
|
||||
q = q.Where(r => searchIds.Contains(r.Id));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -260,7 +260,7 @@ namespace ASC.Files.Core.Data
|
||||
if (subjectGroup)
|
||||
{
|
||||
var users = UserManager.GetUsersByGroup(subjectID.Value).Select(u => u.ID).ToArray();
|
||||
q = q.Where(r => users.Any(a => a == r.CreateBy));
|
||||
q = q.Where(r => users.Contains(r.CreateBy));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -388,8 +388,7 @@ namespace ASC.Files.Core.Data
|
||||
private bool IsExist(int folderId)
|
||||
{
|
||||
return Query(FilesDbContext.Folders).AsNoTracking()
|
||||
.Where(r => r.Id == folderId)
|
||||
.Any();
|
||||
.Any(r => r.Id == folderId);
|
||||
}
|
||||
|
||||
public void DeleteFolder(int id)
|
||||
@ -410,7 +409,7 @@ namespace ASC.Files.Core.Data
|
||||
.Select(r => r.ParentId)
|
||||
.FirstOrDefault();
|
||||
|
||||
var folderToDelete = Query(FilesDbContext.Folders).Where(r => subfolders.Any(a => r.Id == a));
|
||||
var folderToDelete = Query(FilesDbContext.Folders).Where(r => subfolders.Contains(r.Id));
|
||||
FilesDbContext.Folders.RemoveRange(folderToDelete);
|
||||
|
||||
foreach (var f in folderToDelete)
|
||||
@ -418,22 +417,22 @@ namespace ASC.Files.Core.Data
|
||||
FactoryIndexer.DeleteAsync(f);
|
||||
}
|
||||
|
||||
var treeToDelete = FilesDbContext.Tree.Where(r => subfolders.Any(a => r.FolderId == a));
|
||||
var treeToDelete = FilesDbContext.Tree.Where(r => subfolders.Contains(r.FolderId));
|
||||
FilesDbContext.Tree.RemoveRange(treeToDelete);
|
||||
|
||||
var subfoldersStrings = subfolders.Select(r => r.ToString()).ToList();
|
||||
var linkToDelete = Query(FilesDbContext.TagLink)
|
||||
.Where(r => subfoldersStrings.Any(a => r.EntryId == a))
|
||||
.Where(r => subfoldersStrings.Contains(r.EntryId))
|
||||
.Where(r => r.EntryType == FileEntryType.Folder);
|
||||
FilesDbContext.TagLink.RemoveRange(linkToDelete);
|
||||
|
||||
var tagsToRemove = Query(FilesDbContext.Tag)
|
||||
.Where(r => !Query(FilesDbContext.TagLink).Where(a => a.TagId == r.Id).Any());
|
||||
.Where(r => !Query(FilesDbContext.TagLink).Any(a => a.TagId == r.Id));
|
||||
|
||||
FilesDbContext.Tag.RemoveRange(tagsToRemove);
|
||||
|
||||
var securityToDelete = Query(FilesDbContext.Security)
|
||||
.Where(r => subfoldersStrings.Any(a => r.EntryId == a))
|
||||
.Where(r => subfoldersStrings.Contains(r.EntryId))
|
||||
.Where(r => r.EntryType == FileEntryType.Folder);
|
||||
|
||||
FilesDbContext.Security.RemoveRange(securityToDelete);
|
||||
@ -499,7 +498,7 @@ namespace ASC.Files.Core.Data
|
||||
.ToDictionary(r => r.FolderId, r => r.Level);
|
||||
|
||||
var toDelete = FilesDbContext.Tree
|
||||
.Where(r => subfolders.Keys.Any(a => a == r.FolderId) && !subfolders.Keys.Any(a => a == r.ParentId));
|
||||
.Where(r => subfolders.Keys.Contains(r.FolderId) && !subfolders.Keys.Contains(r.ParentId));
|
||||
|
||||
FilesDbContext.Tree.RemoveRange(toDelete);
|
||||
FilesDbContext.SaveChanges();
|
||||
@ -622,9 +621,7 @@ namespace ASC.Files.Core.Data
|
||||
{
|
||||
var exists = FilesDbContext.Tree
|
||||
.AsNoTracking()
|
||||
.Where(r => r.ParentId == folderId)
|
||||
.Where(r => r.FolderId == to)
|
||||
.Any();
|
||||
.Any(r => r.ParentId == folderId && r.FolderId == to);
|
||||
|
||||
if (exists)
|
||||
{
|
||||
@ -710,8 +707,7 @@ namespace ASC.Files.Core.Data
|
||||
var count = Query(FilesDbContext.Files)
|
||||
.AsNoTracking()
|
||||
.Distinct()
|
||||
.Where(r => FilesDbContext.Tree.Where(r => r.ParentId == folderId).Select(r => r.FolderId).Any(b => b == r.FolderId))
|
||||
.Count();
|
||||
.Count(r => FilesDbContext.Tree.Where(r => r.ParentId == folderId).Select(r => r.FolderId).Contains(r.FolderId));
|
||||
|
||||
return count;
|
||||
}
|
||||
@ -759,7 +755,7 @@ namespace ASC.Files.Core.Data
|
||||
private void RecalculateFoldersCount(int id)
|
||||
{
|
||||
var toUpdate = Query(FilesDbContext.Folders)
|
||||
.Where(r => FilesDbContext.Tree.Where(a => a.FolderId == id).Select(a => a.ParentId).Any(a => a == r.Id))
|
||||
.Where(r => FilesDbContext.Tree.Where(a => a.FolderId == id).Select(a => a.ParentId).Contains(r.Id))
|
||||
.ToList();
|
||||
|
||||
foreach (var f in toUpdate)
|
||||
@ -776,7 +772,7 @@ namespace ASC.Files.Core.Data
|
||||
public void ReassignFolders(int[] folderIds, Guid newOwnerId)
|
||||
{
|
||||
var toUpdate = Query(FilesDbContext.Folders)
|
||||
.Where(r => folderIds.Any(a => r.Id == a));
|
||||
.Where(r => folderIds.Contains(r.Id));
|
||||
|
||||
foreach (var f in toUpdate)
|
||||
{
|
||||
@ -800,7 +796,7 @@ namespace ASC.Files.Core.Data
|
||||
|
||||
if (FactoryIndexer.TrySelectIds(s => s.MatchAll(text), out var ids))
|
||||
{
|
||||
var q1 = GetFolderQuery(r => ids.Any(a => r.Id == a));
|
||||
var q1 = GetFolderQuery(r => ids.Contains(r.Id));
|
||||
return FromQueryWithShared(q1).Select(ToFolder).ToList();
|
||||
}
|
||||
|
||||
@ -1043,17 +1039,13 @@ namespace ASC.Files.Core.Data
|
||||
Folder = r,
|
||||
Root = FilesDbContext.Folders
|
||||
.Join(FilesDbContext.Tree, a => a.Id, b => b.ParentId, (folder, tree) => new { folder, tree })
|
||||
.Where(x => x.folder.TenantId == r.TenantId)
|
||||
.Where(x => x.tree.FolderId == r.ParentId)
|
||||
.Where(x => x.folder.TenantId == r.TenantId && x.tree.FolderId == r.ParentId)
|
||||
.OrderByDescending(r => r.tree.Level)
|
||||
.Select(r => r.folder)
|
||||
.Take(1)
|
||||
.FirstOrDefault(),
|
||||
Shared = FilesDbContext.Security
|
||||
.Where(x => x.TenantId == TenantID)
|
||||
.Where(r => r.EntryType == FileEntryType.Folder)
|
||||
.Where(x => x.EntryId == r.Id.ToString())
|
||||
.Any()
|
||||
.Any(x => x.TenantId == TenantID && x.EntryType == FileEntryType.Folder && x.EntryId == r.Id.ToString())
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -93,9 +93,8 @@ namespace ASC.Files.Core.Data
|
||||
public bool IsShared(object entryId, FileEntryType type)
|
||||
{
|
||||
return Query(FilesDbContext.Security)
|
||||
.Where(r => r.EntryId == MappingID(entryId).ToString())
|
||||
.Where(r => r.EntryType == type)
|
||||
.Any();
|
||||
.Any(r => r.EntryId == MappingID(entryId).ToString() &&
|
||||
r.EntryType == type);
|
||||
}
|
||||
|
||||
public void SetShare(FileShareRecord r)
|
||||
@ -119,7 +118,7 @@ namespace ASC.Files.Core.Data
|
||||
.ToList();
|
||||
|
||||
folders.AddRange(foldersInt.Select(folderInt => folderInt.ToString()));
|
||||
files.AddRange(Query(FilesDbContext.Files).Where(r => foldersInt.Any(a => a == r.FolderId)).Select(r => r.Id.ToString()));
|
||||
files.AddRange(Query(FilesDbContext.Files).Where(r => foldersInt.Contains(r.FolderId)).Select(r => r.Id.ToString()));
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -127,10 +126,10 @@ namespace ASC.Files.Core.Data
|
||||
}
|
||||
|
||||
var toDelete = FilesDbContext.Security
|
||||
.Where(a => a.TenantId == r.Tenant)
|
||||
.Where(a => folders.Any(b => b == a.EntryId))
|
||||
.Where(a => a.EntryType == FileEntryType.Folder)
|
||||
.Where(a => a.Subject == r.Subject);
|
||||
.Where(a => a.TenantId == r.Tenant &&
|
||||
folders.Contains(a.EntryId) &&
|
||||
a.EntryType == FileEntryType.Folder &&
|
||||
a.Subject == r.Subject);
|
||||
|
||||
FilesDbContext.Security.RemoveRange(toDelete);
|
||||
FilesDbContext.SaveChanges();
|
||||
@ -144,10 +143,10 @@ namespace ASC.Files.Core.Data
|
||||
if (0 < files.Count)
|
||||
{
|
||||
var toDelete = FilesDbContext.Security
|
||||
.Where(a => a.TenantId == r.Tenant)
|
||||
.Where(a => files.Any(b => b == a.EntryId))
|
||||
.Where(a => a.EntryType == FileEntryType.File)
|
||||
.Where(a => a.Subject == r.Subject);
|
||||
.Where(a => a.TenantId == r.Tenant &&
|
||||
files.Contains(a.EntryId) &&
|
||||
a.EntryType == FileEntryType.File &&
|
||||
a.Subject == r.Subject);
|
||||
|
||||
FilesDbContext.Security.RemoveRange(toDelete);
|
||||
FilesDbContext.SaveChanges();
|
||||
@ -175,7 +174,7 @@ namespace ASC.Files.Core.Data
|
||||
|
||||
public IEnumerable<FileShareRecord> GetShares(IEnumerable<Guid> subjects)
|
||||
{
|
||||
var q = GetQuery(r => subjects.Any(a => r.Subject == a));
|
||||
var q = GetQuery(r => subjects.Contains(r.Subject));
|
||||
return FromQuery(q);
|
||||
}
|
||||
|
||||
@ -210,11 +209,11 @@ namespace ASC.Files.Core.Data
|
||||
{
|
||||
var result = new List<FileShareRecord>();
|
||||
|
||||
var q = GetQuery(r => folders.Any(a => a == r.EntryId) && r.EntryType == FileEntryType.Folder);
|
||||
var q = GetQuery(r => folders.Contains(r.EntryId) && r.EntryType == FileEntryType.Folder);
|
||||
|
||||
if (files.Any())
|
||||
{
|
||||
q = q.Union(GetQuery(r => files.Any(q => q == r.EntryId) && r.EntryType == FileEntryType.File));
|
||||
q = q.Union(GetQuery(r => files.Contains(r.EntryId) && r.EntryType == FileEntryType.File));
|
||||
}
|
||||
|
||||
result.AddRange(FromQuery(q));
|
||||
@ -281,13 +280,13 @@ namespace ASC.Files.Core.Data
|
||||
{
|
||||
var q = Query(FilesDbContext.Security)
|
||||
.Join(FilesDbContext.Tree, r => r.EntryId, a => a.ParentId.ToString(), (security, tree) => new SecurityTreeRecord { DbFilesSecurity = security, DbFolderTree = tree })
|
||||
.Where(r => folders.Any(f => f == r.DbFolderTree.FolderId))
|
||||
.Where(r => r.DbFilesSecurity.EntryType == FileEntryType.Folder)
|
||||
.Where(r => folders.Contains(r.DbFolderTree.FolderId) &&
|
||||
r.DbFilesSecurity.EntryType == FileEntryType.Folder)
|
||||
.ToList();
|
||||
|
||||
if (0 < files.Count)
|
||||
{
|
||||
var q1 = GetQuery(r => files.Any(f => f == r.EntryId) && r.EntryType == FileEntryType.File)
|
||||
var q1 = GetQuery(r => files.Contains(r.EntryId) && r.EntryType == FileEntryType.File)
|
||||
.Select(r => new SecurityTreeRecord { DbFilesSecurity = r })
|
||||
.ToList();
|
||||
q = q.Union(q1).ToList();
|
||||
|
@ -97,8 +97,8 @@ namespace ASC.Files.Core.Data
|
||||
.Join(FilesDbContext.TagLink, r => r.Id, l => l.TagId, (tag, link) => new TagLinkData { Tag = tag, Link = link })
|
||||
.Where(r => r.Link.TenantId == r.Tag.TenantId)
|
||||
.Where(r => r.Tag.Flag == tagType)
|
||||
.Where(r => r.Link.EntryType == FileEntryType.File && filesId.Any(f => r.Link.EntryId == f)
|
||||
|| r.Link.EntryType == FileEntryType.Folder && foldersId.Any(f => r.Link.EntryId == f));
|
||||
.Where(r => r.Link.EntryType == FileEntryType.File && filesId.Contains(r.Link.EntryId)
|
||||
|| r.Link.EntryType == FileEntryType.Folder && foldersId.Contains(r.Link.EntryId));
|
||||
|
||||
if (subject != Guid.Empty)
|
||||
{
|
||||
@ -168,7 +168,7 @@ namespace ASC.Files.Core.Data
|
||||
.Join(FilesDbContext.TagLink, r => r.Id, l => l.TagId, (tag, link) => new TagLinkData { Tag = tag, Link = link })
|
||||
.Where(r => r.Link.TenantId == r.Tag.TenantId)
|
||||
.Where(r => r.Tag.Owner == Guid.Empty)
|
||||
.Where(r => names.Any(n => r.Tag.Name == n))
|
||||
.Where(r => names.Contains(r.Tag.Name))
|
||||
.Where(r => r.Tag.Flag == tagType);
|
||||
|
||||
return FromQuery(q);
|
||||
@ -271,7 +271,7 @@ namespace ASC.Files.Core.Data
|
||||
FilesDbContext.SaveChanges();
|
||||
|
||||
var tagsToRemove = Query(FilesDbContext.Tag)
|
||||
.Where(r => !Query(FilesDbContext.TagLink).Where(a => a.TagId == r.Id).Any());
|
||||
.Where(r => !Query(FilesDbContext.TagLink).Any(a => a.TagId == r.Id));
|
||||
|
||||
FilesDbContext.Tag.RemoveRange(tagsToRemove);
|
||||
FilesDbContext.SaveChanges();
|
||||
@ -470,7 +470,7 @@ namespace ASC.Files.Core.Data
|
||||
.Where(r => r.Tag.Flag == TagType.New)
|
||||
.Where(x => x.Link.EntryId != null)
|
||||
//.Where(r => tags.Any(t => t.TenantId == r.Link.TenantId && t.EntryId == r.Link.EntryId && t.EntryType == (int)r.Link.EntryType)); ;
|
||||
.Where(r => entryIds.Any(t => t == r.Link.EntryId) && entryTypes.Contains((int)r.Link.EntryType));
|
||||
.Where(r => entryIds.Contains(r.Link.EntryId) && entryTypes.Contains((int)r.Link.EntryType));
|
||||
|
||||
if (subject != Guid.Empty)
|
||||
{
|
||||
@ -514,24 +514,18 @@ namespace ASC.Files.Core.Data
|
||||
var shareQuery =
|
||||
new Func<IQueryable<TagLinkData>>(() => getBaseSqlQuery().Where(
|
||||
r => FilesDbContext.Security
|
||||
.Where(a => a.TenantId == TenantID)
|
||||
.Where(a => a.EntryId == r.Link.EntryId)
|
||||
.Where(a => a.EntryType == r.Link.EntryType)
|
||||
.Any()));
|
||||
.Any(a => a.TenantId == TenantID && a.EntryId == r.Link.EntryId && a.EntryType == r.Link.EntryType)));
|
||||
|
||||
var tmpShareFileTags =
|
||||
shareQuery()
|
||||
.Join(FilesDbContext.Files, r => Regex.IsMatch(r.Link.EntryId, "^[0-9]+$") ? Convert.ToInt32(r.Link.EntryId) : -1, f => f.Id, (tagLink, file) => new { tagLink, file })
|
||||
.Where(r => r.file.TenantId == TenantID)
|
||||
.Where(r => r.file.CreateBy != subject)
|
||||
.Where(r => r.tagLink.Link.EntryType == FileEntryType.File)
|
||||
.Where(r => r.file.TenantId == TenantID && r.file.CreateBy != subject && r.tagLink.Link.EntryType == FileEntryType.File)
|
||||
.Select(r => new
|
||||
{
|
||||
r.tagLink,
|
||||
root = FilesDbContext.Folders
|
||||
.Join(FilesDbContext.Tree, a => a.Id, b => b.ParentId, (folder, tree) => new { folder, tree })
|
||||
.Where(x => x.folder.TenantId == TenantID)
|
||||
.Where(x => x.tree.FolderId == r.file.FolderId)
|
||||
.Where(x => x.folder.TenantId == TenantID && x.tree.FolderId == r.file.FolderId)
|
||||
.OrderByDescending(r => r.tree.Level)
|
||||
.Select(r => r.folder)
|
||||
.Take(1)
|
||||
@ -546,9 +540,7 @@ namespace ASC.Files.Core.Data
|
||||
var tmpShareFolderTags =
|
||||
shareQuery()
|
||||
.Join(FilesDbContext.Folders, r => Regex.IsMatch(r.Link.EntryId, "^[0-9]+$") ? Convert.ToInt32(r.Link.EntryId) : -1, f => f.Id, (tagLink, folder) => new { tagLink, folder })
|
||||
.Where(r => r.folder.TenantId == TenantID)
|
||||
.Where(r => r.folder.CreateBy != subject)
|
||||
.Where(r => r.tagLink.Link.EntryType == FileEntryType.Folder)
|
||||
.Where(r => r.folder.TenantId == TenantID && r.folder.CreateBy != subject && r.tagLink.Link.EntryType == FileEntryType.Folder)
|
||||
.Select(r => new
|
||||
{
|
||||
r.tagLink,
|
||||
@ -571,15 +563,14 @@ namespace ASC.Files.Core.Data
|
||||
.Join(FilesDbContext.ThirdpartyIdMapping, r => r.Link.EntryId, r => r.HashId, (tagLink, mapping) => new { tagLink, mapping })
|
||||
.Where(r => r.mapping.TenantId == r.tagLink.Link.TenantId)
|
||||
.Join(FilesDbContext.ThirdpartyAccount, r => r.mapping.TenantId, r => r.TenantId, (tagLinkMapping, account) => new { tagLinkMapping.tagLink, tagLinkMapping.mapping, account })
|
||||
.Where(r => r.account.UserId != subject)
|
||||
.Where(r => r.account.FolderType == FolderType.USER)
|
||||
.Where(r =>
|
||||
r.mapping.Id.StartsWith("sbox-" + r.account.Id) ||
|
||||
.Where(r => r.account.UserId != subject &&
|
||||
r.account.FolderType == FolderType.USER &&
|
||||
(r.mapping.Id.StartsWith("sbox-" + r.account.Id) ||
|
||||
r.mapping.Id.StartsWith("box-" + r.account.Id) ||
|
||||
r.mapping.Id.StartsWith("dropbox-" + r.account.Id) ||
|
||||
r.mapping.Id.StartsWith("spoint-" + r.account.Id) ||
|
||||
r.mapping.Id.StartsWith("drive-" + r.account.Id) ||
|
||||
r.mapping.Id.StartsWith("onedrive-" + r.account.Id)
|
||||
r.mapping.Id.StartsWith("onedrive-" + r.account.Id))
|
||||
)
|
||||
.Select(r => r.tagLink);
|
||||
|
||||
@ -590,24 +581,22 @@ namespace ASC.Files.Core.Data
|
||||
var shareQuery =
|
||||
new Func<IQueryable<TagLinkData>>(() => getBaseSqlQuery().Where(
|
||||
r => FilesDbContext.Security
|
||||
.Where(a => a.TenantId == TenantID)
|
||||
.Where(a => a.EntryId == r.Link.EntryId)
|
||||
.Where(a => a.EntryType == r.Link.EntryType)
|
||||
.Any()));
|
||||
.Any(a => a.TenantId == TenantID &&
|
||||
a.EntryId == r.Link.EntryId &&
|
||||
a.EntryType == r.Link.EntryType)));
|
||||
|
||||
var tmpShareFileTags =
|
||||
shareQuery()
|
||||
.Join(FilesDbContext.Files, r => Regex.IsMatch(r.Link.EntryId, "^[0-9]+$") ? Convert.ToInt32(r.Link.EntryId) : -1, f => f.Id, (tagLink, file) => new { tagLink, file })
|
||||
.Where(r => r.file.TenantId == TenantID)
|
||||
.Where(r => r.file.CreateBy != subject)
|
||||
.Where(r => r.tagLink.Link.EntryType == FileEntryType.File)
|
||||
.Where(r => r.file.TenantId == TenantID &&
|
||||
r.file.CreateBy != subject &&
|
||||
r.tagLink.Link.EntryType == FileEntryType.File)
|
||||
.Select(r => new
|
||||
{
|
||||
r.tagLink,
|
||||
root = FilesDbContext.Folders
|
||||
.Join(FilesDbContext.Tree, a => a.Id, b => b.ParentId, (folder, tree) => new { folder, tree })
|
||||
.Where(x => x.folder.TenantId == TenantID)
|
||||
.Where(x => x.tree.FolderId == r.file.FolderId)
|
||||
.Where(x => x.folder.TenantId == TenantID && x.tree.FolderId == r.file.FolderId)
|
||||
.OrderByDescending(r => r.tree.Level)
|
||||
.Select(r => r.folder)
|
||||
.Take(1)
|
||||
@ -622,16 +611,15 @@ namespace ASC.Files.Core.Data
|
||||
var tmpShareFolderTags =
|
||||
shareQuery()
|
||||
.Join(FilesDbContext.Folders, r => Regex.IsMatch(r.Link.EntryId, "^[0-9]+$") ? Convert.ToInt32(r.Link.EntryId) : -1, f => f.Id, (tagLink, folder) => new { tagLink, folder })
|
||||
.Where(r => r.folder.TenantId == TenantID)
|
||||
.Where(r => r.folder.CreateBy != subject)
|
||||
.Where(r => r.tagLink.Link.EntryType == FileEntryType.Folder)
|
||||
.Where(r => r.folder.TenantId == TenantID
|
||||
&& r.folder.CreateBy != subject
|
||||
&& r.tagLink.Link.EntryType == FileEntryType.Folder)
|
||||
.Select(r => new
|
||||
{
|
||||
r.tagLink,
|
||||
root = FilesDbContext.Folders
|
||||
.Join(FilesDbContext.Tree, a => a.Id, b => b.ParentId, (folder, tree) => new { folder, tree })
|
||||
.Where(x => x.folder.TenantId == TenantID)
|
||||
.Where(x => x.tree.FolderId == r.folder.ParentId)
|
||||
.Where(x => x.folder.TenantId == TenantID && x.tree.FolderId == r.folder.ParentId)
|
||||
.OrderByDescending(r => r.tree.Level)
|
||||
.Select(r => r.folder)
|
||||
.Take(1)
|
||||
@ -646,9 +634,9 @@ namespace ASC.Files.Core.Data
|
||||
{
|
||||
var q = getBaseSqlQuery()
|
||||
.Join(FilesDbContext.BunchObjects, r => r.Link.TenantId, r => r.TenantId, (tagLink, bunch) => new { tagLink, bunch })
|
||||
.Where(r => r.bunch.LeftNode == r.tagLink.Link.EntryId)
|
||||
.Where(r => r.tagLink.Link.EntryType == FileEntryType.Folder)
|
||||
.Where(r => r.bunch.RightNode.StartsWith("projects/project/"))
|
||||
.Where(r => r.bunch.LeftNode == r.tagLink.Link.EntryId &&
|
||||
r.tagLink.Link.EntryType == FileEntryType.Folder &&
|
||||
r.bunch.RightNode.StartsWith("projects/project/"))
|
||||
.Select(r => r.tagLink);
|
||||
tempTags = tempTags.Concat(FromQuery(q));
|
||||
}
|
||||
@ -664,7 +652,7 @@ namespace ASC.Files.Core.Data
|
||||
var monitorFolderIdsInt = monitorFolderIds.Select(r => Convert.ToInt32(r)).ToList();
|
||||
var subFoldersSqlQuery =
|
||||
FilesDbContext.Tree
|
||||
.Where(r => monitorFolderIdsInt.Any(a => r.ParentId == a));
|
||||
.Where(r => monitorFolderIdsInt.Contains(r.ParentId));
|
||||
|
||||
if (!deepSearch)
|
||||
{
|
||||
@ -676,7 +664,7 @@ namespace ASC.Files.Core.Data
|
||||
var monitorFolderIdsStrings = monitorFolderIds.Select(r => r.ToString()).ToList();
|
||||
|
||||
var newTagsForFolders = getBaseSqlQuery()
|
||||
.Where(r => monitorFolderIdsStrings.Any(a => r.Link.EntryId == a))
|
||||
.Where(r => monitorFolderIdsStrings.Contains(r.Link.EntryId))
|
||||
.Where(r => r.Link.EntryType == FileEntryType.Folder);
|
||||
|
||||
result.AddRange(FromQuery(newTagsForFolders));
|
||||
@ -689,7 +677,7 @@ namespace ASC.Files.Core.Data
|
||||
getBaseSqlQuery()
|
||||
.Join(FilesDbContext.Files, r => Regex.IsMatch(r.Link.EntryId, "^[0-9]+$") ? Convert.ToInt32(r.Link.EntryId) : -1, r => r.Id, (tagLink, file) => new { tagLink, file })
|
||||
.Where(r => r.file.TenantId == r.tagLink.Link.TenantId)
|
||||
.Where(r => where.Any(a => r.file.FolderId.ToString() == a))
|
||||
.Where(r => where.Contains(r.file.FolderId.ToString()))
|
||||
.Where(r => r.tagLink.Link.EntryType == FileEntryType.File)
|
||||
.Select(r => r.tagLink);
|
||||
|
||||
@ -718,10 +706,10 @@ namespace ASC.Files.Core.Data
|
||||
|
||||
var newTagsForSBox = getBaseSqlQuery()
|
||||
.Join(FilesDbContext.ThirdpartyIdMapping, r => r.Link.EntryId, r => r.HashId, (tagLink, mapping) => new { tagLink, mapping })
|
||||
.Where(r => r.mapping.TenantId == TenantID)
|
||||
.Where(r => thirdpartyFolderIds.Any(a => r.mapping.Id == a))
|
||||
.Where(r => r.tagLink.Tag.Owner == subject)
|
||||
.Where(r => r.tagLink.Link.EntryType == FileEntryType.Folder)
|
||||
.Where(r => r.mapping.TenantId == TenantID &&
|
||||
thirdpartyFolderIds.Contains(r.mapping.Id) &&
|
||||
r.tagLink.Tag.Owner == subject &&
|
||||
r.tagLink.Link.EntryType == FileEntryType.Folder)
|
||||
.Select(r => r.tagLink);
|
||||
|
||||
result.AddRange(FromQuery(newTagsForSBox));
|
||||
|
Loading…
Reference in New Issue
Block a user