Files: rename ParentFolderID to FolderId.

Optimization
This commit is contained in:
pavelbannov 2020-11-30 16:47:26 +03:00
parent 2959acb262
commit 645749fbc7
33 changed files with 188 additions and 140 deletions

View File

@ -325,7 +325,7 @@ namespace ASC.Files.Core.Data
var newFolder = new DbFolder
{
Id = 0,
ParentId = folder.ParentFolderID,
ParentId = folder.FolderID,
Title = folder.Title,
CreateOn = TenantUtil.DateTimeToUtc(folder.CreateOn),
CreateBy = folder.CreateBy,
@ -353,7 +353,7 @@ namespace ASC.Files.Core.Data
//full path to root
var oldTree = FilesDbContext.Tree
.Where(r => r.FolderId == folder.ParentFolderID);
.Where(r => r.FolderId == folder.FolderID);
foreach (var o in oldTree)
{
@ -569,7 +569,7 @@ namespace ASC.Files.Core.Data
folder.FolderType = FolderType.DEFAULT;
var copy = ServiceProvider.GetService<Folder<int>>();
copy.ParentFolderID = toFolderId;
copy.FolderID = toFolderId;
copy.RootFolderId = toFolder.RootFolderId;
copy.RootFolderCreator = toFolder.RootFolderCreator;
copy.RootFolderType = toFolder.RootFolderType;
@ -912,7 +912,7 @@ namespace ASC.Files.Core.Data
if (createIfNotExists)
{
var folder = ServiceProvider.GetService<Folder<int>>();
folder.ParentFolderID = 0;
folder.FolderID = 0;
switch (bunch)
{
case my:
@ -1080,7 +1080,7 @@ namespace ASC.Files.Core.Data
if (r == null) return null;
var result = ServiceProvider.GetService<Folder<int>>();
result.ID = r.Folder.Id;
result.ParentFolderID = r.Folder.ParentId;
result.FolderID = r.Folder.ParentId;
result.Title = r.Folder.Title;
result.CreateOn = TenantUtil.DateTimeFromUtc(r.Folder.CreateOn);
result.CreateBy = r.Folder.CreateBy;
@ -1132,7 +1132,7 @@ namespace ASC.Files.Core.Data
break;
}
if (result.FolderType != FolderType.DEFAULT && 0.Equals(result.ParentFolderID)) result.RootFolderType = result.FolderType;
if (result.FolderType != FolderType.DEFAULT && 0.Equals(result.FolderID)) result.RootFolderType = result.FolderType;
if (result.FolderType != FolderType.DEFAULT && result.RootFolderCreator == default) result.RootFolderCreator = result.CreateBy;
if (result.FolderType != FolderType.DEFAULT && 0.Equals(result.RootFolderId)) result.RootFolderId = result.ID;

View File

@ -77,8 +77,6 @@ namespace ASC.Files.Core
FileConverter = fileConverter;
}
public T FolderID { get; set; }
public int Version { get; set; }
[JsonPropertyName("version_group")]
@ -242,19 +240,5 @@ namespace ASC.Files.Core
[NonSerialized]
private readonly FileConverter FileConverter;
private T _folderIdDisplay;
[JsonPropertyName("folder_id")]
public override T FolderIdDisplay
{
get
{
if (_folderIdDisplay != null) return _folderIdDisplay;
return FolderID;
}
set { _folderIdDisplay = value; }
}
}
}

View File

@ -129,13 +129,22 @@ namespace ASC.Files.Core
{
}
public T ID { get; set; }
public T ID { get; set; }
public T FolderID { get; set; }
private T _folderIdDisplay;
[JsonPropertyName("folder_id")]
public abstract T FolderIdDisplay
public T FolderIdDisplay
{
get;
set;
get
{
if (_folderIdDisplay != null) return _folderIdDisplay;
return FolderID;
}
set { _folderIdDisplay = value; }
}
public T RootFolderId { get; set; }

View File

