update to load the data in scope.

This commit is contained in:
Ben
2024-03-19 09:19:56 +08:00
parent 055e54966d
commit 0cafef7ab4
14 changed files with 46 additions and 58 deletions

View File

@ -13,7 +13,6 @@ namespace Oqtane.Repository
public class FileRepository : IFileRepository
{
private readonly IDbContextFactory<TenantDBContext> _dbContextFactory;
private readonly TenantDBContext _queryContext;
private readonly IPermissionRepository _permissions;
private readonly IFolderRepository _folderRepository;
private readonly ITenantManager _tenants;
@ -21,7 +20,6 @@ namespace Oqtane.Repository
public FileRepository(IDbContextFactory<TenantDBContext> dbContextFactory, IPermissionRepository permissions, IFolderRepository folderRepository, ITenantManager tenants)
{
_dbContextFactory = dbContextFactory;
_queryContext = dbContextFactory.CreateDbContext();
_permissions = permissions;
_folderRepository = folderRepository;
_tenants = tenants;
@ -34,20 +32,21 @@ namespace Oqtane.Repository
public IEnumerable<File> GetFiles(int folderId, bool tracking)
{
using var db = _dbContextFactory.CreateDbContext();
var folder = _folderRepository.GetFolder(folderId, false);
IEnumerable<Permission> permissions = _permissions.GetPermissions(folder.SiteId, EntityNames.Folder, folderId).ToList();
var permissions = _permissions.GetPermissions(folder.SiteId, EntityNames.Folder, folderId).ToList();
IEnumerable<File> files;
if (tracking)
{
files = _queryContext.File.Where(item => item.FolderId == folderId).Include(item => item.Folder);
files = db.File.Where(item => item.FolderId == folderId).Include(item => item.Folder).ToList();
}
else
{
files = _queryContext.File.AsNoTracking().Where(item => item.FolderId == folderId).Include(item => item.Folder);
files = db.File.AsNoTracking().Where(item => item.FolderId == folderId).Include(item => item.Folder).ToList();
}
foreach (File file in files)
foreach (var file in files)
{
file.Folder.PermissionList = permissions.ToList();
var alias = _tenants.GetAlias();