Merge pull request #1766 from ONLYOFFICE/feature/message-ref

MessageService: refactoring
This commit is contained in:
Pavel Bannov 2023-09-25 04:38:03 -07:00 committed by GitHub
commit 8385954e0f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 202 additions and 284 deletions

View File

@ -168,7 +168,7 @@ public class InvitationLinkHelper
var headers = _httpContextAccessor?.HttpContext?.Request.Headers;
var target = _messageTarget.Create(email);
await _messageService.SendAsync(headers, MessageAction.RoomInviteLinkUsed, target, key);
await _messageService.SendHeadersMessageAsync(MessageAction.RoomInviteLinkUsed, target, headers, key);
}
}

View File

@ -185,11 +185,11 @@ public class ReassignProgressItem : DistributedTaskProgress
if (_httpHeaders != null)
{
await messageService.SendAsync(_httpHeaders, MessageAction.UserDataReassigns, messageTarget.Create(FromUser), new[] { fromUserName, toUserName });
await messageService.SendHeadersMessageAsync(MessageAction.UserDataReassigns, messageTarget.Create(FromUser), _httpHeaders, new[] { fromUserName, toUserName });
}
else
{
await messageService.SendAsync(MessageAction.UserDataReassigns, messageTarget.Create(FromUser), fromUserName, toUserName);
await messageService.SendAsync(MessageAction.UserDataReassigns, messageTarget.Create(FromUser), fromUserName, toUserName);
}
}
@ -211,7 +211,7 @@ public class ReassignProgressItem : DistributedTaskProgress
if (_httpHeaders != null)
{
await messageService.SendAsync(_httpHeaders, MessageAction.UserDeleted, messageTarget.Create(FromUser), new[] { userName });
await messageService.SendHeadersMessageAsync(MessageAction.UserDeleted, messageTarget.Create(FromUser), _httpHeaders, userName);
}
else
{

View File

@ -214,7 +214,7 @@ public class RemoveProgressItem : DistributedTaskProgress
if (_httpHeaders != null)
{
await messageService.SendAsync(_httpHeaders, MessageAction.UserDeleted, messageTarget.Create(FromUser), new[] { userName });
await messageService.SendHeadersMessageAsync(MessageAction.UserDeleted, messageTarget.Create(FromUser), _httpHeaders, userName);
}
else
{
@ -231,7 +231,7 @@ public class RemoveProgressItem : DistributedTaskProgress
if (_httpHeaders != null)
{
await messageService.SendAsync(_httpHeaders, MessageAction.UserDataRemoving, messageTarget.Create(FromUser), new[] { userName });
await messageService.SendHeadersMessageAsync(MessageAction.UserDataRemoving, messageTarget.Create(FromUser), _httpHeaders, userName);
}
else
{

View File

@ -34,8 +34,8 @@ public class MessageFactory
private readonly TenantManager _tenantManager;
private readonly IHttpContextAccessor _httpContextAccessor;
public MessageFactory(AuthContext authContext,
TenantManager tenantManager,
public MessageFactory(AuthContext authContext,
TenantManager tenantManager,
ILogger<MessageFactory> logger,
IHttpContextAccessor httpContextAccessor)
{
@ -71,15 +71,15 @@ public class MessageFactory
}
}
public async Task<EventMessage> CreateAsync(MessageUserData userData, IDictionary<string, StringValues> headers, MessageAction action, MessageTarget target, params string[] description)
public async Task<EventMessage> CreateAsync(IDictionary<string, StringValues> headers, MessageAction action, MessageTarget target, params string[] description)
{
try
{
var message = new EventMessage
{
Date = DateTime.UtcNow,
TenantId = userData == null ? await _tenantManager.GetCurrentTenantIdAsync() : userData.TenantId,
UserId = userData == null ? _authContext.CurrentAccount.ID : userData.UserId,
TenantId = await _tenantManager.GetCurrentTenantIdAsync(),
UserId = _authContext.CurrentAccount.ID,
Action = action,
Description = description,
Target = target

View File

@ -69,57 +69,22 @@ public class MessageService
public async Task SendAsync(MessageAction action)
{
await SendRequestMessageAsync(null, null, action, null);
await SendRequestMessageAsync(action);
}
public async Task SendAsync(MessageAction action, string d1)
{
await SendRequestMessageAsync(null, null, action, null, d1);
}
public async Task SendAsync(MessageAction action, string d1, string d2)
{
await SendRequestMessageAsync(null, null, action, null, d1, d2);
}
public async Task SendAsync(MessageAction action, string d1, string d2, string d3)
{
await SendRequestMessageAsync(null, null, action, null, d1, d2, d3);
}
public async Task SendAsync(MessageAction action, string d1, string d2, string d3, string d4)
{
await SendRequestMessageAsync(null, null, action, null, d1, d2, d3, d4);
}
public async Task SendAsync(MessageAction action, IEnumerable<string> d1, string d2)
{
await SendRequestMessageAsync(null, null, action, null, string.Join(", ", d1), d2);
await SendRequestMessageAsync(action, description: d1);
}
public async Task SendAsync(MessageAction action, string d1, IEnumerable<string> d2)
{
await SendRequestMessageAsync(null, null, action, null, d1, string.Join(", ", d2));
}
public async Task SendAsync(MessageAction action, string d1, string d2, IEnumerable<string> d3)
{
await SendRequestMessageAsync(null, null, action, null, d1, d2, string.Join(", ", d3));
}
public async Task SendAsync(MessageAction action, IEnumerable<string> d1)
{
await SendRequestMessageAsync(null, null, action, null, string.Join(", ", d1));
await SendRequestMessageAsync(action, description: new[] { d1, string.Join(", ", d2) });
}
public async Task SendAsync(string loginName, MessageAction action)
{
await SendRequestMessageAsync(loginName, null, action, null);
}
public async Task SendAsync(string loginName, MessageAction action, string d1)
{
await SendRequestMessageAsync(loginName, null, action, null, d1);
await SendRequestMessageAsync(action, loginName: loginName);
}
#endregion
@ -128,90 +93,61 @@ public class MessageService
public async Task SendAsync(MessageAction action, MessageTarget target)
{
await SendRequestMessageAsync(null, null, action, target);
await SendRequestMessageAsync(action, target);
}
public async Task SendAsync(DateTime? dateTime, MessageAction action, MessageTarget target, string d1)
public async Task SendAsync(MessageAction action, MessageTarget target, DateTime? dateTime, string d1)
{
await SendRequestMessageAsync(null, dateTime, action, target, d1);
await SendRequestMessageAsync(action, target, dateTime: dateTime, description: d1);
}
public async Task SendAsync(MessageAction action, MessageTarget target, string d1)
{
await SendRequestMessageAsync(null, null, action, target, d1);
await SendRequestMessageAsync(action, target, description: d1);
}
public async Task SendAsync(MessageAction action, MessageTarget target, string d1, Guid userId)
{
if (TryAddNotificationParam(action, userId, out var parametr))
{
await SendRequestMessageAsync(null, null, action, target, d1, parametr);
await SendRequestMessageAsync(action, target, description: new[] { d1, parametr });
}
else
{
await SendRequestMessageAsync(null, null, action, target, d1);
await SendRequestMessageAsync(action, target, description: d1);
}
}
public async Task SendAsync(MessageAction action, MessageTarget target, string d1, string d2)
{
await SendRequestMessageAsync(null, null, action, target, d1, d2);
}
public async Task SendAsync(MessageAction action, MessageTarget target, string d1, string d2, string d3)
{
await SendRequestMessageAsync(null, null, action, target, d1, d2, d3);
}
public async Task SendAsync(MessageAction action, MessageTarget target, string d1, string d2, string d3, string d4)
{
await SendRequestMessageAsync(null, null, action, target, d1, d2, d3, d4);
}
public async Task SendAsync(MessageAction action, MessageTarget target, IEnumerable<string> d1, string d2)
{
await SendRequestMessageAsync(null, null, action, target, string.Join(", ", d1), d2);
}
public async Task SendAsync(MessageAction action, MessageTarget target, string d1, IEnumerable<string> d2)
{
await SendRequestMessageAsync(null, null, action, target, d1, string.Join(", ", d2));
}
public async Task SendAsync(MessageAction action, MessageTarget target, string d1, string d2, IEnumerable<string> d3)
{
await SendRequestMessageAsync(null, null, action, target, d1, d2, string.Join(", ", d3));
await SendRequestMessageAsync(action, target, description: new[] { d1, d2 });
}
public async Task SendAsync(MessageAction action, MessageTarget target, IEnumerable<string> d1)
{
await SendRequestMessageAsync(null, null, action, target, string.Join(", ", d1));
await SendRequestMessageAsync(action, target, description: string.Join(", ", d1));
}
public async Task SendAsync(MessageAction action, MessageTarget target, IEnumerable<string> d1, List<Guid> userIds, EmployeeType userType)
{
if (TryAddNotificationParam(action, userIds, out var parametr, userType))
{
await SendRequestMessageAsync(null, null, action, target, string.Join(", ", d1), parametr);
await SendRequestMessageAsync(action, target, description: new[] { string.Join(", ", d1), parametr });
}
else
{
await SendRequestMessageAsync(null, null, action, target, string.Join(", ", d1));
await SendRequestMessageAsync(action, target, description: string.Join(", ", d1));
}
}
public async Task SendAsync(string loginName, MessageAction action, MessageTarget target)
{
await SendRequestMessageAsync(loginName, null, action, target);
}
public async Task SendAsync(string loginName, MessageAction action, MessageTarget target, string d1)
{
await SendRequestMessageAsync(loginName, null, action, target, d1);
await SendRequestMessageAsync(action, target, loginName);
}
#endregion
private async Task SendRequestMessageAsync(string loginName, DateTime? dateTime, MessageAction action, MessageTarget target, params string[] description)
private async Task SendRequestMessageAsync(MessageAction action, MessageTarget target = null, string loginName = null, DateTime? dateTime = null, params string[] description)
{
if (_sender == null)
{
@ -236,60 +172,38 @@ public class MessageService
#region HttpHeaders
public async Task SendAsync(MessageUserData userData, IDictionary<string, StringValues> httpHeaders, MessageAction action)
public async Task SendHeadersMessageAsync(MessageAction action)
{
await SendHeadersMessageAsync(userData, httpHeaders, action, null);
await SendRequestHeadersMessageAsync(action);
}
public async Task SendHeadersMessageAsync(MessageAction action, params string[] description)
{
await SendRequestHeadersMessageAsync(action, description: description);
}
public async Task SendAsync(IDictionary<string, StringValues> httpHeaders, MessageAction action)
public async Task SendHeadersMessageAsync(MessageAction action, MessageTarget target, IDictionary<string, StringValues> httpHeaders, string d1)
{
await SendHeadersMessageAsync(null, httpHeaders, action, null);
await SendRequestHeadersMessageAsync(action, target, httpHeaders, d1);
}
public async Task SendAsync(IDictionary<string, StringValues> httpHeaders, MessageAction action, string d1)
public async Task SendHeadersMessageAsync(MessageAction action, MessageTarget target, IDictionary<string, StringValues> httpHeaders, IEnumerable<string> d1)
{
await SendHeadersMessageAsync(null, httpHeaders, action, null, d1);
await SendRequestHeadersMessageAsync(action, target, httpHeaders, d1?.ToArray());
}
public async Task SendAsync(IDictionary<string, StringValues> httpHeaders, MessageAction action, IEnumerable<string> d1)
{
await SendHeadersMessageAsync(null, httpHeaders, action, null, d1?.ToArray());
}
public async Task SendAsync(MessageUserData userData, IDictionary<string, StringValues> httpHeaders, MessageAction action, MessageTarget target)
{
await SendHeadersMessageAsync(userData, httpHeaders, action, target);
}
#endregion
#region HttpHeaders & Target
public async Task SendAsync(IDictionary<string, StringValues> httpHeaders, MessageAction action, MessageTarget target)
{
await SendHeadersMessageAsync(null, httpHeaders, action, target);
}
public async Task SendAsync(IDictionary<string, StringValues> httpHeaders, MessageAction action, MessageTarget target, string d1)
{
await SendHeadersMessageAsync(null, httpHeaders, action, target, d1);
}
public async Task SendAsync(IDictionary<string, StringValues> httpHeaders, MessageAction action, MessageTarget target, IEnumerable<string> d1)
{
await SendHeadersMessageAsync(null, httpHeaders, action, target, d1?.ToArray());
}
#endregion
private async Task SendHeadersMessageAsync(MessageUserData userData, IDictionary<string, StringValues> httpHeaders, MessageAction action, MessageTarget target, params string[] description)
private async Task SendRequestHeadersMessageAsync(MessageAction action, MessageTarget target = null, IDictionary<string, StringValues> httpHeaders = null, params string[] description)
{
if (_sender == null)
{
return;
}
var message = await _messageFactory.CreateAsync(userData, httpHeaders, action, target, description);
if (httpHeaders == null && _request != null)
{
httpHeaders = _request.Headers?.ToDictionary(k => k.Key, v => v.Value);
}
var message = await _messageFactory.CreateAsync(httpHeaders, action, target, description);
if (!_messagePolicy.Check(message))
{
return;
@ -298,6 +212,8 @@ public class MessageService
await _sender.SendAsync(message);
}
#endregion
#region Initiator
public async Task SendAsync(MessageInitiator initiator, MessageAction action, params string[] description)

View File

@ -626,7 +626,7 @@ public class FileStorageService //: IFileStorageService
_ = _quotaSocketManager.ChangeQuotaUsedValueAsync(name, value);
}
_ = _filesMessageService.SendAsync(folder, GetHttpHeaders(), isRoom ? MessageAction.RoomCreated : MessageAction.FolderCreated, folder.Title);
_ = _filesMessageService.SendAsync(isRoom ? MessageAction.RoomCreated : MessageAction.FolderCreated, folder, folder.Title);
return folder;
}
@ -668,11 +668,11 @@ public class FileStorageService //: IFileStorageService
if (DocSpaceHelper.IsRoom(folder.FolderType))
{
_ = _filesMessageService.SendAsync(folder, GetHttpHeaders(), oldTitle, MessageAction.RoomRenamed, folder.Title);
_ = _filesMessageService.SendAsync(MessageAction.RoomRenamed, oldTitle, folder, folder.Title);
}
else
{
_ = _filesMessageService.SendAsync(folder, GetHttpHeaders(), MessageAction.FolderRenamed, folder.Title);
_ = _filesMessageService.SendAsync(MessageAction.FolderRenamed, folder, folder.Title);
}
//if (!folder.ProviderEntry)
@ -969,7 +969,7 @@ public class FileStorageService //: IFileStorageService
}
}
_ = _filesMessageService.SendAsync(file, GetHttpHeaders(), MessageAction.FileCreated, file.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileCreated, file, file.Title);
await _fileMarker.MarkAsNewAsync(file);
@ -1063,7 +1063,7 @@ public class FileStorageService //: IFileStorageService
if (file != null)
{
_ = _filesMessageService.SendAsync(file, GetHttpHeaders(), MessageAction.FileUpdated, file.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileUpdated, file, file.Title);
}
return file;
@ -1095,7 +1095,7 @@ public class FileStorageService //: IFileStorageService
if (file != null)
{
_ = _filesMessageService.SendAsync(file, GetHttpHeaders(), MessageAction.FileUpdated, file.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileUpdated, file, file.Title);
}
return file;
@ -1173,7 +1173,7 @@ public class FileStorageService //: IFileStorageService
if (fileRename.Renamed)
{
_ = _filesMessageService.SendAsync(file, GetHttpHeaders(), MessageAction.FileRenamed, file.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileRenamed, file, file.Title);
//if (!file.ProviderEntry)
//{
@ -1215,7 +1215,7 @@ public class FileStorageService //: IFileStorageService
public async Task<KeyValuePair<File<T>, IAsyncEnumerable<File<T>>>> UpdateToVersionAsync<T>(T fileId, int version)
{
var file = await _entryManager.UpdateToVersionFileAsync(fileId, version);
_ = _filesMessageService.SendAsync(file, GetHttpHeaders(), MessageAction.FileRestoreVersion, file.Title, version.ToString(CultureInfo.InvariantCulture));
_ = _filesMessageService.SendAsync(MessageAction.FileRestoreVersion, file, file.Title, version.ToString(CultureInfo.InvariantCulture));
if (file.RootFolderType == FolderType.USER
&& !Equals(file.RootCreateBy, _authContext.CurrentAccount.ID))
@ -1241,7 +1241,7 @@ public class FileStorageService //: IFileStorageService
comment = await fileDao.UpdateCommentAsync(fileId, version, comment);
_ = _filesMessageService.SendAsync(file, GetHttpHeaders(), MessageAction.FileUpdatedRevisionComment, file.Title, version.ToString(CultureInfo.InvariantCulture));
_ = _filesMessageService.SendAsync(MessageAction.FileUpdatedRevisionComment, file, file.Title, version.ToString(CultureInfo.InvariantCulture));
return comment;
}
@ -1250,8 +1250,9 @@ public class FileStorageService //: IFileStorageService
{
var file = await _entryManager.CompleteVersionFileAsync(fileId, version, continueVersion);
_ = _filesMessageService.SendAsync(file, GetHttpHeaders(),
_ = _filesMessageService.SendAsync(
continueVersion ? MessageAction.FileDeletedVersion : MessageAction.FileCreatedVersion,
file,
file.Title, version == 0 ? (file.Version - 1).ToString(CultureInfo.InvariantCulture) : version.ToString(CultureInfo.InvariantCulture));
if (file.RootFolderType == FolderType.USER
@ -1299,7 +1300,7 @@ public class FileStorageService //: IFileStorageService
await _documentServiceHelper.DropUserAsync(docKey, usersDrop, file.Id);
}
_ = _filesMessageService.SendAsync(file, GetHttpHeaders(), MessageAction.FileLocked, file.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileLocked, file, file.Title);
}
else
{
@ -1307,7 +1308,7 @@ public class FileStorageService //: IFileStorageService
{
await tagDao.RemoveTags(tagLocked);
_ = _filesMessageService.SendAsync(file, GetHttpHeaders(), MessageAction.FileUnlocked, file.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileUnlocked, file, file.Title);
}
if (!file.ProviderEntry)
@ -1457,7 +1458,7 @@ public class FileStorageService //: IFileStorageService
file = await _entryManager.SaveEditingAsync(fileId, null, url, null, doc, string.Format(FilesCommonResource.CommentRevertChanges, modifiedOnString));
}
_ = _filesMessageService.SendAsync(file, GetHttpHeaders(), MessageAction.FileRestoreVersion, file.Title, version.ToString(CultureInfo.InvariantCulture));
_ = _filesMessageService.SendAsync(MessageAction.FileRestoreVersion, file, file.Title, version.ToString(CultureInfo.InvariantCulture));
await foreach (var f in GetFileDao<T>().GetEditHistoryAsync(_documentServiceHelper, file.Id))
{
@ -1810,7 +1811,7 @@ public class FileStorageService //: IFileStorageService
var folder = await folderDao1.GetFolderAsync(provider.RootFolderId);
ErrorIf(!await _fileSecurity.CanReadAsync(folder), FilesCommonResource.ErrorMassage_SecurityException_ViewFolder);
_ = _filesMessageService.SendAsync(parentFolder, GetHttpHeaders(), messageAction, folder.Id, provider.ProviderKey);
_ = _filesMessageService.SendAsync(messageAction, parentFolder, folder.Id, provider.ProviderKey);
if (thirdPartyParams.Corporate && lostFolderType != FolderType.COMMON)
{
@ -1876,7 +1877,7 @@ public class FileStorageService //: IFileStorageService
var folderDao1 = GetFolderDao<string>();
var folder = await folderDao1.GetFolderAsync(provider.RootFolderId);
await _filesMessageService.SendAsync(GetHttpHeaders(), messageAction, folder.Id, provider.ProviderKey);
await _filesMessageService.SendAsync(messageAction, folder.Id, provider.ProviderKey);
return folder;
}
@ -1901,7 +1902,7 @@ public class FileStorageService //: IFileStorageService
}
await providerDao.RemoveProviderInfoAsync(folder.ProviderId);
_ = _filesMessageService.SendAsync(folder, GetHttpHeaders(), MessageAction.ThirdPartyDeleted, folder.Id, providerInfo.ProviderKey);
_ = _filesMessageService.SendAsync(MessageAction.ThirdPartyDeleted, folder, folder.Id, providerInfo.ProviderKey);
return folder.Id;
}
@ -1911,7 +1912,7 @@ public class FileStorageService //: IFileStorageService
ErrorIf(!await _global.IsDocSpaceAdministratorAsync, FilesCommonResource.ErrorMassage_SecurityException);
_filesSettingsHelper.EnableThirdParty = enable;
await _messageService.SendAsync(GetHttpHeaders(), MessageAction.DocumentsThirdPartySettingsUpdated);
await _messageService.SendHeadersMessageAsync(MessageAction.DocumentsThirdPartySettingsUpdated);
return _filesSettingsHelper.EnableThirdParty;
}
@ -1943,7 +1944,7 @@ public class FileStorageService //: IFileStorageService
|| !_filesSettingsHelper.EnableThirdParty
|| !_thirdpartyConfiguration.SupportDocuSignInclusion, FilesCommonResource.ErrorMassage_SecurityException_Create);
return await _docuSignHelper.SendDocuSignAsync(fileId, docuSignData, GetHttpHeaders());
return await _docuSignHelper.SendDocuSignAsync(fileId, docuSignData);
}
catch (Exception e)
{
@ -2420,7 +2421,7 @@ public class FileStorageService //: IFileStorageService
foreach (var entry in entries)
{
_ = _filesMessageService.SendAsync(entry, MessageAction.FileMarkedAsFavorite, entry.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileMarkedAsFavorite, entry, entry.Title);
}
return entries;
@ -2448,7 +2449,7 @@ public class FileStorageService //: IFileStorageService
foreach (var entry in entries)
{
_ = _filesMessageService.SendAsync(entry, MessageAction.FileRemovedFromFavorite, entry.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileRemovedFromFavorite, entry, entry.Title);
}
return entries;
@ -2594,21 +2595,22 @@ public class FileStorageService //: IFileStorageService
switch (e.EventType)
{
case EventType.Create:
_ = _filesMessageService.SendAsync(entry, GetHttpHeaders(), MessageAction.RoomCreateUser, user.Id, name, GetAccessString(access));
_ = _filesMessageService.SendAsync(MessageAction.RoomCreateUser, entry, user.Id, name, GetAccessString(access));
break;
case EventType.Remove:
_ = _filesMessageService.SendAsync(entry, GetHttpHeaders(), MessageAction.RoomRemoveUser, user.Id, name, GetAccessString(access));
_ = _filesMessageService.SendAsync(MessageAction.RoomRemoveUser, entry, user.Id, name, GetAccessString(access));
break;
case EventType.Update:
_ = _filesMessageService.SendAsync(entry, GetHttpHeaders(), MessageAction.RoomUpdateAccessForUser, access, user.Id, name);
_ = _filesMessageService.SendAsync(MessageAction.RoomUpdateAccessForUser, entry, user.Id, access, name);
break;
}
}
else
{
_ = _filesMessageService.SendAsync(entry, GetHttpHeaders(),
_ = _filesMessageService.SendAsync(
entry.FileEntryType == FileEntryType.Folder ? MessageAction.FolderUpdatedAccessFor : MessageAction.FileUpdatedAccessFor,
entry,
entry.Title, name, GetAccessString(access));
}
}
@ -2630,13 +2632,11 @@ public class FileStorageService //: IFileStorageService
var fileDao = GetFileDao<T>();
var folderDao = GetFolderDao<T>();
var headers = GetHttpHeaders();
foreach (var fileId in filesId)
{
var entry = await fileDao.GetFileAsync(fileId);
await _fileSharingAceHelper.RemoveAceAsync(entry);
_ = _filesMessageService.SendAsync(entry, headers, MessageAction.FileRemovedFromList, entry.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileRemovedFromList, entry, entry.Title);
}
@ -2644,7 +2644,7 @@ public class FileStorageService //: IFileStorageService
{
var entry = await folderDao.GetFolderAsync(folderId);
await _fileSharingAceHelper.RemoveAceAsync(entry);
_ = _filesMessageService.SendAsync(entry, headers, MessageAction.FolderRemovedFromList, entry.Title);
_ = _filesMessageService.SendAsync(MessageAction.FolderRemovedFromList, entry, entry.Title);
}
}
@ -2704,7 +2704,7 @@ public class FileStorageService //: IFileStorageService
var (changed, _) = await _fileSharingAceHelper.SetAceObjectAsync(aces, file, false, null, null);
if (changed)
{
_ = _filesMessageService.SendAsync(file, GetHttpHeaders(), MessageAction.FileExternalLinkAccessUpdated, file.Title, GetAccessString(share));
_ = _filesMessageService.SendAsync(MessageAction.FileExternalLinkAccessUpdated, file, file.Title, GetAccessString(share));
}
}
catch (Exception e)
@ -2943,7 +2943,7 @@ public class FileStorageService //: IFileStorageService
_filesSettingsHelper.ExternalShareSocialMedia = false;
}
await _messageService.SendAsync(GetHttpHeaders(), MessageAction.DocumentsExternalShareSettingsUpdated);
await _messageService.SendHeadersMessageAsync(MessageAction.DocumentsExternalShareSettingsUpdated);
return _filesSettingsHelper.ExternalShare;
}
@ -2954,7 +2954,7 @@ public class FileStorageService //: IFileStorageService
_filesSettingsHelper.ExternalShareSocialMedia = _filesSettingsHelper.ExternalShare && enable;
await _messageService.SendAsync(GetHttpHeaders(), MessageAction.DocumentsExternalShareSettingsUpdated);
await _messageService.SendHeadersMessageAsync(MessageAction.DocumentsExternalShareSettingsUpdated);
return _filesSettingsHelper.ExternalShareSocialMedia;
}
@ -3041,7 +3041,7 @@ public class FileStorageService //: IFileStorageService
await _socketManager.CreateFolderAsync(newFolder);
await _entryStatusManager.SetIsFavoriteFolderAsync(folder);
_ = _filesMessageService.SendAsync(newFolder, GetHttpHeaders(), MessageAction.FileChangeOwner, new[] { newFolder.Title, userInfo.DisplayUserName(false, _displayUserSettingsHelper) });
_ = _filesMessageService.SendAsync(MessageAction.FileChangeOwner, newFolder, new[] { newFolder.Title, userInfo.DisplayUserName(false, _displayUserSettingsHelper) });
}
yield return newFolder;
@ -3103,7 +3103,7 @@ public class FileStorageService //: IFileStorageService
await _entryStatusManager.SetFileStatusAsync(newFile);
_ = _filesMessageService.SendAsync(newFile, GetHttpHeaders(), MessageAction.FileChangeOwner, new[] { newFile.Title, userInfo.DisplayUserName(false, _displayUserSettingsHelper) });
_ = _filesMessageService.SendAsync(MessageAction.FileChangeOwner, newFile, new[] { newFile.Title, userInfo.DisplayUserName(false, _displayUserSettingsHelper) });
}
yield return newFile;
}
@ -3112,7 +3112,7 @@ public class FileStorageService //: IFileStorageService
public async Task<bool> StoreOriginalAsync(bool set)
{
_filesSettingsHelper.StoreOriginalFiles = set;
await _messageService.SendAsync(GetHttpHeaders(), MessageAction.DocumentsUploadingFormatsSettingsUpdated);
await _messageService.SendHeadersMessageAsync(MessageAction.DocumentsUploadingFormatsSettingsUpdated);
return _filesSettingsHelper.StoreOriginalFiles;
}
@ -3120,7 +3120,7 @@ public class FileStorageService //: IFileStorageService
public async Task<bool> KeepNewFileNameAsync(bool set)
{
_filesSettingsHelper.KeepNewFileName = set;
await _messageService.SendAsync(GetHttpHeaders(), MessageAction.DocumentsKeepNewFileNameSettingsUpdated);
await _messageService.SendHeadersMessageAsync(MessageAction.DocumentsKeepNewFileNameSettingsUpdated);
return _filesSettingsHelper.KeepNewFileName;
}
@ -3144,7 +3144,7 @@ public class FileStorageService //: IFileStorageService
ErrorIf(await _userManager.IsUserAsync(_authContext.CurrentAccount.ID), FilesCommonResource.ErrorMassage_SecurityException);
_filesSettingsHelper.UpdateIfExist = set;
await _messageService.SendAsync(GetHttpHeaders(), MessageAction.DocumentsOverwritingSettingsUpdated);
await _messageService.SendHeadersMessageAsync(MessageAction.DocumentsOverwritingSettingsUpdated);
return _filesSettingsHelper.UpdateIfExist;
}
@ -3152,7 +3152,7 @@ public class FileStorageService //: IFileStorageService
public async Task<bool> ForcesaveAsync(bool set)
{
_filesSettingsHelper.Forcesave = set;
await _messageService.SendAsync(GetHttpHeaders(), MessageAction.DocumentsForcesave);
await _messageService.SendHeadersMessageAsync(MessageAction.DocumentsForcesave);
return _filesSettingsHelper.Forcesave;
}
@ -3162,7 +3162,7 @@ public class FileStorageService //: IFileStorageService
ErrorIf(!await _global.IsDocSpaceAdministratorAsync, FilesCommonResource.ErrorMassage_SecurityException);
_filesSettingsHelper.StoreForcesave = set;
await _messageService.SendAsync(GetHttpHeaders(), MessageAction.DocumentsStoreForcesave);
await _messageService.SendHeadersMessageAsync(MessageAction.DocumentsStoreForcesave);
return _filesSettingsHelper.StoreForcesave;
}
@ -3501,7 +3501,7 @@ public class FileStorageService //: IFileStorageService
if (changed)
{
_ = _filesMessageService.SendAsync(entry, GetHttpHeaders(), messageActions[action], entry.Title, GetAccessString(share));
_ = _filesMessageService.SendAsync(messageActions[action], entry, entry.Title, GetAccessString(share));
}
}
catch (Exception e)