@ -68,8 +68,6 @@ namespace ASC.Files.Core
{
public FolderType FolderType { get; set; }
public T ParentFolderID { get; set; }
public int TotalFiles { get; set; }
public int TotalSubFolders { get; set; }
@ -86,19 +84,6 @@ namespace ASC.Files.Core
set { NewForMe = Convert.ToInt32(value); }
}
private T _folderIdDisplay;
public override T FolderIdDisplay
{
get
{
if (_folderIdDisplay != null) return _folderIdDisplay;
return ParentFolderID;
}
set { _folderIdDisplay = value; }
}
public Folder(Global global)
: base(global)
{

View File

@ -300,8 +300,8 @@ namespace ASC.Web.Files.Services.WCFService
var prevVisible = breadCrumbs.ElementAtOrDefault(breadCrumbs.Count() - 2);
if (prevVisible != null)
{
if (prevVisible is Folder<string> f1) parent.ParentFolderID = (T)Convert.ChangeType(f1.ID, typeof(T));
if (prevVisible is Folder<int> f2) parent.ParentFolderID = (T)Convert.ChangeType(f2.ID, typeof(T));
if (prevVisible is Folder<string> f1) parent.FolderID = (T)Convert.ChangeType(f1.ID, typeof(T));
if (prevVisible is Folder<int> f2) parent.FolderID = (T)Convert.ChangeType(f2.ID, typeof(T));
}
parent.Shareable = FileSharing.CanSetAccess(parent)
@ -398,7 +398,7 @@ namespace ASC.Web.Files.Services.WCFService
{
var newFolder = ServiceProvider.GetService<Folder<T>>();
newFolder.Title = title;
newFolder.ParentFolderID = parent.ID;
newFolder.FolderID = parent.ID;
var folderId = folderDao.SaveFolder(newFolder);
var folder = folderDao.GetFolder(folderId);
@ -446,7 +446,7 @@ namespace ASC.Web.Files.Services.WCFService
if (folder.RootFolderType == FolderType.USER
&& !Equals(folder.RootFolderCreator, AuthContext.CurrentAccount.ID)
&& !FileSecurity.CanRead(folderDao.GetFolder(folder.ParentFolderID)))
&& !FileSecurity.CanRead(folderDao.GetFolder(folder.FolderID)))
{
folder.FolderIdDisplay = GlobalFolderHelper.GetFolderShare<T>();
}
@ -1556,7 +1556,7 @@ namespace ASC.Web.Files.Services.WCFService
var folderIdToMy = folderDao.GetFolderIDUser(true, userTo.ID);
var newFolder = ServiceProvider.GetService<Folder<T>>();
newFolder.Title = string.Format(CustomNamingPeople.Substitute<FilesCommonResource>("TitleDeletedUserFolder"), userFrom.DisplayUserName(false, DisplayUserSettingsHelper));
newFolder.ParentFolderID = folderIdToMy;
newFolder.FolderID = folderIdToMy;
var newFolderTo = folderDao.SaveFolder(newFolder);

View File

@ -110,6 +110,11 @@ namespace ASC.Files.Core.Security
public List<Tuple<FileEntry<T>, bool>> CanRead<T>(IEnumerable<FileEntry<T>> entry, Guid userId)
{
return Can(entry, userId, FilesSecurityActions.Read);
}
public List<Tuple<FileEntry<T>, bool>> CanRead<T>(IEnumerable<FileEntry<T>> entry)
{
return Can(entry, AuthContext.CurrentAccount.ID, FilesSecurityActions.Read);
}
public bool CanRead<T>(FileEntry<T> entry, Guid userId)

View File

@ -128,7 +128,7 @@ namespace ASC.Files.Thirdparty.Box
var folder = GetFolder();
folder.ID = MakeId(boxFolder.Id);
folder.ParentFolderID = isRoot ? null : MakeId(GetParentFolderId(boxFolder));
folder.FolderID = isRoot ? null : MakeId(GetParentFolderId(boxFolder));
folder.CreateOn = isRoot ? ProviderInfo.CreateOn : (boxFolder.CreatedAt ?? default);
folder.ModifiedOn = isRoot ? ProviderInfo.CreateOn : (boxFolder.ModifiedAt ?? default);

View File

@ -184,9 +184,9 @@ namespace ASC.Files.Thirdparty.Box
return RenameFolder(folder, folder.Title);
}
if (folder.ParentFolderID != null)
if (folder.FolderID != null)
{
var boxFolderId = MakeBoxId(folder.ParentFolderID);
var boxFolderId = MakeBoxId(folder.FolderID);
folder.Title = GetAvailableTitle(folder.Title, boxFolderId, IsExist);

View File

@ -111,7 +111,7 @@ namespace ASC.Files.Core.Thirdparty
var toFolder1 = ServiceProvider.GetService<Folder<TTo>>();
toFolder1.Title = fromFolder.Title;
toFolder1.ParentFolderID = toConverter(toRootFolderId);
toFolder1.FolderID = toConverter(toRootFolderId);
var toFolder = toFolderDao.GetFolder(fromFolder.Title, toConverter(toRootFolderId));
var toFolderId = toFolder != null

View File

@ -123,7 +123,7 @@ namespace ASC.Files.Thirdparty.Dropbox
var folder = GetFolder();
folder.ID = MakeId(dropboxFolder);
folder.ParentFolderID = isRoot ? null : MakeId(GetParentFolderPath(dropboxFolder));
folder.FolderID = isRoot ? null : MakeId(GetParentFolderPath(dropboxFolder));
folder.CreateOn = isRoot ? ProviderInfo.CreateOn : default;
folder.ModifiedOn = isRoot ? ProviderInfo.CreateOn : default;
folder.Title = MakeFolderTitle(dropboxFolder);

View File

@ -185,9 +185,9 @@ namespace ASC.Files.Thirdparty.Dropbox
return RenameFolder(folder, folder.Title);
}
if (folder.ParentFolderID != null)
if (folder.FolderID != null)
{
var dropboxFolderPath = MakeDropboxPath(folder.ParentFolderID);
var dropboxFolderPath = MakeDropboxPath(folder.FolderID);
folder.Title = GetAvailableTitle(folder.Title, dropboxFolderPath, IsExist);

View File

@ -137,7 +137,7 @@ namespace ASC.Files.Thirdparty.GoogleDrive
var folder = GetFolder();
folder.ID = MakeId(driveEntry);
folder.ParentFolderID = isRoot ? null : MakeId(GetParentDriveId(driveEntry));
folder.FolderID = isRoot ? null : MakeId(GetParentDriveId(driveEntry));
folder.CreateOn = isRoot ? ProviderInfo.CreateOn : (driveEntry.CreatedTime ?? default);
folder.ModifiedOn = isRoot ? ProviderInfo.CreateOn : (driveEntry.ModifiedTime ?? default);

View File

@ -181,9 +181,9 @@ namespace ASC.Files.Thirdparty.GoogleDrive
return RenameFolder(folder, folder.Title);
}
if (folder.ParentFolderID != null)
if (folder.FolderID != null)
{
var driveFolderId = MakeDriveId(folder.ParentFolderID);
var driveFolderId = MakeDriveId(folder.FolderID);
var driveFolder = ProviderInfo.Storage.InsertEntry(null, folder.Title, driveFolderId, true);

View File

@ -280,7 +280,7 @@ namespace ASC.Files.Thirdparty
InitFileEntryError(folder, entry);
folder.ParentFolderID = null;
folder.FolderID = null;
return folder;
}

