Merge branch 'bugfix/restoring-portal' of github.com:ONLYOFFICE/AppServer into bugfix/restoring-portal

This commit is contained in:
Tatiana Lopaeva 2023-01-25 11:09:06 +03:00
commit 2a4c1421e2
44 changed files with 955 additions and 840 deletions

View File

@ -74,7 +74,7 @@ public class RegisterInstanceWorkerService<T> : BackgroundService where T : IHos
{ {
try try
{ {
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var registerInstanceService = scope.ServiceProvider.GetService<IRegisterInstanceManager<T>>(); var registerInstanceService = scope.ServiceProvider.GetService<IRegisterInstanceManager<T>>();
@ -96,7 +96,7 @@ public class RegisterInstanceWorkerService<T> : BackgroundService where T : IHos
{ {
try try
{ {
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var registerInstanceService = scope.ServiceProvider.GetService<IRegisterInstanceManager<T>>(); var registerInstanceService = scope.ServiceProvider.GetService<IRegisterInstanceManager<T>>();

View File

@ -48,7 +48,7 @@ public class EmailSenderSink : Sink
var responce = new SendResponse(message, _senderName, default(SendResult)); var responce = new SendResponse(message, _senderName, default(SendResult));
try try
{ {
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var m = scope.ServiceProvider.GetRequiredService<EmailSenderSinkMessageCreator>().CreateNotifyMessage(message, _senderName); var m = scope.ServiceProvider.GetRequiredService<EmailSenderSinkMessageCreator>().CreateNotifyMessage(message, _senderName);
var result = await _sender.Send(m); var result = await _sender.Send(m);

View File

@ -194,7 +194,7 @@ public class NotifyEngine : INotifyEngine, IDisposable
} }
if (request != null) if (request != null)
{ {
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
foreach (var action in Actions) foreach (var action in Actions)
{ {
((INotifyEngineAction)scope.ServiceProvider.GetRequiredService(action)).AfterTransferRequest(request); ((INotifyEngineAction)scope.ServiceProvider.GetRequiredService(action)).AfterTransferRequest(request);

View File

@ -44,7 +44,7 @@ class JabberSenderSink : Sink
try try
{ {
var result = SendResult.OK; var result = SendResult.OK;
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var m = scope.ServiceProvider.GetRequiredService<JabberSenderSinkMessageCreator>().CreateNotifyMessage(message, _senderName); var m = scope.ServiceProvider.GetRequiredService<JabberSenderSinkMessageCreator>().CreateNotifyMessage(message, _senderName);
if (string.IsNullOrEmpty(m.Reciever)) if (string.IsNullOrEmpty(m.Reciever))

View File

@ -49,7 +49,7 @@ class PushSenderSink : Sink
{ {
var result = SendResult.OK; var result = SendResult.OK;
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var m = scope.ServiceProvider.GetRequiredService<PushSenderSinkMessageCreator>().CreateNotifyMessage(message, _senderName); var m = scope.ServiceProvider.GetRequiredService<PushSenderSinkMessageCreator>().CreateNotifyMessage(message, _senderName);
if (string.IsNullOrEmpty(m.Reciever)) if (string.IsNullOrEmpty(m.Reciever))

View File

@ -64,7 +64,7 @@ public class AWSSender : SmtpSender, IDisposable
try try
{ {
_logger.DebugSendTo(m.TenantId, m.Reciever); _logger.DebugSendTo(m.TenantId, m.Reciever);
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var tenantManager = scope.ServiceProvider.GetService<TenantManager>(); var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
tenantManager.SetCurrentTenant(m.TenantId); tenantManager.SetCurrentTenant(m.TenantId);

View File

@ -41,7 +41,7 @@ public class TelegramSender : INotifySender
public void Init(IDictionary<string, string> properties) { } public void Init(IDictionary<string, string> properties) { }
public Task<NoticeSendResult> Send(NotifyMessage m) public async Task<NoticeSendResult> Send(NotifyMessage m)
{ {
if (!string.IsNullOrEmpty(m.Content)) if (!string.IsNullOrEmpty(m.Content))
{ {
@ -50,7 +50,7 @@ public class TelegramSender : INotifySender
} }
try try
{ {
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var TelegramHelper = scope.ServiceProvider.GetService<TelegramHelper>(); var TelegramHelper = scope.ServiceProvider.GetService<TelegramHelper>();
TelegramHelper.SendMessage(m); TelegramHelper.SendMessage(m);
} }
@ -59,6 +59,6 @@ public class TelegramSender : INotifySender
_logger.ErrorUnexpected(e); _logger.ErrorUnexpected(e);
} }
return Task.FromResult(NoticeSendResult.OK); return await Task.FromResult(NoticeSendResult.OK);
} }
} }

View File

@ -45,7 +45,7 @@ class TelegramSenderSink : Sink
{ {
const SendResult result = SendResult.OK; const SendResult result = SendResult.OK;
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var m = scope.ServiceProvider.GetRequiredService<TelegramSenderSinkMessageCreator>().CreateNotifyMessage(message, _senderName); var m = scope.ServiceProvider.GetRequiredService<TelegramSenderSinkMessageCreator>().CreateNotifyMessage(message, _senderName);
await _sender.Send(m); await _sender.Send(m);

View File

@ -116,7 +116,7 @@ public class BackupProgressItem : BaseBackupProgressItem
Thread.CurrentThread.Priority = ThreadPriority.BelowNormal; Thread.CurrentThread.Priority = ThreadPriority.BelowNormal;
} }
using var scope = _serviceScopeProvider.CreateScope(); await using var scope = _serviceScopeProvider.CreateAsyncScope();
_tenantManager = scope.ServiceProvider.GetService<TenantManager>(); _tenantManager = scope.ServiceProvider.GetService<TenantManager>();
_backupStorageFactory = scope.ServiceProvider.GetService<BackupStorageFactory>(); _backupStorageFactory = scope.ServiceProvider.GetService<BackupStorageFactory>();

View File

@ -111,7 +111,7 @@ public class RestoreProgressItem : BaseBackupProgressItem
try try
{ {
using var scope = _serviceScopeProvider.CreateScope(); await using var scope = _serviceScopeProvider.CreateAsyncScope();
_tenantManager = scope.ServiceProvider.GetService<TenantManager>(); _tenantManager = scope.ServiceProvider.GetService<TenantManager>();
_backupStorageFactory = scope.ServiceProvider.GetService<BackupStorageFactory>(); _backupStorageFactory = scope.ServiceProvider.GetService<BackupStorageFactory>();

View File

@ -102,7 +102,7 @@ public class TransferProgressItem : BaseBackupProgressItem
try try
{ {
using var scope = _serviceScopeProvider.CreateScope(); await using var scope = _serviceScopeProvider.CreateAsyncScope();
_tenantManager = scope.ServiceProvider.GetService<TenantManager>(); _tenantManager = scope.ServiceProvider.GetService<TenantManager>();
_transferPortalTask = scope.ServiceProvider.GetService<TransferPortalTask>(); _transferPortalTask = scope.ServiceProvider.GetService<TransferPortalTask>();

View File

@ -70,7 +70,7 @@ public class ReassignProgressItem : DistributedTaskProgress
protected override async Task DoJob() protected override async Task DoJob()
{ {
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
var scopeClass = scope.ServiceProvider.GetService<ReassignProgressItemScope>(); var scopeClass = scope.ServiceProvider.GetService<ReassignProgressItemScope>();
var queueWorkerRemove = scope.ServiceProvider.GetService<QueueWorkerRemove>(); var queueWorkerRemove = scope.ServiceProvider.GetService<QueueWorkerRemove>();
var (tenantManager, coreBaseSettings, messageService, studioNotifyService, securityContext, userManager, userPhotoManager, displayUserSettingsHelper, messageTarget, options) = scopeClass; var (tenantManager, coreBaseSettings, messageService, studioNotifyService, securityContext, userManager, userPhotoManager, displayUserSettingsHelper, messageTarget, options) = scopeClass;

View File

@ -67,7 +67,7 @@ public class RemoveProgressItem : DistributedTaskProgress
protected override async Task DoJob() protected override async Task DoJob()
{ {
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
var scopeClass = scope.ServiceProvider.GetService<RemoveProgressItemScope>(); var scopeClass = scope.ServiceProvider.GetService<RemoveProgressItemScope>();
var (tenantManager, coreBaseSettings, messageService, studioNotifyService, securityContext, userManager, messageTarget, webItemManagerSecurity, storageFactory, userFormatter, options) = scopeClass; var (tenantManager, coreBaseSettings, messageService, studioNotifyService, securityContext, userManager, messageTarget, webItemManagerSecurity, storageFactory, userFormatter, options) = scopeClass;
var logger = options.CreateLogger("ASC.Web"); var logger = options.CreateLogger("ASC.Web");

View File

@ -57,7 +57,7 @@ public class EncryptionOperation : DistributedTaskProgress
protected override async Task DoJob() protected override async Task DoJob()
{ {
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
var scopeClass = scope.ServiceProvider.GetService<EncryptionOperationScope>(); var scopeClass = scope.ServiceProvider.GetService<EncryptionOperationScope>();
var (log, encryptionSettingsHelper, tenantManager, notifyHelper, coreBaseSettings, storageFactoryConfig, storageFactory, configuration) = scopeClass; var (log, encryptionSettingsHelper, tenantManager, notifyHelper, coreBaseSettings, storageFactoryConfig, storageFactory, configuration) = scopeClass;
notifyHelper.Init(_serverRootPath); notifyHelper.Init(_serverRootPath);

View File

@ -255,7 +255,7 @@ public class UploadOperationProgress : DistributedTaskProgress
protected override async Task DoJob() protected override async Task DoJob()
{ {
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var tenantManager = scope.ServiceProvider.GetService<TenantManager>(); var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
var staticUploader = scope.ServiceProvider.GetService<StaticUploader>(); var staticUploader = scope.ServiceProvider.GetService<StaticUploader>();
var tenant = tenantManager.GetTenant(TenantId); var tenant = tenantManager.GetTenant(TenantId);

View File

@ -148,7 +148,7 @@ public class MigrateOperation : DistributedTaskProgress
_logger.DebugTenant(_tenantId); _logger.DebugTenant(_tenantId);
Status = DistributedTaskStatus.Running; Status = DistributedTaskStatus.Running;
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var tempPath = scope.ServiceProvider.GetService<TempPath>(); var tempPath = scope.ServiceProvider.GetService<TempPath>();
var scopeClass = scope.ServiceProvider.GetService<MigrateOperationScope>(); var scopeClass = scope.ServiceProvider.GetService<MigrateOperationScope>();
var (tenantManager, securityContext, storageFactory, options, storageSettingsHelper, settingsManager) = scopeClass; var (tenantManager, securityContext, storageFactory, options, storageSettingsHelper, settingsManager) = scopeClass;

View File

@ -53,7 +53,7 @@ internal sealed class BackupCleanerService : BackgroundService
{ {
_logger.DebugBackupCleanerServiceDoingWork(); _logger.DebugBackupCleanerServiceDoingWork();
using var serviceScope = _scopeFactory.CreateScope(); await using var serviceScope = _scopeFactory.CreateAsyncScope();
var registerInstanceService = serviceScope.ServiceProvider.GetService<IRegisterInstanceManager<BackupCleanerService>>(); var registerInstanceService = serviceScope.ServiceProvider.GetService<IRegisterInstanceManager<BackupCleanerService>>();
@ -76,7 +76,7 @@ internal sealed class BackupCleanerService : BackgroundService
private async Task ExecuteBackupCleaner(CancellationToken stoppingToken) private async Task ExecuteBackupCleaner(CancellationToken stoppingToken)
{ {
using var serviceScope = _scopeFactory.CreateScope(); await using var serviceScope = _scopeFactory.CreateAsyncScope();
var backupRepository = serviceScope.ServiceProvider.GetRequiredService<BackupRepository>(); var backupRepository = serviceScope.ServiceProvider.GetRequiredService<BackupRepository>();
var backupStorageFactory = serviceScope.ServiceProvider.GetRequiredService<BackupStorageFactory>(); var backupStorageFactory = serviceScope.ServiceProvider.GetRequiredService<BackupStorageFactory>();

View File

@ -58,7 +58,7 @@ public sealed class BackupSchedulerService : BackgroundService
while (!stoppingToken.IsCancellationRequested) while (!stoppingToken.IsCancellationRequested)
{ {
using var serviceScope = _scopeFactory.CreateScope(); await using var serviceScope = _scopeFactory.CreateAsyncScope();
var registerInstanceService = serviceScope.ServiceProvider.GetService<IRegisterInstanceManager<BackupSchedulerService>>(); var registerInstanceService = serviceScope.ServiceProvider.GetService<IRegisterInstanceManager<BackupSchedulerService>>();

View File

@ -69,7 +69,7 @@ public class ElasticSearchIndexService : BackgroundService
_logger.ErrorSubscribeOnStart(e); _logger.ErrorSubscribeOnStart(e);
} }
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
var factoryIndexer = scope.ServiceProvider.GetService<FactoryIndexer>(); var factoryIndexer = scope.ServiceProvider.GetService<FactoryIndexer>();
while (!factoryIndexer.CheckState(false)) while (!factoryIndexer.CheckState(false))
@ -138,14 +138,14 @@ public class ElasticSearchIndexService : BackgroundService
IEnumerable<Type> wrappers; IEnumerable<Type> wrappers;
using (var scope = _serviceScopeFactory.CreateScope()) await using (var scope = _serviceScopeFactory.CreateAsyncScope())
{ {
wrappers = scope.ServiceProvider.GetService<IEnumerable<IFactoryIndexer>>().Select(r => r.GetType()).ToList(); wrappers = scope.ServiceProvider.GetService<IEnumerable<IFactoryIndexer>>().Select(r => r.GetType()).ToList();
} }
await Parallel.ForEachAsync(wrappers, async (wrapper, token) => await Parallel.ForEachAsync(wrappers, async (wrapper, token) =>
{ {
using (var scope = _serviceScopeFactory.CreateScope()) await using (var scope = _serviceScopeFactory.CreateAsyncScope())
{ {
await IndexProduct((IFactoryIndexer)scope.ServiceProvider.GetRequiredService(wrapper), reindex); await IndexProduct((IFactoryIndexer)scope.ServiceProvider.GetRequiredService(wrapper), reindex);
} }

View File

@ -92,7 +92,7 @@ public class FeedAggregatorService : FeedBaseService
try try
{ {
var cfg = _feedSettings; var cfg = _feedSettings;
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
var cache = scope.ServiceProvider.GetService<ICache>(); var cache = scope.ServiceProvider.GetService<ICache>();
var baseCommonLinkUtility = scope.ServiceProvider.GetService<BaseCommonLinkUtility>(); var baseCommonLinkUtility = scope.ServiceProvider.GetService<BaseCommonLinkUtility>();
baseCommonLinkUtility.Initialize(cfg.ServerRoot); baseCommonLinkUtility.Initialize(cfg.ServerRoot);

View File

@ -49,7 +49,7 @@ public class NotifyCleanerService : BackgroundService
while (!stoppingToken.IsCancellationRequested) while (!stoppingToken.IsCancellationRequested)
{ {
using var serviceScope = _scopeFactory.CreateScope(); await using var serviceScope = _scopeFactory.CreateAsyncScope();
var registerInstanceService = serviceScope.ServiceProvider.GetService<IRegisterInstanceManager<NotifyCleanerService>>(); var registerInstanceService = serviceScope.ServiceProvider.GetService<IRegisterInstanceManager<NotifyCleanerService>>();

View File

@ -62,7 +62,7 @@ public class NotifySenderService : BackgroundService
while (!stoppingToken.IsCancellationRequested) while (!stoppingToken.IsCancellationRequested)
{ {
using var serviceScope = _scopeFactory.CreateScope(); await using var serviceScope = _scopeFactory.CreateAsyncScope();
var registerInstanceService = serviceScope.ServiceProvider.GetService<IRegisterInstanceManager<NotifySenderService>>(); var registerInstanceService = serviceScope.ServiceProvider.GetService<IRegisterInstanceManager<NotifySenderService>>();

View File

@ -28,6 +28,7 @@ const InputParam = ({
isDisabled, isDisabled,
isValidTitle, isValidTitle,
errorMessage, errorMessage,
isAutoFocussed,
}) => { }) => {
return ( return (
<StyledInputParam> <StyledInputParam>
@ -56,6 +57,7 @@ const InputParam = ({
tabIndex={2} tabIndex={2}
isDisabled={isDisabled} isDisabled={isDisabled}
hasError={!isValidTitle} hasError={!isValidTitle}
isAutoFocussed={isAutoFocussed}
/> />
</FieldContainer> </FieldContainer>
</StyledInputParam> </StyledInputParam>

View File

@ -96,6 +96,7 @@ const SetRoomParams = ({
isDisabled={isDisabled} isDisabled={isDisabled}
isValidTitle={isValidTitle} isValidTitle={isValidTitle}
errorMessage={t("Common:RequiredField")} errorMessage={t("Common:RequiredField")}
isAutoFocussed={true}
/> />
<TagInput <TagInput

View File

@ -119,10 +119,12 @@ export const initDocEditor = async (req) => {
"doceditor/" + "doceditor/" +
getLogoFromPath(config.editorConfig.customization.logo.imageDark); getLogoFromPath(config.editorConfig.customization.logo.imageDark);
config.editorConfig.customization.customer.logo = if (config.editorConfig.customization.customer) {
config.editorConfig.customization.logo.url + config.editorConfig.customization.customer.logo =
"doceditor/" + config.editorConfig.customization.logo.url +
getLogoFromPath(config.editorConfig.customization.customer.logo); "doceditor/" +
getLogoFromPath(config.editorConfig.customization.customer.logo);
}
return { return {
config, config,
@ -143,6 +145,7 @@ export const initDocEditor = async (req) => {
logoUrls, logoUrls,
}; };
} catch (err) { } catch (err) {
console.error("initDocEditor failed", err);
let message = ""; let message = "";
if (typeof err === "string") message = err; if (typeof err === "string") message = err;
else message = err.response?.data?.error?.message || err.message; else message = err.response?.data?.error?.message || err.message;

View File

@ -283,6 +283,8 @@ public interface IFileDao<T>
Task<bool> ContainChangesAsync(T fileId, int fileVersion); Task<bool> ContainChangesAsync(T fileId, int fileVersion);
Task CopyThumbnailAsync(File<T> fromFile, File<T> toFile, int width, int height);
Task SaveThumbnailAsync(File<T> file, Stream thumbnail, int width, int height); Task SaveThumbnailAsync(File<T> file, Stream thumbnail, int width, int height);
Task<Stream> GetThumbnailAsync(File<T> file, int width, int height); Task<Stream> GetThumbnailAsync(File<T> file, int width, int height);

View File

@ -24,6 +24,8 @@
// content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0 // content are licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0
// International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode // International. See the License terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
using Microsoft.OneDrive.Sdk;
using Document = ASC.ElasticSearch.Document; using Document = ASC.ElasticSearch.Document;
namespace ASC.Files.Core.Data; namespace ASC.Files.Core.Data;
@ -1492,6 +1494,15 @@ internal class FileDao : AbstractDao, IFileDao<int>
private const string ThumbnailTitle = "thumb"; private const string ThumbnailTitle = "thumb";
public async Task CopyThumbnailAsync(File<int> fromFile, File<int> toFile, int width, int height)
{
using var filesDbContext = _dbContextFactory.CreateDbContext();
var thumnailName = GetThumnailName(width, height);
await _globalStore.GetStore().CopyAsync(String.Empty, GetUniqFilePath(fromFile, thumnailName), String.Empty, GetUniqFilePath(toFile, thumnailName));
}
public Task SaveThumbnailAsync(File<int> file, Stream thumbnail, int width, int height) public Task SaveThumbnailAsync(File<int> file, Stream thumbnail, int width, int height)
{ {
if (file == null) if (file == null)

View File

@ -1551,7 +1551,7 @@ public class FileStorageService<T> //: IFileStorageService
if (currentProperies.FormFilling == null) if (currentProperies.FormFilling == null)
{ {
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
currentProperies.FormFilling = scope.ServiceProvider.GetService<FormFillingProperties>(); currentProperies.FormFilling = scope.ServiceProvider.GetService<FormFillingProperties>();
} }

View File

@ -71,6 +71,13 @@ internal abstract class ThirdPartyProviderDao
return Task.FromResult(false); return Task.FromResult(false);
} }
public Task CopyThumbnailAsync(File<string> fromFile, File<string> toFile, int width, int height)
{
//Do nothing
return Task.CompletedTask;
}
public Task SaveThumbnailAsync(File<string> file, Stream thumbnail, int width, int height) public Task SaveThumbnailAsync(File<string> file, Stream thumbnail, int width, int height)
{ {
//Do nothing //Do nothing

View File

@ -129,7 +129,7 @@ internal class ProviderDaoBase : ThirdPartyProviderDao, IDisposable
protected async Task<File<int>> PerformCrossDaoFileCopyAsync(string fromFileId, int toFolderId, bool deleteSourceFile) protected async Task<File<int>> PerformCrossDaoFileCopyAsync(string fromFileId, int toFolderId, bool deleteSourceFile)
{ {
var fromSelector = GetSelector(fromFileId); var fromSelector = GetSelector(fromFileId);
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var tenantManager = scope.ServiceProvider.GetService<TenantManager>(); var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
tenantManager.SetCurrentTenant(TenantID); tenantManager.SetCurrentTenant(TenantID);

View File

@ -127,7 +127,7 @@ public class UsersQuotaSyncJob : DistributedTaskProgress
{ {
try try
{ {
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
var _tenantManager = scope.ServiceProvider.GetRequiredService<TenantManager>(); var _tenantManager = scope.ServiceProvider.GetRequiredService<TenantManager>();
var _userManager = scope.ServiceProvider.GetRequiredService<UserManager>(); var _userManager = scope.ServiceProvider.GetRequiredService<UserManager>();

View File

@ -55,7 +55,7 @@ class FileDownloadOperation : ComposeFileOperation<FileDownloadOperationData<str
{ {
await base.RunJob(distributedTask, cancellationToken); await base.RunJob(distributedTask, cancellationToken);
using var scope = ThirdPartyOperation.CreateScope(); await using var scope = ThirdPartyOperation.CreateScopeAsync();
var tenantManager = scope.ServiceProvider.GetRequiredService<TenantManager>(); var tenantManager = scope.ServiceProvider.GetRequiredService<TenantManager>();
var instanceCrypto = scope.ServiceProvider.GetRequiredService<InstanceCrypto>(); var instanceCrypto = scope.ServiceProvider.GetRequiredService<InstanceCrypto>();
var daoFactory = scope.ServiceProvider.GetRequiredService<IDaoFactory>(); var daoFactory = scope.ServiceProvider.GetRequiredService<IDaoFactory>();

View File

@ -219,7 +219,7 @@ abstract class FileOperation<T, TId> : FileOperation where T : FileOperationData
//todo check files> 0 or folders > 0 //todo check files> 0 or folders > 0
CancellationToken = cancellationToken; CancellationToken = cancellationToken;
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var scopeClass = scope.ServiceProvider.GetService<FileOperationScope>(); var scopeClass = scope.ServiceProvider.GetService<FileOperationScope>();
var (tenantManager, daoFactory, fileSecurity, logger) = scopeClass; var (tenantManager, daoFactory, fileSecurity, logger) = scopeClass;
tenantManager.SetCurrentTenant(CurrentTenant); tenantManager.SetCurrentTenant(CurrentTenant);
@ -263,9 +263,9 @@ abstract class FileOperation<T, TId> : FileOperation where T : FileOperationData
} }
} }
public IServiceScope CreateScope() public AsyncServiceScope CreateScopeAsync()
{ {
var scope = _serviceProvider.CreateScope(); var scope = _serviceProvider.CreateAsyncScope();
var tenantManager = scope.ServiceProvider.GetService<TenantManager>(); var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
tenantManager.SetCurrentTenant(CurrentTenant); tenantManager.SetCurrentTenant(CurrentTenant);

View File

@ -1629,6 +1629,7 @@ public class EntryManager
newFile.ConvertedType = fromFile.ConvertedType; newFile.ConvertedType = fromFile.ConvertedType;
newFile.Comment = string.Format(FilesCommonResource.CommentRevert, fromFile.ModifiedOnString); newFile.Comment = string.Format(FilesCommonResource.CommentRevert, fromFile.ModifiedOnString);
newFile.Encrypted = fromFile.Encrypted; newFile.Encrypted = fromFile.Encrypted;
newFile.ThumbnailStatus = fromFile.ThumbnailStatus;
using (var stream = await fileDao.GetFileStreamAsync(fromFile)) using (var stream = await fileDao.GetFileStreamAsync(fromFile))
{ {
@ -1638,17 +1639,22 @@ public class EntryManager
if (fromFile.ThumbnailStatus == Thumbnail.Created) if (fromFile.ThumbnailStatus == Thumbnail.Created)
{ {
foreach (var size in _thumbnailSettings.Sizes) var CopyThumbnailsAsync = async () => {
{ await using (var scope = _serviceProvider.CreateAsyncScope())
using (var thumb = await fileDao.GetThumbnailAsync(fromFile, size.Width, size.Height)) {
{ var _fileDao = scope.ServiceProvider.GetService<IDaoFactory>().GetFileDao<T>();
await fileDao.SaveThumbnailAsync(newFile, thumb, size.Width, size.Height);
foreach (var size in _thumbnailSettings.Sizes)
{
await _fileDao.CopyThumbnailAsync(fromFile, newFile, size.Width, size.Height);
}
} }
} };
newFile.ThumbnailStatus = Thumbnail.Created; _ = Task.Run(() => CopyThumbnailsAsync().GetAwaiter().GetResult());
} }
var linkDao = _daoFactory.GetLinkDao(); var linkDao = _daoFactory.GetLinkDao();
await linkDao.DeleteAllLinkAsync(newFile.Id.ToString()); await linkDao.DeleteAllLinkAsync(newFile.Id.ToString());

View File

@ -53,7 +53,7 @@ public class FileMarkerHelper<T>
{ {
try try
{ {
using var scope = _serviceProvider.CreateScope(); await using var scope = _serviceProvider.CreateAsyncScope();
var fileMarker = scope.ServiceProvider.GetService<FileMarker>(); var fileMarker = scope.ServiceProvider.GetService<FileMarker>();
var socketManager = scope.ServiceProvider.GetService<SocketManager>(); var socketManager = scope.ServiceProvider.GetService<SocketManager>();
await fileMarker.ExecMarkFileAsNewAsync(obj, socketManager); await fileMarker.ExecMarkFileAsNewAsync(obj, socketManager);

View File

@ -233,7 +233,7 @@ public class FileTrackerHelper
try try
{ {
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
var helper = scope.ServiceProvider.GetRequiredService<DocumentServiceHelper>(); var helper = scope.ServiceProvider.GetRequiredService<DocumentServiceHelper>();
var tracker = scope.ServiceProvider.GetRequiredService<DocumentServiceTrackerHelper>(); var tracker = scope.ServiceProvider.GetRequiredService<DocumentServiceTrackerHelper>();

View File

@ -455,7 +455,7 @@ public class FilesControllerCommon : ApiControllerBase
async Task AddProps<T>(T fileId) async Task AddProps<T>(T fileId)
{ {
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
var fileStorageService = scope.ServiceProvider.GetRequiredService<FileStorageService<T>>(); var fileStorageService = scope.ServiceProvider.GetRequiredService<FileStorageService<T>>();
var props = _mapper.Map<EntryPropertiesRequestDto, EntryProperties>(batchEntryPropertiesRequestDto.FileProperties); var props = _mapper.Map<EntryPropertiesRequestDto, EntryProperties>(batchEntryPropertiesRequestDto.FileProperties);
if (batchEntryPropertiesRequestDto.CreateSubfolder) if (batchEntryPropertiesRequestDto.CreateSubfolder)

View File

@ -53,7 +53,7 @@ public class Worker
List<TenantUserSettings> activeTenantsUsers; List<TenantUserSettings> activeTenantsUsers;
using (var scope = _serviceScopeFactory.CreateScope()) await using (var scope = _serviceScopeFactory.CreateAsyncScope())
{ {
using var dbContext = scope.ServiceProvider.GetRequiredService<IDbContextFactory<WebstudioDbContext>>().CreateDbContext(); using var dbContext = scope.ServiceProvider.GetRequiredService<IDbContextFactory<WebstudioDbContext>>().CreateDbContext();
activeTenantsUsers = GetTenantsUsers(dbContext); activeTenantsUsers = GetTenantsUsers(dbContext);
@ -79,7 +79,7 @@ public class Worker
try try
{ {
using (var scope = _serviceScopeFactory.CreateScope()) await using (var scope = _serviceScopeFactory.CreateAsyncScope())
{ {
var tenantManager = scope.ServiceProvider.GetRequiredService<TenantManager>(); var tenantManager = scope.ServiceProvider.GetRequiredService<TenantManager>();
var authManager = scope.ServiceProvider.GetRequiredService<AuthManager>(); var authManager = scope.ServiceProvider.GetRequiredService<AuthManager>();

View File

@ -49,7 +49,7 @@ internal class FileConverterService<T> : BackgroundService
while (!stoppingToken.IsCancellationRequested) while (!stoppingToken.IsCancellationRequested)
{ {
using var serviceScope = _serviceScopeFactory.CreateScope(); await using var serviceScope = _serviceScopeFactory.CreateAsyncScope();
var registerInstanceService = serviceScope.ServiceProvider.GetService<IRegisterInstanceManager<FileConverterService<T>>>(); var registerInstanceService = serviceScope.ServiceProvider.GetService<IRegisterInstanceManager<FileConverterService<T>>>();

View File

@ -51,7 +51,7 @@ public class BuilderQueue<T>
new ParallelOptions { MaxDegreeOfParallelism = _config.MaxDegreeOfParallelism }, new ParallelOptions { MaxDegreeOfParallelism = _config.MaxDegreeOfParallelism },
async (fileData, token) => async (fileData, token) =>
{ {
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
var commonLinkUtilitySettings = scope.ServiceProvider.GetService<CommonLinkUtilitySettings>(); var commonLinkUtilitySettings = scope.ServiceProvider.GetService<CommonLinkUtilitySettings>();
commonLinkUtilitySettings.ServerUri = fileData.BaseUri; commonLinkUtilitySettings.ServerUri = fileData.BaseUri;

View File

@ -81,7 +81,7 @@ public class ThumbnailBuilderService : BackgroundService
return; return;
} }
using (var scope = _serviceScopeFactory.CreateScope()) await using (var scope = _serviceScopeFactory.CreateAsyncScope())
{ {
var fileDataProvider = scope.ServiceProvider.GetService<FileDataProvider>(); var fileDataProvider = scope.ServiceProvider.GetService<FileDataProvider>();
var premiumTenants = fileDataProvider.GetPremiumTenants(); var premiumTenants = fileDataProvider.GetPremiumTenants();

View File

@ -114,7 +114,7 @@ public class QuotaSyncJob : DistributedTaskProgress
{ {
try try
{ {
using var scope = _serviceScopeFactory.CreateScope(); await using var scope = _serviceScopeFactory.CreateAsyncScope();
var _tenantManager = scope.ServiceProvider.GetRequiredService<TenantManager>(); var _tenantManager = scope.ServiceProvider.GetRequiredService<TenantManager>();
var _storageFactoryConfig = scope.ServiceProvider.GetRequiredService<StorageFactoryConfig>(); var _storageFactoryConfig = scope.ServiceProvider.GetRequiredService<StorageFactoryConfig>();

View File

@ -7,8 +7,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="AspNetCore.HealthChecks.UI" Version="6.0.5" /> <PackageReference Include="AspNetCore.HealthChecks.UI" Version="7.0.0-rc2.7" />
<PackageReference Include="AspNetCore.HealthChecks.UI.InMemory.Storage" Version="6.0.5" /> <PackageReference Include="AspNetCore.HealthChecks.UI.InMemory.Storage" Version="7.0.0-rc2.7" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

1649
yarn.lock

File diff suppressed because it is too large Load Diff