From 22a5fc81a4f6a30d09e0f9e16cec5ad64c496c19 Mon Sep 17 00:00:00 2001 From: SuhorukovAnton Date: Thu, 19 Jan 2023 11:44:54 +0300 Subject: [PATCH] fix Bug 60623 - Rooms.Archived. --- .../FileOperations/FileMoveCopyOperation.cs | 42 +++++++++++-------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/products/ASC.Files/Core/Services/WCFService/FileOperations/FileMoveCopyOperation.cs b/products/ASC.Files/Core/Services/WCFService/FileOperations/FileMoveCopyOperation.cs index b1f588e327..e64241eb5a 100644 --- a/products/ASC.Files/Core/Services/WCFService/FileOperations/FileMoveCopyOperation.cs +++ b/products/ASC.Files/Core/Services/WCFService/FileOperations/FileMoveCopyOperation.cs @@ -410,28 +410,36 @@ class FileMoveCopyOperation : FileOperation, T> } else { - if (isRoom && toFolder.FolderType == FolderType.VirtualRooms) + try { - await _semaphore.WaitAsync(); - await countRoomChecker.CheckAppend(); - newFolderId = await FolderDao.MoveFolderAsync(folder.Id, toFolderId, CancellationToken); - _semaphore.Release(); - } - else if (isRoom && toFolder.FolderType == FolderType.Archive) - { - await _semaphore.WaitAsync(); - newFolderId = await FolderDao.MoveFolderAsync(folder.Id, toFolderId, CancellationToken); - var pins = await TagDao.GetTagsAsync(Guid.Empty, TagType.Pin, new List> { folder }).ToListAsync(); - if (pins.Count > 0) + if (isRoom && toFolder.FolderType == FolderType.VirtualRooms) { - await TagDao.RemoveTags(pins); + await _semaphore.WaitAsync(); + await countRoomChecker.CheckAppend(); + newFolderId = await FolderDao.MoveFolderAsync(folder.Id, toFolderId, CancellationToken); + } + else if (isRoom && toFolder.FolderType == FolderType.Archive) + { + await _semaphore.WaitAsync(); + newFolderId = await FolderDao.MoveFolderAsync(folder.Id, toFolderId, CancellationToken); + var pins = await TagDao.GetTagsAsync(Guid.Empty, TagType.Pin, new List> { folder }).ToListAsync(); + if (pins.Count > 0) + { + await TagDao.RemoveTags(pins); + } + } + else + { + newFolderId = await FolderDao.MoveFolderAsync(folder.Id, toFolderId, CancellationToken); } - _semaphore.Release(); - } - else + catch(Exception) { - newFolderId = await FolderDao.MoveFolderAsync(folder.Id, toFolderId, CancellationToken); + throw; + } + finally + { + _semaphore.Release(); } }