View File

@ -123,7 +123,7 @@ namespace ASC.Files.Thirdparty.OneDrive
var folder = GetFolder();
folder.ID = MakeId(isRoot ? string.Empty : onedriveFolder.Id);
folder.ParentFolderID = isRoot ? null : MakeId(GetParentFolderId(onedriveFolder));
folder.FolderID = isRoot ? null : MakeId(GetParentFolderId(onedriveFolder));
folder.CreateOn = isRoot ? ProviderInfo.CreateOn : (onedriveFolder.CreatedDateTime.HasValue ? TenantUtil.DateTimeFromUtc(onedriveFolder.CreatedDateTime.Value.DateTime) : default);
folder.ModifiedOn = isRoot ? ProviderInfo.CreateOn : (onedriveFolder.LastModifiedDateTime.HasValue ? TenantUtil.DateTimeFromUtc(onedriveFolder.LastModifiedDateTime.Value.DateTime) : default);

View File

@ -181,9 +181,9 @@ namespace ASC.Files.Thirdparty.OneDrive
return RenameFolder(folder, folder.Title);
}
if (folder.ParentFolderID != null)
if (folder.FolderID != null)
{
var onedriveFolderId = MakeOneDriveId(folder.ParentFolderID);
var onedriveFolderId = MakeOneDriveId(folder.FolderID);
folder.Title = GetAvailableTitle(folder.Title, onedriveFolderId, IsExist);

View File

@ -156,14 +156,14 @@ filterType, subjectGroup, subjectID, searchText, searchSubfolders, checkShare);
folder.ID = folderId;
return newFolderId;
}
if (folder.ParentFolderID != null)
if (folder.FolderID != null)
{
var folderId = folder.ParentFolderID;
var folderId = folder.FolderID;
var selector = GetSelector(folderId);
folder.ParentFolderID = selector.ConvertId(folderId);
folder.FolderID = selector.ConvertId(folderId);
var folderDao = selector.GetFolderDao(folderId);
var newFolderId = folderDao.SaveFolder(folder);
folder.ParentFolderID = folderId;
folder.FolderID = folderId;
return newFolderId;
}
@ -277,7 +277,7 @@ filterType, subjectGroup, subjectID, searchText, searchSubfolders, checkShare);
var folderId = folder.ID;
var selector = GetSelector(folderId);
folder.ID = selector.ConvertId(folderId);
folder.ParentFolderID = selector.ConvertId(folder.ParentFolderID);
folder.FolderID = selector.ConvertId(folder.FolderID);
var folderDao = selector.GetFolderDao(folderId);
return folderDao.RenameFolder(folder, newTitle);
}