View File

@ -33,7 +33,6 @@ public class CustomTagsService
private readonly FileSecurity _fileSecurity;
private readonly AuthContext _authContext;
private readonly FilesMessageService _filesMessageService;
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly UserManager _userManager;
public CustomTagsService(
@ -41,19 +40,15 @@ public class CustomTagsService
FileSecurity fileSecurity,
AuthContext authContext,
FilesMessageService filesMessageService,
IHttpContextAccessor httpContextAccessor,
UserManager userManager)
{
_daoFactory = daoFactory;
_fileSecurity = fileSecurity;
_authContext = authContext;
_filesMessageService = filesMessageService;
_httpContextAccessor = httpContextAccessor;
_userManager = userManager;
}
private IDictionary<string, StringValues> Headers => _httpContextAccessor?.HttpContext?.Request?.Headers;
public async Task<string> CreateTagAsync(string name)
{
if (await _userManager.IsUserAsync(_authContext.CurrentAccount.ID))
@ -80,7 +75,7 @@ public class CustomTagsService
var savedTag = await tagDao.SaveTagInfoAsync(tagInfo);
await _filesMessageService.SendAsync(Headers, MessageAction.TagCreated, savedTag.Name);
await _filesMessageService.SendAsync(MessageAction.TagCreated, savedTag.Name);
return savedTag.Name;
}
@ -103,7 +98,7 @@ public class CustomTagsService
await tagDao.RemoveTagsAsync(tags.Select(t => t.Id));
await _filesMessageService.SendAsync(Headers, MessageAction.TagsDeleted, string.Join(',', tags.Select(t => t.Name).ToArray()));
await _filesMessageService.SendAsync(MessageAction.TagsDeleted, string.Join(',', tags.Select(t => t.Name).ToArray()));
}
public async Task<Folder<T>> AddRoomTagsAsync<T>(T folderId, IEnumerable<string> names)
@ -128,7 +123,7 @@ public class CustomTagsService
await tagDao.SaveTags(tags);
_ = _filesMessageService.SendAsync(folder, Headers, MessageAction.AddedRoomTags, folder.Title, string.Join(',', tagsInfos.Select(t => t.Name)));
_ = _filesMessageService.SendAsync(MessageAction.AddedRoomTags, folder, folder.Title, string.Join(',', tagsInfos.Select(t => t.Name)));
return folder;
}
@ -153,7 +148,7 @@ public class CustomTagsService
await tagDao.RemoveTagsAsync(folder, tagsInfos.Select(t => t.Id));
_ = _filesMessageService.SendAsync(folder, Headers, MessageAction.DeletedRoomTags, folder.Title, string.Join(',', tagsInfos.Select(t => t.Name)));
_ = _filesMessageService.SendAsync(MessageAction.DeletedRoomTags, folder, folder.Title, string.Join(',', tagsInfos.Select(t => t.Name)));
return folder;
}

