Files: Resources, EF
This commit is contained in:
parent
45266f6647
commit
56d5d3f111
@ -79,7 +79,7 @@ namespace ASC.ElasticSearch
|
||||
{
|
||||
private static readonly object Locker = new object();
|
||||
|
||||
protected internal T Wrapper { get; set; }
|
||||
protected internal T Wrapper { get { return ServiceProvider.GetService<T>(); } }
|
||||
|
||||
public string IndexName { get { return Wrapper.IndexName; } }
|
||||
|
||||
@ -93,7 +93,6 @@ namespace ASC.ElasticSearch
|
||||
public WebstudioDbContext WebstudioDbContext { get; }
|
||||
|
||||
public BaseIndexer(
|
||||
FactoryIndexer factoryIndexer,
|
||||
Client client,
|
||||
IOptionsMonitor<ILog> log,
|
||||
DbContextManager<WebstudioDbContext> dbContextManager,
|
||||
@ -102,7 +101,6 @@ namespace ASC.ElasticSearch
|
||||
BaseIndexerHelper baseIndexerHelper,
|
||||
IServiceProvider serviceProvider)
|
||||
{
|
||||
Wrapper = factoryIndexer.Builder.Resolve<T>();
|
||||
Client = client;
|
||||
Log = log.CurrentValue;
|
||||
TenantManager = tenantManager;
|
||||
|
@ -33,4 +33,35 @@
|
||||
<ProjectReference Include="..\..\..\common\services\ASC.ElasticSearch\ASC.ElasticSearch.csproj" />
|
||||
<ProjectReference Include="..\..\..\web\ASC.Web.Core\ASC.Web.Core.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Update="Resources\FilesCommonResource.Designer.cs">
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>FilesCommonResource.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Update="Resources\FilesJSResource.Designer.cs">
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>FilesJSResource.resx</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Update="Resources\FilesUCResource.Designer.cs">
|
||||
<DesignTime>True</DesignTime>
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>FilesUCResource.resx</DependentUpon>
|
||||
</Compile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Update="Resources\FilesCommonResource.resx">
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>FilesCommonResource.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="Resources\FilesJSResource.resx">
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>FilesJSResource.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Update="Resources\FilesUCResource.resx">
|
||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||
<LastGenOutput>FilesUCResource.Designer.cs</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
</ItemGroup>
|
||||
</Project>
|
@ -34,10 +34,10 @@ using ASC.Core.Common.EF;
|
||||
using ASC.Core.Common.EF.Context;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core;
|
||||
using ASC.Web.Core.Users;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Studio.Utility;
|
||||
|
||||
namespace ASC.Web.Files
|
||||
|
@ -30,10 +30,10 @@ using System.Linq;
|
||||
using System.Reflection;
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core;
|
||||
using ASC.Web.Core.PublicResources;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Resources;
|
||||
|
||||
using SubscriptionManager = ASC.Web.Files.Classes.SubscriptionManager;
|
||||
|
||||
|
@ -28,9 +28,9 @@ using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
using ASC.Core;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Notify.Model;
|
||||
using ASC.Web.Core.Subscriptions;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.NotifyService;
|
||||
|
||||
namespace ASC.Web.Files.Classes
|
||||
|
@ -48,6 +48,7 @@ using ASC.FederatedLogin.LoginProviders;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Web.Api.Routing;
|
||||
using ASC.Web.Core.Files;
|
||||
@ -56,7 +57,6 @@ using ASC.Web.Core.Utility;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Core.Search;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.DocumentService;
|
||||
using ASC.Web.Files.Services.NotifyService;
|
||||
using ASC.Web.Files.Services.WCFService.FileOperations;
|
||||
@ -2090,8 +2090,8 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
.AddGlobalFolderHelperService()
|
||||
.AddAuthContextService()
|
||||
.AddUserManagerService()
|
||||
.AddFactoryIndexerService<FoldersWrapper>()
|
||||
.AddFactoryIndexerService<FilesWrapper>()
|
||||
.AddFoldersWrapperService()
|
||||
.AddFilesWrapperService()
|
||||
.AddFilesLinkUtilityService()
|
||||
.AddBaseCommonLinkUtilityService()
|
||||
.AddCoreBaseSettingsService()
|
||||
@ -2118,7 +2118,8 @@ namespace ASC.Web.Files.Services.WCFService
|
||||
.AddFileSharingService()
|
||||
.AddDocumentServiceTrackerHelperService()
|
||||
.AddSocketManagerService()
|
||||
.AddFileOperationsManagerHelperService();
|
||||
.AddFileOperationsManagerHelperService()
|
||||
.AddFileSharingAceHelperService();
|
||||
;
|
||||
}
|
||||
}
|
||||
|
@ -44,7 +44,6 @@ using ASC.Web.Studio.Utility;
|
||||
using Autofac;
|
||||
|
||||
using Microsoft.EntityFrameworkCore;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
namespace ASC.Files.Core.Data
|
||||
{
|
||||
@ -108,92 +107,6 @@ namespace ASC.Files.Core.Data
|
||||
.Where(where);
|
||||
}
|
||||
|
||||
protected List<File> FromQuery(IQueryable<DbFile> dbFiles, bool checkShared = true)
|
||||
{
|
||||
return dbFiles
|
||||
.Select(r => new { file = r, root = GetRootFolderType(r), shared = checkShared ? GetSharedQuery(FileEntryType.File, r) : true })
|
||||
.ToList()
|
||||
.Select(r =>
|
||||
{
|
||||
var file = ServiceProvider.GetService<File>();
|
||||
file.ID = r.file.Id;
|
||||
file.Title = r.file.Title;
|
||||
file.FolderID = r.file.FolderId;
|
||||
file.CreateOn = TenantUtil.DateTimeFromUtc(r.file.CreateOn);
|
||||
file.CreateBy = r.file.CreateBy;
|
||||
file.Version = r.file.Version;
|
||||
file.VersionGroup = r.file.VersionGroup;
|
||||
file.ContentLength = r.file.ContentLength;
|
||||
file.ModifiedOn = TenantUtil.DateTimeFromUtc(r.file.ModifiedOn);
|
||||
file.ModifiedBy = r.file.ModifiedBy;
|
||||
file.RootFolderType = r.root.FolderType;
|
||||
file.RootFolderCreator = r.root.CreateBy;
|
||||
file.RootFolderId = r.root.Id;
|
||||
file.Shared = r.shared;
|
||||
file.ConvertedType = r.file.ConvertedType;
|
||||
file.Comment = r.file.Comment;
|
||||
file.Encrypted = r.file.Encrypted;
|
||||
file.Forcesave = r.file.Forcesave;
|
||||
return file;
|
||||
}
|
||||
).ToList();
|
||||
}
|
||||
|
||||
protected DbFolder GetRootFolderType(DbFile file)
|
||||
{
|
||||
return FilesDbContext.Folders
|
||||
.Join(FilesDbContext.Tree, a => a.Id, b => b.ParentId, (folder, tree) => new { folder, tree })
|
||||
.Where(r => r.folder.TenantId == file.TenantId)
|
||||
.Where(r => r.tree.FolderId == file.FolderId)
|
||||
.OrderByDescending(r => r.tree.Level)
|
||||
.Select(r => r.folder)
|
||||
.FirstOrDefault();
|
||||
}
|
||||
protected DbFolder GetRootFolderType(DbFolder folder)
|
||||
{
|
||||
return FilesDbContext.Folders
|
||||
.Join(FilesDbContext.Tree, a => a.Id, b => b.ParentId, (folder, tree) => new { folder, tree })
|
||||
.Where(r => r.folder.TenantId == folder.TenantId)
|
||||
.Where(r => r.tree.FolderId == folder.ParentId)
|
||||
.OrderByDescending(r => r.tree.Level)
|
||||
.Select(r => r.folder)
|
||||
.FirstOrDefault();
|
||||
}
|
||||
|
||||
protected FolderType ParseRootFolderType(object v)
|
||||
{
|
||||
return v != null
|
||||
? (FolderType)Enum.Parse(typeof(FolderType), v.ToString().Substring(0, 1))
|
||||
: default;
|
||||
}
|
||||
|
||||
protected Guid ParseRootFolderCreator(object v)
|
||||
{
|
||||
return v != null ? new Guid(v.ToString().Substring(1, 36)) : default;
|
||||
}
|
||||
|
||||
protected int ParseRootFolderId(object v)
|
||||
{
|
||||
return v != null ? int.Parse(v.ToString().Substring(1 + 36)) : default;
|
||||
}
|
||||
|
||||
protected bool GetSharedQuery(FileEntryType type, DbFile dbFile)
|
||||
{
|
||||
return
|
||||
FilesDbContext.Security
|
||||
.Where(r => r.EntryType == type)
|
||||
.Where(r => r.EntryId == dbFile.Id.ToString())
|
||||
.Any();
|
||||
}
|
||||
protected bool GetSharedQuery(FileEntryType type, DbFolder dbFile)
|
||||
{
|
||||
return
|
||||
FilesDbContext.Security
|
||||
.Where(r => r.EntryType == type)
|
||||
.Where(r => r.EntryId == dbFile.Id.ToString())
|
||||
.Any();
|
||||
}
|
||||
|
||||
protected void GetRecalculateFilesCountUpdate(object folderId)
|
||||
{
|
||||
var folders = FilesDbContext.Folders
|
||||
|
@ -37,10 +37,10 @@ using ASC.Core.Common.Settings;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Files.Core.EF;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Core.Search;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.DocumentService;
|
||||
using ASC.Web.Files.Utils;
|
||||
using ASC.Web.Studio.Core;
|
||||
@ -109,13 +109,13 @@ namespace ASC.Files.Core.Data
|
||||
public File GetFile(object fileId)
|
||||
{
|
||||
var query = GetFileQuery(r => r.Id.ToString() == fileId.ToString() && r.CurrentVersion);
|
||||
return FromQuery(query).SingleOrDefault();
|
||||
return FromQueryWithShared(query).SingleOrDefault();
|
||||
}
|
||||
|
||||
public File GetFile(object fileId, int fileVersion)
|
||||
{
|
||||
var query = GetFileQuery(r => r.Id.ToString() == fileId.ToString() && r.Version == fileVersion);
|
||||
return FromQuery(query).SingleOrDefault();
|
||||
return FromQueryWithShared(query).SingleOrDefault();
|
||||
}
|
||||
|
||||
public File GetFile(object parentId, string title)
|
||||
@ -125,7 +125,7 @@ namespace ASC.Files.Core.Data
|
||||
var query = GetFileQuery(r => r.Title == title && r.CurrentVersion == true && r.FolderId.ToString() == parentId.ToString())
|
||||
.OrderBy(r => r.CreateOn);
|
||||
|
||||
return FromQuery(query).FirstOrDefault();
|
||||
return FromQueryWithShared(query).FirstOrDefault();
|
||||
}
|
||||
|
||||
public File GetFileStable(object fileId, int fileVersion = -1)
|
||||
@ -139,14 +139,14 @@ namespace ASC.Files.Core.Data
|
||||
|
||||
query = query.OrderByDescending(r => r.Version);
|
||||
|
||||
return FromQuery(query).SingleOrDefault();
|
||||
return FromQueryWithShared(query).SingleOrDefault();
|
||||
}
|
||||
|
||||
public List<File> GetFileHistory(object fileId)
|
||||
{
|
||||
var query = GetFileQuery(r => r.Id.ToString() == fileId.ToString()).OrderByDescending(r => r.Version);
|
||||
|
||||
return FromQuery(query);
|
||||
return FromQueryWithShared(query);
|
||||
}
|
||||
|
||||
public List<File> GetFiles(object[] fileIds)
|
||||
@ -155,7 +155,7 @@ namespace ASC.Files.Core.Data
|
||||
|
||||
var query = GetFileQuery(r => fileIds.Any(a => a.ToString() == r.Id.ToString()) && r.CurrentVersion);
|
||||
|
||||
return FromQuery(query);
|
||||
return FromQueryWithShared(query);
|
||||
}
|
||||
|
||||
public List<File> GetFilesForShare(object[] fileIds, FilterType filterType, bool subjectGroup, Guid subjectID, string searchText, bool searchInContent)
|
||||
@ -209,7 +209,7 @@ namespace ASC.Files.Core.Data
|
||||
break;
|
||||
}
|
||||
|
||||
return FromQuery(query, false);
|
||||
return FromQuery(query);
|
||||
}
|
||||
|
||||
public List<object> GetFiles(object parentId)
|
||||
@ -309,7 +309,7 @@ namespace ASC.Files.Core.Data
|
||||
break;
|
||||
}
|
||||
|
||||
return FromQuery(q);
|
||||
return FromQueryWithShared(q);
|
||||
}
|
||||
|
||||
public Stream GetFileStream(File file, long offset)
|
||||
@ -987,7 +987,7 @@ namespace ASC.Files.Core.Data
|
||||
break;
|
||||
}
|
||||
|
||||
return FromQuery(q);
|
||||
return FromQueryWithShared(q);
|
||||
}
|
||||
|
||||
public IEnumerable<File> Search(string searchText, bool bunch)
|
||||
@ -995,7 +995,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));
|
||||
return FromQuery(query)
|
||||
return FromQueryWithShared(query)
|
||||
.Where(
|
||||
f =>
|
||||
bunch
|
||||
@ -1006,7 +1006,7 @@ namespace ASC.Files.Core.Data
|
||||
else
|
||||
{
|
||||
var query = GetFileQuery(r => r.CurrentVersion && BuildSearch(r, searchText, SearhTypeEnum.Any));
|
||||
return FromQuery(query)
|
||||
return FromQueryWithShared(query)
|
||||
.Where(f =>
|
||||
bunch
|
||||
? f.RootFolderType == FolderType.BUNCH
|
||||
@ -1176,6 +1176,95 @@ namespace ASC.Files.Core.Data
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
protected List<File> FromQueryWithShared(IQueryable<DbFile> dbFiles)
|
||||
{
|
||||
return dbFiles
|
||||
.Select(r => new
|
||||
{
|
||||
file = 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.FolderId)
|
||||
.OrderByDescending(r => r.tree.Level)
|
||||
.Select(r => r.folder)
|
||||
.FirstOrDefault(),
|
||||
shared =
|
||||
FilesDbContext.Security
|
||||
.Where(x => x.EntryType == FileEntryType.File)
|
||||
.Where(x => x.EntryId == r.Id.ToString())
|
||||
.Any()
|
||||
})
|
||||
.ToList()
|
||||
.Select(r =>
|
||||
{
|
||||
var file = ServiceProvider.GetService<File>();
|
||||
file.ID = r.file.Id;
|
||||
file.Title = r.file.Title;
|
||||
file.FolderID = r.file.FolderId;
|
||||
file.CreateOn = TenantUtil.DateTimeFromUtc(r.file.CreateOn);
|
||||
file.CreateBy = r.file.CreateBy;
|
||||
file.Version = r.file.Version;
|
||||
file.VersionGroup = r.file.VersionGroup;
|
||||
file.ContentLength = r.file.ContentLength;
|
||||
file.ModifiedOn = TenantUtil.DateTimeFromUtc(r.file.ModifiedOn);
|
||||
file.ModifiedBy = r.file.ModifiedBy;
|
||||
file.RootFolderType = r.root.FolderType;
|
||||
file.RootFolderCreator = r.root.CreateBy;
|
||||
file.RootFolderId = r.root.Id;
|
||||
file.Shared = r.shared;
|
||||
file.ConvertedType = r.file.ConvertedType;
|
||||
file.Comment = r.file.Comment;
|
||||
file.Encrypted = r.file.Encrypted;
|
||||
file.Forcesave = r.file.Forcesave;
|
||||
return file;
|
||||
}
|
||||
).ToList();
|
||||
}
|
||||
|
||||
protected List<File> FromQuery(IQueryable<DbFile> dbFiles)
|
||||
{
|
||||
return dbFiles
|
||||
.Select(r => new
|
||||
{
|
||||
file = 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.FolderId)
|
||||
.OrderByDescending(r => r.tree.Level)
|
||||
.Select(r => r.folder)
|
||||
.FirstOrDefault(),
|
||||
shared = true
|
||||
})
|
||||
.ToList()
|
||||
.Select(r =>
|
||||
{
|
||||
var file = ServiceProvider.GetService<File>();
|
||||
file.ID = r.file.Id;
|
||||
file.Title = r.file.Title;
|
||||
file.FolderID = r.file.FolderId;
|
||||
file.CreateOn = TenantUtil.DateTimeFromUtc(r.file.CreateOn);
|
||||
file.CreateBy = r.file.CreateBy;
|
||||
file.Version = r.file.Version;
|
||||
file.VersionGroup = r.file.VersionGroup;
|
||||
file.ContentLength = r.file.ContentLength;
|
||||
file.ModifiedOn = TenantUtil.DateTimeFromUtc(r.file.ModifiedOn);
|
||||
file.ModifiedBy = r.file.ModifiedBy;
|
||||
file.RootFolderType = r.root.FolderType;
|
||||
file.RootFolderCreator = r.root.CreateBy;
|
||||
file.RootFolderId = r.root.Id;
|
||||
file.Shared = r.shared;
|
||||
file.ConvertedType = r.file.ConvertedType;
|
||||
file.Comment = r.file.Comment;
|
||||
file.Encrypted = r.file.Encrypted;
|
||||
file.Forcesave = r.file.Forcesave;
|
||||
return file;
|
||||
}
|
||||
).ToList();
|
||||
}
|
||||
}
|
||||
|
||||
public static class FileDaoExtention
|
||||
@ -1183,6 +1272,8 @@ namespace ASC.Files.Core.Data
|
||||
public static DIHelper AddFileDaoService(this DIHelper services)
|
||||
{
|
||||
services.TryAddScoped<IFileDao, FileDao>();
|
||||
services.TryAddTransient<File>();
|
||||
|
||||
return services
|
||||
.AddFilesDbContextService()
|
||||
.AddUserManagerService()
|
||||
|
@ -38,9 +38,9 @@ using ASC.Core.Common.Settings;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Files.Core.EF;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Core.Search;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Studio.Core;
|
||||
using ASC.Web.Studio.UserControls.Statistics;
|
||||
using ASC.Web.Studio.Utility;
|
||||
@ -99,7 +99,7 @@ namespace ASC.Files.Core.Data
|
||||
|
||||
public Folder GetFolder(object folderId)
|
||||
{
|
||||
var query = GetFolderQuery(r => r.Id == (int)folderId);
|
||||
var query = GetFolderQuery(r => r.Id.ToString() == folderId.ToString());
|
||||
return FromQuery(query).SingleOrDefault();
|
||||
}
|
||||
|
||||
@ -263,7 +263,7 @@ namespace ASC.Files.Core.Data
|
||||
}
|
||||
}
|
||||
|
||||
return FromQuery(q, checkShare);
|
||||
return checkShare ? FromQueryWithShared(q) : FromQuery(q);
|
||||
}
|
||||
|
||||
public List<Folder> GetParentFolders(object folderId)
|
||||
@ -857,10 +857,62 @@ namespace ASC.Files.Core.Data
|
||||
return q;
|
||||
}
|
||||
|
||||
protected List<Folder> FromQuery(IQueryable<DbFolder> dbFiles, bool checkShared = true)
|
||||
protected List<Folder> FromQueryWithShared(IQueryable<DbFolder> dbFiles)
|
||||
{
|
||||
return dbFiles
|
||||
.Select(r => new { file = r, root = GetRootFolderType(r), shared = checkShared ? GetSharedQuery(FileEntryType.Folder, r) : true })
|
||||
.Select(r => new
|
||||
{
|
||||
file = 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)
|
||||
.OrderByDescending(r => r.tree.Level)
|
||||
.Select(r => r.folder)
|
||||
.FirstOrDefault(),
|
||||
shared =
|
||||
FilesDbContext.Security
|
||||
.Where(r => r.EntryType == FileEntryType.Folder)
|
||||
.Where(x => x.EntryId == r.Id.ToString())
|
||||
.Any()
|
||||
})
|
||||
.ToList()
|
||||
.Select(r =>
|
||||
{
|
||||
var result = ServiceProvider.GetService<Folder>();
|
||||
result.ID = r.file.Id;
|
||||
result.ParentFolderID = r.file.ParentId;
|
||||
result.Title = r.file.Title;
|
||||
result.CreateOn = TenantUtil.DateTimeFromUtc(r.file.CreateOn);
|
||||
result.CreateBy = r.file.CreateBy;
|
||||
result.ModifiedOn = TenantUtil.DateTimeFromUtc(r.file.ModifiedOn);
|
||||
result.ModifiedBy = r.file.ModifiedBy;
|
||||
result.FolderType = r.file.FolderType;
|
||||
result.TotalSubFolders = r.file.FoldersCount;
|
||||
result.TotalFiles = r.file.FilesCount;
|
||||
result.RootFolderType = r.root.FolderType;
|
||||
result.RootFolderCreator = r.root.CreateBy;
|
||||
result.RootFolderId = r.root.Id;
|
||||
result.Shared = r.shared;
|
||||
return result;
|
||||
}).ToList();
|
||||
}
|
||||
|
||||
protected List<Folder> FromQuery(IQueryable<DbFolder> dbFiles)
|
||||
{
|
||||
return dbFiles
|
||||
.Select(r => new
|
||||
{
|
||||
file = 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)
|
||||
.OrderByDescending(x => x.tree.Level)
|
||||
.Select(x => x.folder)
|
||||
.FirstOrDefault(),
|
||||
shared = true
|
||||
})
|
||||
.ToList()
|
||||
.Select(r =>
|
||||
{
|
||||
@ -956,6 +1008,7 @@ namespace ASC.Files.Core.Data
|
||||
public static DIHelper AddFolderDaoService(this DIHelper services)
|
||||
{
|
||||
services.TryAddScoped<IFolderDao, FolderDao>();
|
||||
services.TryAddTransient<Folder>();
|
||||
return services
|
||||
.AddFactoryIndexerService<FoldersWrapper>()
|
||||
.AddTenantManagerService()
|
||||
|
@ -453,7 +453,17 @@ namespace ASC.Files.Core.Data
|
||||
.Where(r => r.file.TenantId == r.tagLink.Link.TenantId)
|
||||
.Where(r => r.file.CreateBy != subject)
|
||||
.Where(r => r.tagLink.Link.EntryType == FileEntryType.File)
|
||||
.Select(r => new { r.tagLink, root = GetRootFolderType(r.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 == r.file.TenantId)
|
||||
.Where(x => x.tree.FolderId == r.file.FolderId)
|
||||
.OrderByDescending(r => r.tree.Level)
|
||||
.Select(r => r.folder)
|
||||
.FirstOrDefault()
|
||||
})
|
||||
.Where(r => r.root.FolderType == FolderType.USER)
|
||||
.Select(r => r.tagLink);
|
||||
|
||||
@ -466,7 +476,17 @@ namespace ASC.Files.Core.Data
|
||||
.Where(r => r.folder.TenantId == r.tagLink.Link.TenantId)
|
||||
.Where(r => r.folder.CreateBy != subject)
|
||||
.Where(r => r.tagLink.Link.EntryType == FileEntryType.Folder)
|
||||
.Select(r => new { r.tagLink, root = GetRootFolderType(r.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 == r.folder.TenantId)
|
||||
.Where(x => x.tree.FolderId == r.folder.ParentId)
|
||||
.OrderByDescending(r => r.tree.Level)
|
||||
.Select(r => r.folder)
|
||||
.FirstOrDefault()
|
||||
})
|
||||
.Where(r => r.root.FolderType == FolderType.USER)
|
||||
.Select(r => r.tagLink);
|
||||
|
||||
|
@ -34,8 +34,8 @@ using ASC.Common.Logging;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core.Users;
|
||||
using ASC.Web.Files.Resources;
|
||||
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
|
@ -29,12 +29,14 @@ using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
||||
using ASC.Common;
|
||||
using ASC.Core;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.ElasticSearch.Core;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Resources;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
@ -152,5 +154,18 @@ namespace ASC.Web.Files.Core.Search
|
||||
public override DateTime LastModifiedOn { get; set; }
|
||||
|
||||
protected override string Table { get { return "files_folder_tree"; } }
|
||||
}
|
||||
}
|
||||
|
||||
public static class FilesWrapperExtention
|
||||
{
|
||||
public static DIHelper AddFilesWrapperService(this DIHelper services)
|
||||
{
|
||||
services.TryAddTransient<FilesWrapper>();
|
||||
return services
|
||||
.AddTenantManagerService()
|
||||
.AddFileUtilityService()
|
||||
.AddDaoFactoryService()
|
||||
.AddFactoryIndexerService<FilesWrapper>();
|
||||
}
|
||||
}
|
||||
}
|
@ -26,6 +26,7 @@
|
||||
|
||||
using System;
|
||||
|
||||
using ASC.Common;
|
||||
using ASC.Core;
|
||||
using ASC.ElasticSearch;
|
||||
using ASC.Files.Core;
|
||||
@ -55,5 +56,14 @@ namespace ASC.Web.Files.Core.Search
|
||||
TenantId = tenantManager.GetCurrentTenant().TenantId
|
||||
};
|
||||
}
|
||||
}
|
||||
public static class FoldersWrapperExtention
|
||||
{
|
||||
public static DIHelper AddFoldersWrapperService(this DIHelper services)
|
||||
{
|
||||
services.TryAddTransient<FoldersWrapper>();
|
||||
return services
|
||||
.AddFactoryIndexerService<FoldersWrapper>();
|
||||
}
|
||||
}
|
||||
}
|
@ -42,12 +42,12 @@ using ASC.FederatedLogin.LoginProviders;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Core.Users;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.HttpHandlers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.WCFService;
|
||||
using ASC.Web.Files.ThirdPartyApp;
|
||||
using ASC.Web.Files.Utils;
|
||||
|
@ -40,15 +40,14 @@ using ASC.Data.Storage;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core;
|
||||
using ASC.Web.Core.Users;
|
||||
using ASC.Web.Core.WhiteLabel;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Utils;
|
||||
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.DependencyInjection.Extensions;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
||||
using Constants = ASC.Core.Configuration.Constants;
|
||||
|
@ -35,10 +35,10 @@ using ASC.Common.Web;
|
||||
using ASC.Core.Common;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Security.Cryptography;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Core.Utility.Skins;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Studio.Utility;
|
||||
|
||||
using File = ASC.Files.Core.File;
|
||||
|
@ -38,11 +38,11 @@ using ASC.Common.Logging;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Security.Cryptography;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Utils;
|
||||
using ASC.Web.Studio.Core;
|
||||
|
||||
|
@ -40,6 +40,7 @@ using ASC.Core;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Security.Cryptography;
|
||||
using ASC.Web.Core;
|
||||
@ -47,7 +48,6 @@ using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Core;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.DocumentService;
|
||||
using ASC.Web.Files.Services.FFmpegService;
|
||||
using ASC.Web.Files.Utils;
|
||||
|
@ -30,12 +30,12 @@ using System.Linq;
|
||||
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Core.ModuleManagement.Common;
|
||||
using ASC.Web.Core.Utility.Skins;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Utils;
|
||||
using ASC.Web.Studio.Core;
|
||||
|
||||
|
@ -33,7 +33,7 @@ using System.Web;
|
||||
using ASC.Common.Logging;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Common;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Files.ThirdPartyApp;
|
||||
using ASC.Web.Studio.Utility;
|
||||
|
||||
|
@ -35,10 +35,10 @@ using ASC.Common;
|
||||
using ASC.Common.Logging;
|
||||
using ASC.Common.Web;
|
||||
using ASC.Core;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.NotifyService;
|
||||
using ASC.Web.Studio.Utility;
|
||||
|
||||
|
@ -8,7 +8,7 @@
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ASC.Web.Files.Resources {
|
||||
namespace ASC.Files.Resources {
|
||||
using System;
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ namespace ASC.Web.Files.Resources {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
public class FilesCommonResource {
|
||||
@ -39,7 +39,7 @@ namespace ASC.Web.Files.Resources {
|
||||
public static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ASC.Web.Files.Resources.FilesCommonResource", typeof(FilesCommonResource).Assembly);
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ASC.Files.Resources.FilesCommonResource", typeof(FilesCommonResource).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
|
@ -8,7 +8,7 @@
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ASC.Web.Files.Resources {
|
||||
namespace ASC.Files.Resources {
|
||||
using System;
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ namespace ASC.Web.Files.Resources {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
public class FilesJSResource {
|
||||
@ -39,7 +39,7 @@ namespace ASC.Web.Files.Resources {
|
||||
public static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ASC.Web.Files.Resources.FilesJSResource", typeof(FilesJSResource).Assembly);
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ASC.Files.Resources.FilesJSResource", typeof(FilesJSResource).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
|
@ -8,7 +8,7 @@
|
||||
// </auto-generated>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace ASC.Web.Files.Resources {
|
||||
namespace ASC.Files.Resources {
|
||||
using System;
|
||||
|
||||
|
||||
@ -19,7 +19,7 @@ namespace ASC.Web.Files.Resources {
|
||||
// class via a tool like ResGen or Visual Studio.
|
||||
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||
// with the /str option, or rebuild your VS project.
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
|
||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||
public class FilesUCResource {
|
||||
@ -39,7 +39,7 @@ namespace ASC.Web.Files.Resources {
|
||||
public static global::System.Resources.ResourceManager ResourceManager {
|
||||
get {
|
||||
if (object.ReferenceEquals(resourceMan, null)) {
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ASC.Web.Files.Resources.FilesUCResource", typeof(FilesUCResource).Assembly);
|
||||
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ASC.Files.Resources.FilesUCResource", typeof(FilesUCResource).Assembly);
|
||||
resourceMan = temp;
|
||||
}
|
||||
return resourceMan;
|
||||
|
@ -44,13 +44,13 @@ using ASC.FederatedLogin.LoginProviders;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Core.Users;
|
||||
using ASC.Web.Core.Utility.Skins;
|
||||
using ASC.Web.Core.WhiteLabel;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.WCFService;
|
||||
using ASC.Web.Files.ThirdPartyApp;
|
||||
using ASC.Web.Files.Utils;
|
||||
|
@ -36,9 +36,9 @@ using ASC.Common.Logging;
|
||||
using ASC.Core;
|
||||
using ASC.Core.Common;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Studio.Utility;
|
||||
|
||||
using Microsoft.Extensions.Options;
|
||||
|
@ -36,10 +36,10 @@ using ASC.Core.Users;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Security.Cryptography;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Utils;
|
||||
using ASC.Web.Studio.Core;
|
||||
|
||||
|
@ -44,6 +44,7 @@ using ASC.Core.Common;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Security.Cryptography;
|
||||
using ASC.Web.Core.Files;
|
||||
@ -52,7 +53,6 @@ using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Core;
|
||||
using ASC.Web.Files.Core.Entries;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.NotifyService;
|
||||
using ASC.Web.Files.ThirdPartyApp;
|
||||
using ASC.Web.Files.Utils;
|
||||
|
@ -34,10 +34,10 @@ using ASC.Core.Common;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Notify.Patterns;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Resources;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
|
@ -32,7 +32,7 @@ using System.Net;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
using ASC.Common.Logging;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Files.Resources;
|
||||
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.Filters;
|
||||
|
@ -30,9 +30,9 @@ using System.Linq;
|
||||
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Utils;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
@ -35,11 +35,11 @@ using ASC.Common.Security.Authentication;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Data.Storage;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Utils;
|
||||
using ASC.Web.Studio.Core;
|
||||
|
||||
|
@ -31,11 +31,11 @@ using System.Linq;
|
||||
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Utils;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
@ -41,7 +41,7 @@ using ASC.Core;
|
||||
using ASC.Core.Tenants;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Files.Resources;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
using Microsoft.Extensions.Options;
|
||||
|
@ -32,7 +32,7 @@ using System.Linq;
|
||||
using ASC.Common;
|
||||
using ASC.Common.Threading;
|
||||
using ASC.Core;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Files.Resources;
|
||||
|
||||
namespace ASC.Web.Files.Services.WCFService.FileOperations
|
||||
{
|
||||
|
@ -26,9 +26,10 @@
|
||||
|
||||
using System;
|
||||
using System.Runtime.Serialization;
|
||||
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Files.Resources;
|
||||
|
||||
namespace ASC.Web.Files.Services.WCFService
|
||||
{
|
||||
|
@ -46,6 +46,7 @@ using ASC.Core.Users;
|
||||
using ASC.FederatedLogin;
|
||||
using ASC.FederatedLogin.Helpers;
|
||||
using ASC.FederatedLogin.LoginProviders;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Security.Cryptography;
|
||||
using ASC.Web.Core;
|
||||
@ -54,7 +55,6 @@ using ASC.Web.Core.Users;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Core;
|
||||
using ASC.Web.Files.HttpHandlers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.DocumentService;
|
||||
using ASC.Web.Studio.Core;
|
||||
using ASC.Web.Studio.Utility;
|
||||
|
@ -48,6 +48,7 @@ using ASC.FederatedLogin.Helpers;
|
||||
using ASC.FederatedLogin.LoginProviders;
|
||||
using ASC.FederatedLogin.Profile;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Security.Cryptography;
|
||||
using ASC.Web.Core;
|
||||
@ -56,7 +57,6 @@ using ASC.Web.Core.Users;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Core;
|
||||
using ASC.Web.Files.HttpHandlers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.DocumentService;
|
||||
using ASC.Web.Studio.Core;
|
||||
using ASC.Web.Studio.Utility;
|
||||
|
@ -41,12 +41,12 @@ using ASC.Core.Users;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Api;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Core;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.DocumentService;
|
||||
using ASC.Web.Files.ThirdPartyApp;
|
||||
|
||||
|
@ -43,12 +43,12 @@ using ASC.Core;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Core;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.DocumentService;
|
||||
using ASC.Web.Files.Services.WCFService.FileOperations;
|
||||
using ASC.Web.Studio.Core;
|
||||
|
@ -37,8 +37,8 @@ using ASC.Core.Users;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Resources;
|
||||
|
||||
using Microsoft.Extensions.DependencyInjection;
|
||||
|
||||
|
@ -36,10 +36,10 @@ using ASC.Core.Users;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Data;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Core.Users;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Files.Services.DocumentService;
|
||||
using ASC.Web.Files.Services.NotifyService;
|
||||
using ASC.Web.Files.Services.WCFService;
|
||||
|
@ -35,11 +35,11 @@ using ASC.Core;
|
||||
using ASC.Core.Users;
|
||||
using ASC.Files.Core;
|
||||
using ASC.Files.Core.Security;
|
||||
using ASC.Files.Resources;
|
||||
using ASC.MessagingSystem;
|
||||
using ASC.Web.Core.Files;
|
||||
using ASC.Web.Files.Classes;
|
||||
using ASC.Web.Files.Helpers;
|
||||
using ASC.Web.Files.Resources;
|
||||
using ASC.Web.Studio.Core;
|
||||
using ASC.Web.Studio.UserControls.Statistics;
|
||||
using ASC.Web.Studio.Utility;
|
||||
|
Loading…
Reference in New Issue
Block a user