View File

@ -183,9 +183,9 @@ namespace ASC.Files.Thirdparty.SharePoint
return ProviderInfo.ToFolder(savedfolder).ID;
}
if (folder.ParentFolderID != null)
if (folder.FolderID != null)
{
var parentFolder = ProviderInfo.GetFolderById(folder.ParentFolderID);
var parentFolder = ProviderInfo.GetFolderById(folder.FolderID);
folder.Title = GetAvailableTitle(folder.Title, parentFolder, IsExist);

View File

@ -500,7 +500,7 @@ namespace ASC.Files.Thirdparty.SharePoint
if (folder is SharePointFolderErrorEntry errorFolder)
{
result.ID = MakeId(errorFolder.ID);
result.ParentFolderID = null;
result.FolderID = null;
result.CreateBy = Owner;
result.CreateOn = DateTime.UtcNow;
result.FolderType = FolderType.DEFAULT;
@ -523,7 +523,7 @@ namespace ASC.Files.Thirdparty.SharePoint
var isRoot = folder.ServerRelativeUrl == SpRootFolderId;
result.ID = MakeId(isRoot ? "" : folder.ServerRelativeUrl);
result.ParentFolderID = isRoot ? null : MakeId(GetParentFolderId(folder.ServerRelativeUrl));
result.FolderID = isRoot ? null : MakeId(GetParentFolderId(folder.ServerRelativeUrl));
result.CreateBy = Owner;
result.CreateOn = CreateOn;
result.FolderType = FolderType.DEFAULT;

View File

@ -281,7 +281,7 @@ namespace ASC.Files.Thirdparty.Sharpbox
var folder = GetFolder();
folder.ID = MakeId(fsEntry);
folder.ParentFolderID = isRoot ? null : MakeId(fsEntry.Parent);
folder.FolderID = isRoot ? null : MakeId(fsEntry.Parent);
folder.CreateOn = isRoot ? ProviderInfo.CreateOn : fsEntry.Modified;
folder.ModifiedOn = isRoot ? ProviderInfo.CreateOn : fsEntry.Modified;
folder.RootFolderId = MakeId(RootFolder());

View File

@ -186,9 +186,9 @@ namespace ASC.Files.Thirdparty.Sharpbox
var savedfolder = ProviderInfo.Storage.CreateFolder(MakePath(folder.ID));
return MakeId(savedfolder);
}
if (folder.ParentFolderID != null)
if (folder.FolderID != null)
{
var parentFolder = GetFolderById(folder.ParentFolderID);
var parentFolder = GetFolderById(folder.FolderID);
folder.Title = GetAvailableTitle(folder.Title, parentFolder, IsExist);
@ -390,7 +390,7 @@ namespace ASC.Files.Thirdparty.Sharpbox
}
else
{
var parentFolder = GetFolderById(folder.ParentFolderID);
var parentFolder = GetFolderById(folder.FolderID);
newTitle = GetAvailableTitle(newTitle, parentFolder, IsExist);
//rename folder

View File

@ -566,7 +566,7 @@ namespace ASC.Web.Files.Classes
{
var folder = ServiceProvider.GetService<Folder<T>>();
folder.Title = folderName;
folder.ParentFolderID = folderId;
folder.FolderID = folderId;
var subFolderId = folderDao.SaveFolder(folder);

View File

@ -199,7 +199,7 @@ namespace ASC.Api.Documents
{
var folderDao = DaoFactory.GetFolderDao<T>();
return folderDao.GetFolders(folders.ToArray())
.Select(FolderWrapperHelper.Get)
.Select(r => FolderWrapperHelper.Get(r))
.Cast<FileEntryWrapper>();
}
@ -207,7 +207,7 @@ namespace ASC.Api.Documents
{
var fileDao = DaoFactory.GetFileDao<T>();
return fileDao.GetFiles(files.ToArray())
.Select(FilesWrapperHelper.Get)
.Select(r => FilesWrapperHelper.Get(r))
.Cast<FileEntryWrapper>();
}
}

View File

@ -25,8 +25,10 @@
using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using ASC.Api.Core;
using ASC.Api.Utils;
using ASC.Common;
@ -171,47 +173,68 @@ namespace ASC.Api.Documents
FileUtility = fileUtility;
}
public FileWrapper<T> Get<T>(File<T> file)
public FileWrapper<T> Get<T>(File<T> file, List<Tuple<FileEntry<T>, bool>> folders = null)
{
var result = Get<FileWrapper<T>, T>(file);
var result = GetFileWrapper(file);
result.FolderId = file.FolderID;
if (file.RootFolderType == FolderType.USER
&& !Equals(file.RootFolderCreator, AuthContext.CurrentAccount.ID))
{
result.RootFolderType = FolderType.SHARE;
var folderDao = DaoFactory.GetFolderDao<T>();
var parentFolder = folderDao.GetFolder(file.FolderID);
if (!FileSecurity.CanRead(parentFolder))
{
result.FolderId = GlobalFolderHelper.GetFolderShare<T>();
var folderDao = DaoFactory.GetFolderDao<T>();
FileEntry<T> parentFolder;
if(folders != null)
{
var folderWithRight = folders.FirstOrDefault(f => f.Item1.ID.Equals(file.FolderID));
if (folderWithRight == null || !folderWithRight.Item2)
{
result.FolderId = GlobalFolderHelper.GetFolderShare<T>();
}
}
else
{
parentFolder = folderDao.GetFolder(file.FolderID);
if (!FileSecurity.CanRead(parentFolder))
{
result.FolderId = GlobalFolderHelper.GetFolderShare<T>();
}
}
}
}
result.FileExst = FileUtility.GetFileExtension(file.Title);
result.FileType = FileUtility.GetFileTypeByExtention(result.FileExst);
result.Version = file.Version;
result.VersionGroup = file.VersionGroup;
result.ContentLength = file.ContentLengthString;
result.FileStatus = file.FileStatus;
result.PureContentLength = file.ContentLength.NullIfDefault();
result.Comment = file.Comment;
return result;
}
private FileWrapper<T> GetFileWrapper<T>(File<T> file)
{
var result = Get<FileWrapper<T>, T>(file);
result.FileExst = FileUtility.GetFileExtension(file.Title);
result.FileType = FileUtility.GetFileTypeByExtention(result.FileExst);
result.Version = file.Version;
result.VersionGroup = file.VersionGroup;
result.ContentLength = file.ContentLengthString;
result.FileStatus = file.FileStatus;
result.PureContentLength = file.ContentLength.NullIfDefault();
result.Comment = file.Comment;
result.Encrypted = file.Encrypted.NullIfDefault();
result.Locked = file.Locked.NullIfDefault();
result.LockedBy = file.LockedBy;
try
{
result.ViewUrl = CommonLinkUtility.GetFullAbsolutePath(file.DownloadUrl);
result.WebUrl = CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.GetFileWebPreviewUrl(FileUtility, file.Title, file.ID));
}
catch (Exception)
{
//Don't catch anything here because of httpcontext
}
return result;
try
{
result.ViewUrl = CommonLinkUtility.GetFullAbsolutePath(file.DownloadUrl);
result.WebUrl = CommonLinkUtility.GetFullAbsolutePath(FilesLinkUtility.GetFileWebPreviewUrl(FileUtility, file.Title, file.ID));
}
catch (Exception)
{
//Don't catch anything here because of httpcontext
}
return result;
}
}
}