View File

@ -47,7 +47,6 @@ public class RoomLogoManager
private readonly TenantManager _tenantManager;
private IDataStore _dataStore;
private readonly FilesMessageService _filesMessageService;
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly EmailValidationKeyProvider _emailValidationKeyProvider;
private readonly SecurityContext _securityContext;
private readonly FileUtilityConfiguration _fileUtilityConfiguration;
@ -59,7 +58,6 @@ public class RoomLogoManager
FileSecurity fileSecurity,
ILogger<RoomLogoManager> logger,
FilesMessageService filesMessageService,
IHttpContextAccessor httpContextAccessor,
EmailValidationKeyProvider emailValidationKeyProvider,
SecurityContext securityContext,
FileUtilityConfiguration fileUtilityConfiguration)
@ -70,7 +68,6 @@ public class RoomLogoManager
_fileSecurity = fileSecurity;
_logger = logger;
_filesMessageService = filesMessageService;
_httpContextAccessor = httpContextAccessor;
_emailValidationKeyProvider = emailValidationKeyProvider;
_securityContext = securityContext;
_fileUtilityConfiguration = fileUtilityConfiguration;
@ -78,7 +75,6 @@ public class RoomLogoManager
public bool EnableAudit { get; set; } = true;
private int TenantId => _tenantManager.GetCurrentTenant().Id;
private IDictionary<string, StringValues> Headers => _httpContextAccessor?.HttpContext?.Request.Headers;
private async ValueTask<IDataStore> GetDataStoreAsync()
{
@ -126,7 +122,7 @@ public class RoomLogoManager
if (EnableAudit)
{
_ = _filesMessageService.SendAsync(room, Headers, MessageAction.RoomLogoCreated, room.Title);
_ = _filesMessageService.SendAsync(MessageAction.RoomLogoCreated, room, room.Title);
}
return room;
@ -160,7 +156,7 @@ public class RoomLogoManager
if (EnableAudit)
{
_ = _filesMessageService.SendAsync(room, Headers, MessageAction.RoomLogoDeleted, room.Title);
_ = _filesMessageService.SendAsync(MessageAction.RoomLogoDeleted, room, room.Title);
}
}
catch (Exception e)

