From 321e44cb943cc557f147f2c795dcaf48da5f97f0 Mon Sep 17 00:00:00 2001 From: SuhorukovAnton Date: Tue, 26 Jul 2022 14:55:19 +0300 Subject: [PATCH] fix SetFilterByTypes --- .../Core/Thirdparty/IThirdPartyProviderDao.cs | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/products/ASC.Files/Core/Core/Thirdparty/IThirdPartyProviderDao.cs b/products/ASC.Files/Core/Core/Thirdparty/IThirdPartyProviderDao.cs index a99c478b4c..98a1579e30 100644 --- a/products/ASC.Files/Core/Core/Thirdparty/IThirdPartyProviderDao.cs +++ b/products/ASC.Files/Core/Core/Thirdparty/IThirdPartyProviderDao.cs @@ -422,17 +422,29 @@ internal abstract class ThirdPartyProviderDao : ThirdPartyProviderDao, IDispo { if (filterTypes.Any() && !filterTypes.Contains(FilterType.None)) { - var filter = filterTypes.Select(f => f switch + var filter = new HashSet(); + foreach(var f in filterTypes) { - FilterType.FillingFormsRooms => FolderType.FillingFormsRoom, - FilterType.EditingRooms => FolderType.EditingRoom, - FilterType.ReviewRooms => FolderType.ReviewRoom, - FilterType.ReadOnlyRooms => FolderType.ReadOnlyRoom, - FilterType.CustomRooms => FolderType.CustomRoom, - _ => FolderType.CustomRoom - }).ToHashSet(); - - return folders.Where(f => filter.Contains(f.FolderType)); + switch (f) + { + case FilterType.FillingFormsRooms: + filter.Add(FolderType.FillingFormsRoom); + break; + case FilterType.EditingRooms: + filter.Add(FolderType.EditingRoom); + break; + case FilterType.ReviewRooms: + filter.Add(FolderType.ReviewRoom); + break; + case FilterType.ReadOnlyRooms: + filter.Add(FolderType.ReadOnlyRoom); + break; + case FilterType.CustomRooms: + filter.Add(FolderType.CustomRoom); + break; + } + } + return filter.Count == 0 ? folders : folders.Where(f => filter.Contains(f.FolderType)); } return folders;