View File

@ -32,6 +32,7 @@ using System.Text.Json.Serialization;
using ASC.Common;
using ASC.Files.Core;
using ASC.Files.Core.Security;
using ASC.Web.Files.Services.WCFService;
namespace ASC.Api.Documents
@ -104,20 +105,29 @@ namespace ASC.Api.Documents
[Scope]
public class FolderContentWrapperHelper
{
{
private FileSecurity FileSecurity { get; }
private IDaoFactory DaoFactory { get; }
private FileWrapperHelper FileWrapperHelper { get; }
private FolderWrapperHelper FolderWrapperHelper { get; }
public FolderContentWrapperHelper(
public FolderContentWrapperHelper(
FileSecurity fileSecurity,
IDaoFactory daoFactory,
FileWrapperHelper fileWrapperHelper,
FolderWrapperHelper folderWrapperHelper)
{
{
FileSecurity = fileSecurity;
DaoFactory = daoFactory;
FileWrapperHelper = fileWrapperHelper;
FolderWrapperHelper = folderWrapperHelper;
}
public FolderContentWrapper<T> Get<T>(DataWrapper<T> folderItems, int startIndex)
{
{
var foldersIntWithRights = GetFoldersIntWithRights<int>();
var foldersStringWithRights = GetFoldersIntWithRights<string>();
var result = new FolderContentWrapper<T>
{
Files = folderItems.Entries
@ -127,11 +137,11 @@ namespace ASC.Api.Documents
FileEntryWrapper wrapper = null;
if (r is File<int> fol1)
{
wrapper = FileWrapperHelper.Get(fol1);
wrapper = FileWrapperHelper.Get(fol1, foldersIntWithRights);
}
if (r is File<string> fol2)
{
wrapper = FileWrapperHelper.Get(fol2);
wrapper = FileWrapperHelper.Get(fol2, foldersStringWithRights);
}
return wrapper;
@ -145,11 +155,11 @@ namespace ASC.Api.Documents
FileEntryWrapper wrapper = null;
if (r is Folder<int> fol1)
{
wrapper = FolderWrapperHelper.Get(fol1);
wrapper = FolderWrapperHelper.Get(fol1, foldersIntWithRights);
}
if (r is Folder<string> fol2)
{
wrapper = FolderWrapperHelper.Get(fol2);
wrapper = FolderWrapperHelper.Get(fol2, foldersStringWithRights);
}
return wrapper;
@ -164,7 +174,15 @@ namespace ASC.Api.Documents
result.Total = folderItems.Total;
result.New = folderItems.New;
return result;
return result;
List<Tuple<FileEntry<T1>, bool>> GetFoldersIntWithRights<T1>()
{
var folderDao = DaoFactory.GetFolderDao<T1>();
var folders = folderDao.GetFolders(folderItems.Entries.OfType<FileEntry<T1>>().Select(r => r.FolderID).ToArray());
return FileSecurity.CanRead(folders);
}
}
}

View File

@ -25,7 +25,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
using ASC.Api.Core;
using ASC.Api.Utils;
using ASC.Common;
@ -113,27 +115,49 @@ namespace ASC.Api.Documents
GlobalFolderHelper = globalFolderHelper;
}
public FolderWrapper<T> Get<T>(Folder<T> folder)
public FolderWrapper<T> Get<T>(Folder<T> folder, List<Tuple<FileEntry<T>, bool>> folders = null)
{
var result = Get<FolderWrapper<T>, T>(folder);
result.ParentId = folder.ParentFolderID;
var result = GetFolderWrapper(folder);
result.ParentId = folder.FolderID;
if (folder.RootFolderType == FolderType.USER
&& !Equals(folder.RootFolderCreator, AuthContext.CurrentAccount.ID))
{
result.RootFolderType = FolderType.SHARE;
var folderDao = DaoFactory.GetFolderDao<T>();
var parentFolder = folderDao.GetFolder(folder.ParentFolderID);
if (!FileSecurity.CanRead(parentFolder))
result.ParentId = GlobalFolderHelper.GetFolderShare<T>();
var folderDao = DaoFactory.GetFolderDao<T>();
FileEntry<T> parentFolder;
if (folders != null)
{
var folderWithRight = folders.FirstOrDefault(f => f.Item1.ID.Equals(folder.FolderID));
if (folderWithRight == null || !folderWithRight.Item2)
{
result.ParentId = GlobalFolderHelper.GetFolderShare<T>();
}
}
else
{
parentFolder = folderDao.GetFolder(folder.FolderID);
if (!FileSecurity.CanRead(parentFolder))
{
result.ParentId = GlobalFolderHelper.GetFolderShare<T>();
}
}
}
return result;
}
private FolderWrapper<T> GetFolderWrapper<T>(Folder<T> folder)
{
var result = Get<FolderWrapper<T>, T>(folder);
result.FilesCount = folder.TotalFiles;
result.FoldersCount = folder.TotalSubFolders;
result.IsShareable = folder.Shareable.NullIfDefault();
result.New = folder.NewForMe;
return result;
result.New = folder.NewForMe;
return result;
}
}
}

View File

@ -199,7 +199,7 @@ namespace ASC.Web.Files.Services.WCFService.FileOperations
{
Error = FilesCommonResource.ErrorMassage_SecurityException_MoveFolder;
}
else if (!Equals((folder.ParentFolderID ?? default).ToString(), toFolderId.ToString()) || _resolveType == FileConflictResolveType.Duplicate)
else if (!Equals((folder.FolderID ?? default).ToString(), toFolderId.ToString()) || _resolveType == FileConflictResolveType.Duplicate)
{
try
{

View File

@ -697,7 +697,7 @@ namespace ASC.Web.Files.Utils
//Fake folder. Don't send request to third party
var folder = ServiceProvider.GetService<Folder<string>>();
folder.ParentFolderID = parentFolderId;
folder.FolderID = parentFolderId;
folder.ID = providerInfo.RootFolderId;
folder.CreateBy = providerInfo.Owner;

View File

@ -569,7 +569,7 @@ namespace ASC.Web.Files.Utils
var parentId =
entry.FileEntryType == FileEntryType.File
? ((File<T>)entry).FolderID
: ((Folder<T>)entry).ParentFolderID;
: ((Folder<T>)entry).FolderID;
var parentEntry = entryTags.Keys.FirstOrDefault(entryCountTag => Equals(entryCountTag.ID, parentId));
if (parentEntry != null)

View File

@ -213,7 +213,7 @@ namespace ASC.Web.Files.Utils
{
var newFolder = ServiceProvider.GetService<Folder<T>>();
newFolder.Title = subFolderTitle;
newFolder.ParentFolderID = folderId;
newFolder.FolderID = folderId;
folderId = folderDao.SaveFolder(newFolder);

View File

@ -1799,7 +1799,7 @@ namespace ASC.Api.Documents
public IEnumerable<FolderWrapper<string>> GetCommonThirdPartyFolders()
{
var parent = FileStorageServiceInt.GetFolder(GlobalFolderHelper.FolderCommon);
return EntryManager.GetThirpartyFolders(parent).Select(FolderWrapperHelper.Get).ToList();
return EntryManager.GetThirpartyFolders(parent).Select(r => FolderWrapperHelper.Get(r)).ToList();
}
/// <summary>

View File

@ -489,13 +489,13 @@ namespace ASC.Files.Helpers
public IEnumerable<FileWrapper<T>> GetFileVersionInfo(T fileId)
{
var files = FileStorageService.GetFileHistory(fileId);
return files.Select(FileWrapperHelper.Get);
return files.Select(r=> FileWrapperHelper.Get(r));
}
public IEnumerable<FileWrapper<T>> ChangeHistory(T fileId, int version, bool continueVersion)
{
var history = FileStorageService.CompleteVersion(fileId, version, continueVersion).Value;
return history.Select(FileWrapperHelper.Get);
return history.Select(r=> FileWrapperHelper.Get(r));
}
public FileWrapper<T> LockFile(T fileId, bool lockFile)

View File

@ -87,10 +87,10 @@ namespace ASC.Files.Service.Core
.Where(f => f.Item1.RootFolderType != FolderType.TRASH && f.Item1.RootFolderType != FolderType.BUNCH)
.ToList();
var parentFolderIDs = folders.Select(r => r.Item1.ParentFolderID).ToArray();
var parentFolderIDs = folders.Select(r => r.Item1.FolderID).ToArray();
var parentFolders = FolderDao.GetFolders(parentFolderIDs, checkShare: false);
return folders.Select(f => new Tuple<Feed.Aggregator.Feed, object>(ToFeed(f, parentFolders.FirstOrDefault(r => r.ID.Equals(f.Item1.ParentFolderID))), f));
return folders.Select(f => new Tuple<Feed.Aggregator.Feed, object>(ToFeed(f, parentFolders.FirstOrDefault(r => r.ID.Equals(f.Item1.FolderID))), f));
}
private Feed.Aggregator.Feed ToFeed((Folder<int>, SmallShareRecord) tuple, Folder<int> rootFolder)
@ -109,12 +109,12 @@ namespace ASC.Files.Service.Core
Module = Name,
Title = folder.Title,
ExtraLocation = rootFolder.FolderType == FolderType.DEFAULT ? rootFolder.Title : string.Empty,
ExtraLocationUrl = rootFolder.FolderType == FolderType.DEFAULT ? FilesLinkUtility.GetFileRedirectPreviewUrl(folder.ParentFolderID, false) : string.Empty,
ExtraLocationUrl = rootFolder.FolderType == FolderType.DEFAULT ? FilesLinkUtility.GetFileRedirectPreviewUrl(folder.FolderID, false) : string.Empty,
Keywords = string.Format("{0}", folder.Title),
HasPreview = false,
CanComment = false,
Target = shareRecord.ShareTo,
GroupId = GetGroupId(sharedFolderItem, shareRecord.ShareBy, folder.ParentFolderID.ToString())
GroupId = GetGroupId(sharedFolderItem, shareRecord.ShareBy, folder.FolderID.ToString())
};
return feed;
@ -129,12 +129,12 @@ namespace ASC.Files.Service.Core
Module = Name,
Title = folder.Title,
ExtraLocation = rootFolder.FolderType == FolderType.DEFAULT ? rootFolder.Title : string.Empty,
ExtraLocationUrl = rootFolder.FolderType == FolderType.DEFAULT ? FilesLinkUtility.GetFileRedirectPreviewUrl(folder.ParentFolderID, false) : string.Empty,
ExtraLocationUrl = rootFolder.FolderType == FolderType.DEFAULT ? FilesLinkUtility.GetFileRedirectPreviewUrl(folder.FolderID, false) : string.Empty,
Keywords = string.Format("{0}", folder.Title),
HasPreview = false,
CanComment = false,
Target = null,
GroupId = GetGroupId(folderItem, folder.CreateBy, folder.ParentFolderID.ToString())
GroupId = GetGroupId(folderItem, folder.CreateBy, folder.FolderID.ToString())
};
}
}