View File

@ -173,7 +173,7 @@ public class DocuSignHelper
return true;
}
public async Task<string> SendDocuSignAsync<T>(T fileId, DocuSignData docuSignData, IDictionary<string, StringValues> requestHeaders)
public async Task<string> SendDocuSignAsync<T>(T fileId, DocuSignData docuSignData)
{
ArgumentNullException.ThrowIfNull(docuSignData);
@ -185,7 +185,7 @@ public class DocuSignHelper
var url = await CreateEnvelopeAsync(account.AccountId, document, docuSignData, apiClient);
_ = _filesMessageService.SendAsync(sourceFile, requestHeaders, MessageAction.DocumentSendToSign, "DocuSign", sourceFile.Title);
_ = _filesMessageService.SendAsync(MessageAction.DocumentSendToSign, sourceFile, "DocuSign", sourceFile.Title);
return url;
}
@ -307,8 +307,8 @@ public class DocuSignHelper
_logger.DebugDocuSingHookUrl(eventNotification.Url);
var signers = new List<Signer>();
foreach(var uid in docuSignData.Users)
foreach (var uid in docuSignData.Users)
{
try
{
@ -406,7 +406,7 @@ public class DocuSignHelper
file = await fileDao.SaveFileAsync(file, stream);
}
_ = _filesMessageService.SendAsync(file, MessageInitiator.ThirdPartyProvider, MessageAction.DocumentSignComplete, "DocuSign", file.Title);
_ = _filesMessageService.SendAsync(MessageAction.DocumentSignComplete, file, MessageInitiator.ThirdPartyProvider, "DocuSign", file.Title);
await _fileMarker.MarkAsNewAsync(file);

View File

@ -34,23 +34,17 @@ public class FilesMessageService
private readonly MessageService _messageService;
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly IDaoFactory _daoFactory;
private readonly NotifyClient _notifyClient;
private readonly AuthContext _authContext;
public FilesMessageService(
ILoggerProvider options,
MessageTarget messageTarget,
MessageService messageService,
IDaoFactory daoFactory,
NotifyClient notifyClient,
AuthContext authContext)
IDaoFactory daoFactory)
{
_logger = options.CreateLogger("ASC.Messaging");
_messageTarget = messageTarget;
_messageService = messageService;
_daoFactory = daoFactory;
_notifyClient = notifyClient;
_authContext = authContext;
}
public FilesMessageService(
@ -58,52 +52,44 @@ public class FilesMessageService
MessageTarget messageTarget,
MessageService messageService,
IHttpContextAccessor httpContextAccessor,
IDaoFactory daoFactory,
NotifyClient notifyClient,
AuthContext authContext)
: this(options, messageTarget, messageService, daoFactory, notifyClient, authContext)
IDaoFactory daoFactory)
: this(options, messageTarget, messageService, daoFactory)
{
_httpContextAccessor = httpContextAccessor;
}
public async Task SendAsync(IDictionary<string, StringValues> headers, MessageAction action, params string[] description)
public async Task SendAsync(MessageAction action, params string[] description)
{
await SendHeadersMessageAsync(headers, action, null, description);
await _messageService.SendHeadersMessageAsync(action, description);
}
public async Task SendAsync<T>(FileEntry<T> entry, IDictionary<string, StringValues> headers, MessageAction action, params string[] description)
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, IDictionary<string, StringValues> headers, params string[] description)
{
await SendAsync(entry, headers, action, null, FileShare.None, Guid.Empty, description);
await SendAsync(action, entry, headers, null, Guid.Empty, FileShare.None, description);
}
public async Task SendAsync<T>(FileEntry<T> entry, IDictionary<string, StringValues> headers, List<AceWrapper> aces, MessageAction action, params string[] description)
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, params string[] description)
{
if (action == MessageAction.RoomDeleted)
{
var userId = _authContext.CurrentAccount.ID;
await _notifyClient.SendRoomRemovedAsync(entry, aces, userId);
}
await SendAsync(entry, headers, action, null, FileShare.None, Guid.Empty, description);
await SendAsync(action, entry, null, Guid.Empty, FileShare.None, description);
}
public async Task SendAsync<T>(FileEntry<T> entry, IDictionary<string, StringValues> headers, string oldTitle, MessageAction action, params string[] description)
public async Task SendAsync<T>(MessageAction action, string oldTitle, FileEntry<T> entry, params string[] description)
{
await SendAsync(entry, headers, action, oldTitle, FileShare.None, Guid.Empty, description);
await SendAsync(action, entry, oldTitle, description: description);
}
public async Task SendAsync<T>(FileEntry<T> entry, IDictionary<string, StringValues> headers, MessageAction action, Guid userId, params string[] description)
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, Guid userId, params string[] description)
{
await SendAsync(entry, headers, action, null, FileShare.None, userId, description);
await SendAsync(action, entry, null, userId, FileShare.None, description);
}
public async Task SendAsync<T>(FileEntry<T> entry, IDictionary<string, StringValues> headers, MessageAction action, FileShare userRole, Guid userId, params string[] description)
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, Guid userId, FileShare userRole, params string[] description)
{
description = description.Append(FileStorageService.GetAccessString(userRole)).ToArray();
await SendAsync(entry, headers, action, null, userRole, userId, description);
await SendAsync(action, entry, null, userId, userRole, description);
}
private async Task SendAsync<T>(FileEntry<T> entry, IDictionary<string, StringValues> headers, MessageAction action, string oldTitle, FileShare userRole, Guid userId, params string[] description)
private async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, IDictionary<string, StringValues> headers, string oldTitle = null, Guid userId = default(Guid), FileShare userRole = FileShare.None, params string[] description)
{
if (entry == null)
{
@ -117,10 +103,34 @@ public class FilesMessageService
description = description.Append(additionalParam).ToArray();
}
await SendHeadersMessageAsync(headers, action, _messageTarget.Create(entry.Id), description);
if (headers == null)//todo check need if
{
_logger.DebugEmptyRequestHeaders(action);
return;
}
await _messageService.SendHeadersMessageAsync(action, _messageTarget.Create(entry.Id), headers, description);
}
public async Task SendAsync<T1, T2>(FileEntry<T1> entry1, FileEntry<T2> entry2, IDictionary<string, StringValues> headers, MessageAction action, params string[] description)
private async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, string oldTitle = null, Guid userId = default(Guid), FileShare userRole = FileShare.None, params string[] description)
{
if (entry == null)
{
return;
}
var additionalParam = await GetAdditionalNotificationParamAsync(entry, action, oldTitle, userId, userRole);
if (additionalParam != "")
{
description = description.Append(additionalParam).ToArray();
}
await _messageService.SendAsync(action, _messageTarget.Create(entry.Id), description);
}
public async Task SendAsync<T1, T2>(MessageAction action, FileEntry<T1> entry1, FileEntry<T2> entry2, IDictionary<string, StringValues> headers, params string[] description)
{
if (entry1 == null || entry2 == null)
{
@ -134,11 +144,6 @@ public class FilesMessageService
description = description.Append(additionalParams).ToArray();
}
await SendHeadersMessageAsync(headers, action, _messageTarget.CreateFromGroupValues(new[] { entry1.Id.ToString(), entry2.Id.ToString() }), description);
}
private async Task SendHeadersMessageAsync(IDictionary<string, StringValues> headers, MessageAction action, MessageTarget target, params string[] description)
{
if (headers == null)//todo check need if
{
_logger.DebugEmptyRequestHeaders(action);
@ -146,10 +151,10 @@ public class FilesMessageService
return;
}
await _messageService.SendAsync(headers, action, target, description);
await _messageService.SendHeadersMessageAsync(action, _messageTarget.CreateFromGroupValues(new[] { entry1.Id.ToString(), entry2.Id.ToString() }), headers, description);
}
public async Task SendAsync<T>(FileEntry<T> entry, MessageAction action, string description)
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, string description)
{
if (entry == null)
{
@ -175,7 +180,7 @@ public class FilesMessageService
}
}
public async Task SendAsync<T>(FileEntry<T> entry, MessageAction action, string d1, string d2)
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, string d1, string d2)
{
if (entry == null)
{
@ -191,7 +196,7 @@ public class FilesMessageService
await _messageService.SendAsync(action, _messageTarget.Create(entry.Id), d1, d2);
}
public async Task SendAsync<T>(FileEntry<T> entry, MessageInitiator initiator, MessageAction action, params string[] description)
public async Task SendAsync<T>(MessageAction action, FileEntry<T> entry, MessageInitiator initiator, params string[] description)
{
if (entry == null)
{

View File

@ -144,7 +144,7 @@ public class ChunkedUploaderHandlerService
if (resumedSession.BytesUploaded == resumedSession.BytesTotal)
{
await WriteSuccess(context, await ToResponseObject(resumedSession.File), (int)HttpStatusCode.Created);
_ = _filesMessageService.SendAsync(resumedSession.File, MessageAction.FileUploaded, resumedSession.File.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileUploaded, resumedSession.File, resumedSession.File.Title);
await _socketManager.CreateFileAsync(resumedSession.File);
}

View File

@ -116,7 +116,7 @@ public class FileHandlerService
InstanceCrypto instanceCrypto,
IHttpClientFactory clientFactory,
ThumbnailSettings thumbnailSettings,
ExternalLinkHelper externalLinkHelper,
ExternalLinkHelper externalLinkHelper,
ExternalShare externalShare)
{
_filesLinkUtility = filesLinkUtility;
@ -255,7 +255,7 @@ public class FileHandlerService
{
path = string.Format(@"{0}\{1}", _securityContext.CurrentAccount.ID, filename);
}
var store = await _globalStore.GetStoreAsync();
if (!await store.IsFileAsync(FileConstant.StorageDomainTmp, path))
@ -349,7 +349,7 @@ public class FileHandlerService
{
var linkId = await _externalShare.GetLinkIdAsync();
if (!(_fileUtility.CanImageView(file.Title) || _fileUtility.CanMediaView(file.Title) || FileUtility.GetFileExtension(file.Title) == ".pdf") ||
if (!(_fileUtility.CanImageView(file.Title) || _fileUtility.CanMediaView(file.Title) || FileUtility.GetFileExtension(file.Title) == ".pdf") ||
linkId == default || !await _fileSecurity.CanReadAsync(file, linkId))
{
context.Response.StatusCode = (int)HttpStatusCode.Forbidden;
@ -390,17 +390,17 @@ public class FileHandlerService
{
if (forView)
{
_ = _filesMessageService.SendAsync(file, MessageAction.FileReaded, file.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileReaded, file, file.Title);
}
else
{
if (version == 0)
{
_ = _filesMessageService.SendAsync(file, MessageAction.FileDownloaded, file.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileDownloaded, file, file.Title);
}
else
{
await _filesMessageService.SendAsync(file, MessageAction.FileRevisionDownloaded, file.Title, file.Version.ToString());
await _filesMessageService.SendAsync(MessageAction.FileRevisionDownloaded, file, file.Title, file.Version.ToString());
}
}
}
@ -685,7 +685,7 @@ public class FileHandlerService
{
(linkRight, file) = await _fileShareLink.CheckAsync(doc, fileDao);
}
if (linkRight == FileShare.Restrict && !_securityContext.IsAuthenticated)
{
var auth = context.Request.Query[FilesLinkUtility.AuthKey];

View File

@ -454,7 +454,7 @@ public class DocumentServiceTrackerHelper
{
if (user != null)
{
_ = _filesMessageService.SendAsync(file, MessageInitiator.DocsService, MessageAction.UserFileUpdated, user.DisplayUserName(false, _displayUserSettingsHelper), file.Title);
_ = _filesMessageService.SendAsync(MessageAction.UserFileUpdated, file, MessageInitiator.DocsService, user.DisplayUserName(false, _displayUserSettingsHelper), file.Title);
}
if (!forcesave)

View File

@ -33,7 +33,7 @@ internal class FileDeleteOperationData<T> : FileOperationData<T>
public IDictionary<string, StringValues> Headers { get; }
public bool IsEmptyTrash { get; }
public FileDeleteOperationData(IEnumerable<T> folders, IEnumerable<T> files, Tenant tenant, ExternalShareData externalShareData, bool holdResult = true,
public FileDeleteOperationData(IEnumerable<T> folders, IEnumerable<T> files, Tenant tenant, ExternalShareData externalShareData, bool holdResult = true,
bool ignoreException = false, bool immediately = false, IDictionary<string, StringValues> headers = null, bool isEmptyTrash = false)
: base(folders, files, tenant, externalShareData, holdResult)
{
@ -81,10 +81,10 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
var filesMessageService = scope.ServiceProvider.GetService<FilesMessageService>();
var tenantManager = scope.ServiceProvider.GetService<TenantManager>();
tenantManager.SetCurrentTenant(CurrentTenant);
var externalShare = scope.ServiceProvider.GetRequiredService<ExternalShare>();
externalShare.SetCurrentShareData(CurrentShareData);
_trashId = await folderDao.GetFolderIDTrashAsync(true);
Folder<T> root = null;
@ -104,9 +104,9 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
{
await DeleteFilesAsync(Files, scope);
await DeleteFoldersAsync(Folders, scope);
var trash = await folderDao.GetFolderAsync(_trashId);
_ = filesMessageService.SendAsync(trash, _headers, MessageAction.TrashEmptied);
_ = filesMessageService.SendAsync(MessageAction.TrashEmptied, trash, _headers);
}
else
{
@ -120,7 +120,11 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
var scopeClass = scope.ServiceProvider.GetService<FileDeleteOperationScope>();
var socketManager = scope.ServiceProvider.GetService<SocketManager>();
var fileSharing = scope.ServiceProvider.GetService<FileSharing>();
var authContext = scope.ServiceProvider.GetService<AuthContext>();
var notifyClient = scope.ServiceProvider.GetService<NotifyClient>();
var (fileMarker, filesMessageService, roomLogoManager) = scopeClass;
foreach (var folderId in folderIds)
{
CancellationToken.ThrowIfCancellationRequested();
@ -170,7 +174,7 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
await ProviderDao.RemoveProviderInfoAsync(folder.ProviderId);
if (isNeedSendActions)
{
_ = filesMessageService.SendAsync(folder, _headers, MessageAction.ThirdPartyDeleted, folder.Id.ToString(), folder.ProviderKey);
_ = filesMessageService.SendAsync(MessageAction.ThirdPartyDeleted, folder, _headers, folder.Id.ToString(), folder.ProviderKey);
}
}
@ -209,11 +213,12 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
if (isRoom)
{
_ = filesMessageService.SendAsync(folder, _headers, aces, MessageAction.RoomDeleted, folder.Title);
await notifyClient.SendRoomRemovedAsync(folder, aces, authContext.CurrentAccount.ID);
_ = filesMessageService.SendAsync(MessageAction.RoomDeleted, folder, _headers, folder.Title);
}
else
{
_ = filesMessageService.SendAsync(folder, _headers, MessageAction.FolderDeleted, folder.Title);
_ = filesMessageService.SendAsync(MessageAction.FolderDeleted, folder, _headers, folder.Title);
}
ProcessedFolder(folderId);
@ -253,11 +258,12 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
{
if (isRoom)
{
_ = filesMessageService.SendAsync(folder, _headers, aces, MessageAction.RoomDeleted, folder.Title);
await notifyClient.SendRoomRemovedAsync(folder, aces, authContext.CurrentAccount.ID);
_ = filesMessageService.SendAsync(MessageAction.RoomDeleted, folder, _headers, folder.Title);
}
else
else
{
_ = filesMessageService.SendAsync(folder, _headers,MessageAction.FolderDeleted, folder.Title);
_ = filesMessageService.SendAsync(MessageAction.FolderDeleted, folder, _headers, folder.Title);
}
}
}
@ -268,7 +274,7 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
if (isNeedSendActions)
{
_ = filesMessageService.SendAsync(folder, _headers, MessageAction.FolderMovedToTrash, folder.Title);
_ = filesMessageService.SendAsync(MessageAction.FolderMovedToTrash, folder, _headers, folder.Title);
}
}
@ -309,7 +315,7 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
await FileDao.MoveFileAsync(file.Id, _trashId);
if (isNeedSendActions)
{
_ = filesMessageService.SendAsync(file, _headers, MessageAction.FileMovedToTrash, file.Title);
_ = filesMessageService.SendAsync(MessageAction.FileMovedToTrash, file, _headers, file.Title);
}
if (file.ThumbnailStatus == Thumbnail.Waiting)
@ -330,12 +336,12 @@ class FileDeleteOperation<T> : FileOperation<FileDeleteOperationData<T>, T>
{
if (isNeedSendActions)
{
_ = filesMessageService.SendAsync(file, _headers, MessageAction.FileDeleted, file.Title);
_ = filesMessageService.SendAsync(MessageAction.FileDeleted, file, _headers, file.Title);
}
}
else
{
_ = filesMessageService.SendAsync(file, MessageInitiator.AutoCleanUp, MessageAction.FileDeleted, file.Title);
_ = filesMessageService.SendAsync(MessageAction.FileDeleted, file, MessageInitiator.AutoCleanUp, file.Title);
}
await socketManager.DeleteFileAsync(file);

View File

@ -31,7 +31,7 @@ internal class FileDownloadOperationData<T> : FileOperationData<T>
public Dictionary<T, string> FilesDownload { get; }
public IDictionary<string, StringValues> Headers { get; }
public FileDownloadOperationData(Dictionary<T, string> folders, Dictionary<T, string> files, Tenant tenant, IDictionary<string, StringValues> headers,
public FileDownloadOperationData(Dictionary<T, string> folders, Dictionary<T, string> files, Tenant tenant, IDictionary<string, StringValues> headers,
ExternalShareData externalShareData, bool holdResult = true)
: base(folders.Select(f => f.Key).ToList(), files.Select(f => f.Key).ToList(), tenant, externalShareData, holdResult)
{
@ -119,7 +119,7 @@ class FileDownloadOperation : ComposeFileOperation<FileDownloadOperationData<str
{
throw new SecurityException(FilesCommonResource.ErrorMassage_SecurityException);
}
path = string.Format(@"{0}\{1}\{2}", linkId, sessionId, fileName);
sessionKey = await externalShare.CreateDownloadSessionKeyAsync();
}
@ -135,7 +135,7 @@ class FileDownloadOperation : ComposeFileOperation<FileDownloadOperationData<str
stream,
MimeMapping.GetMimeMapping(path),
"attachment; filename=\"" + Uri.EscapeDataString(fileName) + "\"");
this[Res] = $"{filesLinkUtility.FileHandlerPath}?{FilesLinkUtility.Action}=bulk&filename={Uri.EscapeDataString(instanceCrypto.Encrypt(fileName))}";
if (!isAuthenticated)
@ -223,17 +223,17 @@ class FileDownloadOperation<T> : FileOperation<FileDownloadOperationData<T>, T>
var key = file.Id;
if (_files.ContainsKey(key) && !string.IsNullOrEmpty(_files[key]))
{
_ = filesMessageService.SendAsync(file, _headers, MessageAction.FileDownloadedAs, file.Title, _files[key]);
_ = filesMessageService.SendAsync(MessageAction.FileDownloadedAs, file, _headers, file.Title, _files[key]);
}
else
{
_ = filesMessageService.SendAsync(file, _headers, MessageAction.FileDownloaded, file.Title);
_ = filesMessageService.SendAsync(MessageAction.FileDownloaded, file, _headers, file.Title);
}
}
foreach (var folder in folderForSend)
{
_ = filesMessageService.SendAsync(folder, _headers, MessageAction.FolderDownloaded, folder.Title);
_ = filesMessageService.SendAsync(MessageAction.FolderDownloaded, folder, _headers, folder.Title);
}
}

View File

@ -30,7 +30,7 @@ class FileMarkAsReadOperationData<T> : FileOperationData<T>
{
public IDictionary<string, StringValues> Headers { get; }
public FileMarkAsReadOperationData(IEnumerable<T> folders, IEnumerable<T> files, Tenant tenant, IDictionary<string, StringValues> headers, ExternalShareData externalShareData,
public FileMarkAsReadOperationData(IEnumerable<T> folders, IEnumerable<T> files, Tenant tenant, IDictionary<string, StringValues> headers, ExternalShareData externalShareData,
bool holdResult = true) : base(folders, files, tenant, externalShareData, holdResult)
{
Headers = headers;
@ -87,12 +87,12 @@ class FileMarkAsReadOperation<T> : FileOperation<FileMarkAsReadOperationData<T>,
if (entry.FileEntryType == FileEntryType.File)
{
ProcessedFile(((File<T>)entry).Id);
_ = filesMessageService.SendAsync(entry, _headers, MessageAction.FileMarkedAsRead, entry.Title);
_ = filesMessageService.SendAsync(MessageAction.FileMarkedAsRead, entry, _headers, entry.Title);
}
else
{
ProcessedFolder(((Folder<T>)entry).Id);
_ = filesMessageService.SendAsync(entry, _headers, MessageAction.FolderMarkedAsRead, entry.Title);
_ = filesMessageService.SendAsync(MessageAction.FolderMarkedAsRead, entry, _headers, entry.Title);
}
ProgressStep();

View File

@ -343,7 +343,7 @@ class FileMoveCopyOperation<T> : FileOperation<FileMoveCopyOperationData<T>, T>
else
{
newFolder = await FolderDao.CopyFolderAsync(folder.Id, toFolderId, CancellationToken);
_ = filesMessageService.SendAsync(newFolder, toFolder, _headers, MessageAction.FolderCopied, newFolder.Title, toFolder.Title);
_ = filesMessageService.SendAsync(MessageAction.FolderCopied, newFolder, toFolder, _headers, newFolder.Title, toFolder.Title);
if (isToFolder)
{
@ -390,7 +390,7 @@ class FileMoveCopyOperation<T> : FileOperation<FileMoveCopyOperationData<T>, T>
{
newFolder = await FolderDao.CopyFolderAsync(folder.Id, toFolderId, CancellationToken);
newFolderId = newFolder.Id;
_ = filesMessageService.SendAsync(newFolder, toFolder, _headers, MessageAction.FolderCopiedWithOverwriting, newFolder.Title, toFolder.Title);
_ = filesMessageService.SendAsync(MessageAction.FolderCopiedWithOverwriting, newFolder, toFolder, _headers, newFolder.Title, toFolder.Title);
if (isToFolder)
{
@ -416,7 +416,7 @@ class FileMoveCopyOperation<T> : FileOperation<FileMoveCopyOperationData<T>, T>
newFolderId = await FolderDao.MoveFolderAsync(folder.Id, toFolderId, CancellationToken);
newFolder = await folderDao.GetFolderAsync(newFolderId);
_ = filesMessageService.SendAsync(folder, toFolder, _headers, MessageAction.FolderMovedWithOverwriting, folder.Title, toFolder.Title);
_ = filesMessageService.SendAsync(MessageAction.FolderMovedWithOverwriting, folder, toFolder, _headers, folder.Title, toFolder.Title);
if (isToFolder)
{
@ -499,16 +499,16 @@ class FileMoveCopyOperation<T> : FileOperation<FileMoveCopyOperationData<T>, T>
await TagDao.RemoveTags(pins);
}
_ = filesMessageService.SendAsync(folder, _headers, MessageAction.RoomArchived, folder.Title);
_ = filesMessageService.SendAsync(MessageAction.RoomArchived, folder, _headers, folder.Title);
}
else
{
_ = filesMessageService.SendAsync(folder, _headers, MessageAction.RoomUnarchived, folder.Title);
_ = filesMessageService.SendAsync(MessageAction.RoomUnarchived, folder, _headers, folder.Title);
}
}
else
{
_ = filesMessageService.SendAsync(folder, toFolder, _headers, MessageAction.FolderMoved, folder.Title, parentFolder.Title, toFolder.Title);
_ = filesMessageService.SendAsync(MessageAction.FolderMoved, folder, toFolder, _headers, folder.Title, parentFolder.Title, toFolder.Title);
}
@ -617,7 +617,7 @@ class FileMoveCopyOperation<T> : FileOperation<FileMoveCopyOperationData<T>, T>
try
{
newFile = await FileDao.CopyFileAsync(file.Id, toFolderId); //Stream copy will occur inside dao
_ = filesMessageService.SendAsync(newFile, toFolder, _headers, MessageAction.FileCopied, newFile.Title, parentFolder.Title, toFolder.Title);
_ = filesMessageService.SendAsync(MessageAction.FileCopied, newFile, toFolder, _headers, newFile.Title, parentFolder.Title, toFolder.Title);
needToMark.Add(newFile);
@ -651,7 +651,7 @@ class FileMoveCopyOperation<T> : FileOperation<FileMoveCopyOperationData<T>, T>
var newFileId = await FileDao.MoveFileAsync(file.Id, toFolderId);
newFile = await fileDao.GetFileAsync(newFileId);
_ = filesMessageService.SendAsync(file, toFolder, _headers, MessageAction.FileMoved, file.Title, parentFolder.Title, toFolder.Title);
_ = filesMessageService.SendAsync(MessageAction.FileMoved, file, toFolder, _headers, file.Title, parentFolder.Title, toFolder.Title);
if (file.RootFolderType == FolderType.TRASH && newFile.ThumbnailStatus == Thumbnail.NotRequired)
{
@ -739,7 +739,7 @@ class FileMoveCopyOperation<T> : FileOperation<FileMoveCopyOperationData<T>, T>
if (copy)
{
_ = filesMessageService.SendAsync(newFile, toFolder, _headers, MessageAction.FileCopiedWithOverwriting, newFile.Title, parentFolder.Title, toFolder.Title);
_ = filesMessageService.SendAsync(MessageAction.FileCopiedWithOverwriting, newFile, toFolder, _headers, newFile.Title, parentFolder.Title, toFolder.Title);
if (ProcessedFile(fileId))
{
sb.Append($"file_{newFile.Id}{SplitChar}");
@ -766,7 +766,7 @@ class FileMoveCopyOperation<T> : FileOperation<FileMoveCopyOperationData<T>, T>
await LinkDao.DeleteAllLinkAsync(file.Id.ToString());
_ = filesMessageService.SendAsync(file, toFolder, _headers, MessageAction.FileMovedWithOverwriting, file.Title, parentFolder.Title, toFolder.Title);
_ = filesMessageService.SendAsync(MessageAction.FileMovedWithOverwriting, file, toFolder, _headers, file.Title, parentFolder.Title, toFolder.Title);
await socketManager.DeleteFileAsync(file);

View File

@ -1315,7 +1315,7 @@ public class EntryManager
await _socketManager.CreateFolderAsync(folder);
_ = _filesMessageService.SendAsync(folder, MessageInitiator.DocsService, MessageAction.FolderCreated, folder.Title);
_ = _filesMessageService.SendAsync(MessageAction.FolderCreated, folder, MessageInitiator.DocsService, folder.Title);
}
folderId = folder.Id;
@ -1340,7 +1340,7 @@ public class EntryManager
submitFile = await fileSourceDao.SaveFileAsync(submitFile, stream);
}
_ = _filesMessageService.SendAsync(submitFile, MessageInitiator.DocsService, MessageAction.FileCreated, submitFile.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileCreated, submitFile, MessageInitiator.DocsService, submitFile.Title);
await _fileMarker.MarkAsNewAsync(submitFile);

View File

@ -30,7 +30,7 @@ using Microsoft.Extensions.Caching.Distributed;
namespace ASC.Web.Files.Utils;
[Singletone]
public class FileConverterQueue
public class FileConverterQueue
{
private readonly object _locker = new object();
private readonly IDistributedCache _distributedCache;
@ -312,7 +312,7 @@ public class FileConverter
IServiceProvider serviceProvider,
IHttpClientFactory clientFactory,
SocketManager socketManager,
FileConverterQueue fileConverterQueue,
FileConverterQueue fileConverterQueue,
ExternalShare externalShare)
{
_fileUtility = fileUtility;
@ -535,7 +535,7 @@ public class FileConverter
await _fileMarker.RemoveMarkAsNewAsync(file);
_fileConverterQueue.Add(file, password, (await _tenantManager.GetCurrentTenantAsync()).Id, _authContext.CurrentAccount, deleteAfter, _httpContextAccesor?.HttpContext?.Request.GetDisplayUrl(),
_fileConverterQueue.Add(file, password, (await _tenantManager.GetCurrentTenantAsync()).Id, _authContext.CurrentAccount, deleteAfter, _httpContextAccesor?.HttpContext?.Request.GetDisplayUrl(),
_baseCommonLinkUtility.ServerRootPath, await _externalShare.GetLinkIdAsync() != default ? await _externalShare.GetCurrentShareDataAsync() : null);
}
@ -660,7 +660,7 @@ public class FileConverter
throw new Exception(errorString);
}
_ = _filesMessageService.SendAsync(newFile, MessageInitiator.DocsService, MessageAction.FileConverted, newFile.Title);
_ = _filesMessageService.SendAsync(MessageAction.FileConverted, newFile, MessageInitiator.DocsService, newFile.Title);
var linkDao = _daoFactory.GetLinkDao();
await linkDao.DeleteAllLinkAsync(file.Id.ToString());

View File

@ -218,7 +218,7 @@ public class FileUploader
folderId = await folderDao.SaveFolderAsync(newFolder);
folder = await folderDao.GetFolderAsync(folderId);
await _socketManager.CreateFolderAsync(folder);
_ = _filesMessageService.SendAsync(folder, MessageAction.FolderCreated, folder.Title);
_ = _filesMessageService.SendAsync(MessageAction.FolderCreated, folder, folder.Title);
}
folderId = folder.Id;

View File

@ -167,7 +167,7 @@ public class ConnectionsController : ControllerBase
var hash = auditEventDate.ToString("s");
var confirmationUrl = await _commonLinkUtility.GetConfirmationEmailUrlAsync(user.Email, ConfirmType.PasswordChange, hash, user.Id);
await _messageService.SendAsync(auditEventDate, MessageAction.UserSentPasswordChangeInstructions, _messageTarget.Create(user.Id), userName);
await _messageService.SendAsync(MessageAction.UserSentPasswordChangeInstructions, _messageTarget.Create(user.Id), auditEventDate, userName);
return confirmationUrl;
}
@ -270,7 +270,7 @@ public class ConnectionsController : ControllerBase
var userName = user.DisplayUserName(false, _displayUserSettingsHelper);
var auditEventDate = DateTime.UtcNow;
await _messageService.SendAsync(auditEventDate, currentUserId.Equals(user.Id) ? MessageAction.UserLogoutActiveConnections : MessageAction.UserLogoutActiveConnectionsForUser, _messageTarget.Create(user.Id), userName);
await _messageService.SendAsync(currentUserId.Equals(user.Id) ? MessageAction.UserLogoutActiveConnections : MessageAction.UserLogoutActiveConnectionsForUser, _messageTarget.Create(user.Id), auditEventDate, userName);
await _cookiesManager.ResetUserCookieAsync(user.Id);
}

View File

@ -195,7 +195,7 @@ public class StudioNotifyService
var displayUserName = userInfo.DisplayUserName(false, _displayUserSettingsHelper);
await _messageService.SendAsync(auditEventDate, MessageAction.UserSentPasswordChangeInstructions, _messageTarget.Create(userInfo.Id), displayUserName);
await _messageService.SendAsync(MessageAction.UserSentPasswordChangeInstructions, _messageTarget.Create(userInfo.Id), auditEventDate, displayUserName);
}
#endregion