Merge branch 'develop' into feature/thirdparty-integrations
This commit is contained in:
commit
d8c403f662
@ -83,8 +83,10 @@ namespace ASC.Files.Core
|
||||
{
|
||||
Logger.ErrorFormat("GetBreadCrumbs {0} with null", session.FolderId);
|
||||
return default;
|
||||
}
|
||||
return f.ID;
|
||||
}
|
||||
if (f is Folder<string> f1) return (T)Convert.ChangeType(f1.ID, typeof(T));
|
||||
if (f is Folder<int> f2) return (T)Convert.ChangeType(f2.ID, typeof(T));
|
||||
return (T)Convert.ChangeType(0, typeof(T));
|
||||
})
|
||||
: new List<T> { session.FolderId };
|
||||
|
||||
|
@ -227,7 +227,7 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
}
|
||||
}
|
||||
|
||||
public ItemList<T> GetPath(T folderId)
|
||||
public ItemList<object> GetPath(T folderId)
|
||||
{
|
||||
var folderDao = GetFolderDao();
|
||||
var folder = folderDao.GetFolder(folderId);
|
||||
@ -235,7 +235,12 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
ErrorIf(folder == null, FilesCommonResource.ErrorMassage_FolderNotFound);
|
||||
ErrorIf(!FileSecurity.CanRead(folder), FilesCommonResource.ErrorMassage_SecurityException_ViewFolder);
|
||||
|
||||
return new ItemList<T>(EntryManager.GetBreadCrumbs(folderId, folderDao).Select(f => f.ID));
|
||||
return new ItemList<object>(EntryManager.GetBreadCrumbs(folderId, folderDao).Select(f =>
|
||||
{
|
||||
if (f is Folder<string> f1) return (object)f1.ID;
|
||||
if (f is Folder<int> f2) return f2.ID;
|
||||
return 0;
|
||||
}));
|
||||
}
|
||||
|
||||
public DataWrapper<T> GetFolderItems(T parentId, int from, int count, FilterType filter, bool subjectGroup, string ssubject, string searchText, bool searchInContent, bool withSubfolders, OrderBy orderBy)
|
||||
@ -296,7 +301,8 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
var prevVisible = breadCrumbs.ElementAtOrDefault(breadCrumbs.Count() - 2);
|
||||
if (prevVisible != null)
|
||||
{
|
||||
parent.ParentFolderID = prevVisible.ID;
|
||||
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));
|
||||
}
|
||||
|
||||
parent.Shareable = FileSharing.CanSetAccess(parent)
|
||||
@ -309,7 +315,12 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
{
|
||||
Total = total,
|
||||
Entries = new ItemList<FileEntry>(entries.ToList()),
|
||||
FolderPathParts = new ItemList<T>(breadCrumbs.Select(f => f.ID)),
|
||||
FolderPathParts = new ItemList<object>(breadCrumbs.Select(f =>
|
||||
{
|
||||
if (f is Folder<string> f1) return (object)f1.ID;
|
||||
if (f is Folder<int> f2) return f2.ID;
|
||||
return 0;
|
||||
})),
|
||||
FolderInfo = parent,
|
||||
New = FileMarker.GetRootFoldersIdMarkedAsNew(parentId)
|
||||
};
|
||||
@ -579,27 +590,27 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
|
||||
if (fileWrapper.TemplateId.Equals(default(T)))
|
||||
{
|
||||
var culture = UserManager.GetUsers(AuthContext.CurrentAccount.ID).GetCulture();
|
||||
var storeTemplate = GetStoreTemplate();
|
||||
var culture = UserManager.GetUsers(AuthContext.CurrentAccount.ID).GetCulture();
|
||||
var storeTemplate = GetStoreTemplate();
|
||||
|
||||
var path = FileConstant.NewDocPath + culture + "/";
|
||||
if (!storeTemplate.IsDirectory(path))
|
||||
{
|
||||
path = FileConstant.NewDocPath + "default/";
|
||||
}
|
||||
var path = FileConstant.NewDocPath + culture + "/";
|
||||
if (!storeTemplate.IsDirectory(path))
|
||||
{
|
||||
path = FileConstant.NewDocPath + "default/";
|
||||
}
|
||||
|
||||
path += "new" + fileExt;
|
||||
path += "new" + fileExt;
|
||||
|
||||
try
|
||||
{
|
||||
using var stream = storeTemplate.GetReadStream("", path);
|
||||
file.ContentLength = stream.CanSeek ? stream.Length : storeTemplate.GetFileSize(path);
|
||||
file = fileDao.SaveFile(file, stream);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw GenerateException(e);
|
||||
}
|
||||
try
|
||||
{
|
||||
using var stream = storeTemplate.GetReadStream("", path);
|
||||
file.ContentLength = stream.CanSeek ? stream.Length : storeTemplate.GetFileSize(path);
|
||||
file = fileDao.SaveFile(file, stream);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
throw GenerateException(e);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2253,46 +2264,46 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
{
|
||||
if (services.TryAddScoped<FileStorageService<string>>())
|
||||
{
|
||||
services.TryAddScoped<FileStorageService<int>>();
|
||||
//services.TryAddScoped<IFileStorageService, FileStorageService>();
|
||||
return services
|
||||
.AddGlobalService()
|
||||
.AddGlobalStoreService()
|
||||
.AddGlobalFolderHelperService()
|
||||
.AddAuthContextService()
|
||||
.AddUserManagerService()
|
||||
.AddFilesLinkUtilityService()
|
||||
.AddBaseCommonLinkUtilityService()
|
||||
.AddCoreBaseSettingsService()
|
||||
.AddCustomNamingPeopleService()
|
||||
.AddDisplayUserSettingsService()
|
||||
.AddPathProviderService()
|
||||
.AddDaoFactoryService()
|
||||
.AddFileMarkerService()
|
||||
.AddFilesSettingsHelperService()
|
||||
.AddFileUtilityService()
|
||||
.AddFileSecurityService()
|
||||
.AddFilesMessageService()
|
||||
.AddFileShareLinkService()
|
||||
.AddDocumentServiceConnectorService()
|
||||
.AddEntryManagerService()
|
||||
.AddDocumentServiceHelperService()
|
||||
.AddThirdpartyConfigurationService()
|
||||
.AddUrlShortener()
|
||||
.AddDocuSignHelperService()
|
||||
.AddDocuSignTokenService()
|
||||
.AddFileConverterService()
|
||||
.AddNotifyClientService()
|
||||
.AddFileSharingService()
|
||||
.AddDocumentServiceTrackerHelperService()
|
||||
.AddSocketManagerService()
|
||||
.AddFileOperationsManagerHelperService()
|
||||
.AddFileSharingAceHelperService()
|
||||
.AddTenantManagerService();
|
||||
}
|
||||
services.TryAddScoped<FileStorageService<int>>();
|
||||
//services.TryAddScoped<IFileStorageService, FileStorageService>();
|
||||
return services
|
||||
.AddGlobalService()
|
||||
.AddGlobalStoreService()
|
||||
.AddGlobalFolderHelperService()
|
||||
.AddAuthContextService()
|
||||
.AddUserManagerService()
|
||||
.AddFilesLinkUtilityService()
|
||||
.AddBaseCommonLinkUtilityService()
|
||||
.AddCoreBaseSettingsService()
|
||||
.AddCustomNamingPeopleService()
|
||||
.AddDisplayUserSettingsService()
|
||||
.AddPathProviderService()
|
||||
.AddDaoFactoryService()
|
||||
.AddFileMarkerService()
|
||||
.AddFilesSettingsHelperService()
|
||||
.AddFileUtilityService()
|
||||
.AddFileSecurityService()
|
||||
.AddFilesMessageService()
|
||||
.AddFileShareLinkService()
|
||||
.AddDocumentServiceConnectorService()
|
||||
.AddEntryManagerService()
|
||||
.AddDocumentServiceHelperService()
|
||||
.AddThirdpartyConfigurationService()
|
||||
.AddUrlShortener()
|
||||
.AddDocuSignHelperService()
|
||||
.AddDocuSignTokenService()
|
||||
.AddFileConverterService()
|
||||
.AddNotifyClientService()
|
||||
.AddFileSharingService()
|
||||
.AddDocumentServiceTrackerHelperService()
|
||||
.AddSocketManagerService()
|
||||
.AddFileOperationsManagerHelperService()
|
||||
.AddFileSharingAceHelperService()
|
||||
.AddTenantManagerService();
|
||||
}
|
||||
|
||||
return services;
|
||||
}
|
||||
return services;
|
||||
}
|
||||
}
|
||||
|
||||
public class FileModel<T>
|
||||
|
@ -127,6 +127,7 @@ namespace ASC.Files.Thirdparty
|
||||
{
|
||||
if (services.TryAddScoped<IProviderDao, ProviderAccountDao>())
|
||||
{
|
||||
services.TryAddScoped<CachedProviderAccountDao>();
|
||||
services.TryAddSingleton<CachedProviderAccountDaoNotify>();
|
||||
|
||||
return services
|
||||
|
@ -529,7 +529,7 @@ namespace ASC.Files.Thirdparty.ProviderDao
|
||||
{
|
||||
if (services.TryAddScoped<ProviderFileDao>())
|
||||
{
|
||||
services.TryAddScoped<File<string>>();
|
||||
services.TryAddTransient<File<string>>();
|
||||
services.TryAddScoped<IFileDao<string>, ProviderFileDao>();
|
||||
|
||||
return services
|
||||
|
@ -140,7 +140,7 @@ namespace ASC.Web.Files.Configuration
|
||||
Additional = new Dictionary<string, object>
|
||||
{
|
||||
{ "Author", r.CreateByString.HtmlEncode() },
|
||||
{ "Path", FolderPathBuilder(EntryManager.GetBreadCrumbs(r.FolderID, folderDao)) },
|
||||
{ "Path", FolderPathBuilder<int>(EntryManager.GetBreadCrumbs(r.FolderID, folderDao)) },
|
||||
{ "Size", FileSizeComment.FilesSizeToString(r.ContentLength) }
|
||||
}
|
||||
}
|
||||
@ -157,7 +157,7 @@ namespace ASC.Web.Files.Configuration
|
||||
Additional = new Dictionary<string, object>
|
||||
{
|
||||
{ "Author", f.CreateByString.HtmlEncode() },
|
||||
{ "Path", FolderPathBuilder(EntryManager.GetBreadCrumbs(f.ID, folderDao)) },
|
||||
{ "Path", FolderPathBuilder<int>(EntryManager.GetBreadCrumbs(f.ID, folderDao)) },
|
||||
{ "IsFolder", true }
|
||||
}
|
||||
});
|
||||
@ -165,7 +165,7 @@ namespace ASC.Web.Files.Configuration
|
||||
return result.Concat(resultFolder).ToArray();
|
||||
}
|
||||
|
||||
private static string FolderPathBuilder<T>(IEnumerable<Folder<T>> folders)
|
||||
private static string FolderPathBuilder<T>(IEnumerable<FileEntry> folders)
|
||||
{
|
||||
var titles = folders.Select(f => f.Title).ToList();
|
||||
const string separator = " \\ ";
|
||||
|
@ -37,7 +37,7 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
public int Total { get; set; }
|
||||
|
||||
[JsonPropertyName("path_parts")]
|
||||
public ItemList<T> FolderPathParts { get; set; }
|
||||
public ItemList<object> FolderPathParts { get; set; }
|
||||
|
||||
[JsonPropertyName("folder_info")]
|
||||
public Folder<T> FolderInfo { get; set; }
|
||||
|
@ -112,18 +112,18 @@ namespace ASC.Web.Files.Utils
|
||||
AuthContext = authContext;
|
||||
}
|
||||
|
||||
public List<Folder<T>> GetBreadCrumbs<T>(T folderId)
|
||||
public List<FileEntry> GetBreadCrumbs<T>(T folderId)
|
||||
{
|
||||
var folderDao = DaoFactory.GetFolderDao<T>();
|
||||
return GetBreadCrumbs(folderId, folderDao);
|
||||
}
|
||||
|
||||
public List<Folder<T>> GetBreadCrumbs<T>(T folderId, IFolderDao<T> folderDao)
|
||||
public List<FileEntry> GetBreadCrumbs<T>(T folderId, IFolderDao<T> folderDao)
|
||||
{
|
||||
if (folderId == null) return new List<Folder<T>>();
|
||||
var breadCrumbs = FileSecurity.FilterRead(folderDao.GetParentFolders(folderId)).ToList();
|
||||
if (folderId == null) return new List<FileEntry>();
|
||||
var breadCrumbs = FileSecurity.FilterRead(folderDao.GetParentFolders(folderId)).Cast<FileEntry>().ToList();
|
||||
|
||||
var firstVisible = breadCrumbs.ElementAtOrDefault(0);
|
||||
var firstVisible = breadCrumbs.ElementAtOrDefault(0) as Folder<T>;
|
||||
|
||||
var rootId = 0;
|
||||
if (firstVisible == null)
|
||||
@ -160,10 +160,12 @@ namespace ASC.Web.Files.Utils
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
var folderDaoInt = DaoFactory.GetFolderDao<int>();
|
||||
|
||||
if (rootId != 0)
|
||||
{
|
||||
breadCrumbs.Insert(0, folderDao.GetFolder((T)Convert.ChangeType(rootId, typeof(T))));
|
||||
breadCrumbs.Insert(0, folderDaoInt.GetFolder(rootId));
|
||||
}
|
||||
|
||||
return breadCrumbs;
|
||||
@ -715,12 +717,12 @@ namespace ASC.Web.Files.Utils
|
||||
}
|
||||
|
||||
|
||||
public List<Folder<T>> GetBreadCrumbs<T>(T folderId)
|
||||
public List<FileEntry> GetBreadCrumbs<T>(T folderId)
|
||||
{
|
||||
return BreadCrumbsManager.GetBreadCrumbs(folderId);
|
||||
}
|
||||
|
||||
public List<Folder<T>> GetBreadCrumbs<T>(T folderId, IFolderDao<T> folderDao)
|
||||
public List<FileEntry> GetBreadCrumbs<T>(T folderId, IFolderDao<T> folderDao)
|
||||
{
|
||||
return BreadCrumbsManager.GetBreadCrumbs(folderId, folderDao);
|
||||
}
|
||||
|
@ -880,13 +880,13 @@ namespace ASC.Api.Documents
|
||||
/// <category>Folders</category>
|
||||
/// <returns>Parent folders</returns>
|
||||
[Read("folder/{folderId}/path", DisableFormat = true)]
|
||||
public IEnumerable<FolderWrapper<string>> GetFolderPath(string folderId)
|
||||
public IEnumerable<FileEntryWrapper> GetFolderPath(string folderId)
|
||||
{
|
||||
return FilesControllerHelperString.GetFolderPath(folderId);
|
||||
}
|
||||
|
||||
[Read("folder/{folderId:int}/path")]
|
||||
public IEnumerable<FolderWrapper<int>> GetFolderPath(int folderId)
|
||||
public IEnumerable<FileEntryWrapper> GetFolderPath(int folderId)
|
||||
{
|
||||
return FilesControllerHelperInt.GetFolderPath(folderId);
|
||||
}
|
||||
|
@ -340,9 +340,18 @@ namespace ASC.Files.Helpers
|
||||
return FolderWrapperHelper.Get(folder);
|
||||
}
|
||||
|
||||
public IEnumerable<FolderWrapper<T>> GetFolderPath(T folderId)
|
||||
public IEnumerable<FileEntryWrapper> GetFolderPath(T folderId)
|
||||
{
|
||||
return EntryManager.GetBreadCrumbs(folderId).Select(FolderWrapperHelper.Get);
|
||||
return EntryManager.GetBreadCrumbs(folderId).Select(r =>
|
||||
{
|
||||
if (r is Folder<string> f1)
|
||||
return FolderWrapperHelper.Get(f1);
|
||||
|
||||
if (r is Folder<int> f2)
|
||||
return FolderWrapperHelper.Get(f2);
|
||||
|
||||
return default(FileEntryWrapper);
|
||||
});
|
||||
}
|
||||
|
||||
public FileWrapper<T> GetFileInfo(T fileId, int version = -1)
|
||||
|
Loading…
Reference in New Issue
Block a user