diff --git a/src/Preview/Preview.Controller/Packaging/Steps/CleanupPreviews.cs b/src/Preview/Preview.Controller/Packaging/Steps/CleanupPreviews.cs index a997977..2ad55ac 100644 --- a/src/Preview/Preview.Controller/Packaging/Steps/CleanupPreviews.cs +++ b/src/Preview/Preview.Controller/Packaging/Steps/CleanupPreviews.cs @@ -1,5 +1,7 @@ using System.Threading; +using SenseNet.ContentRepository.Search; using SenseNet.Packaging.Steps; +using SenseNet.Search.Indexing; using ExecutionContext = SenseNet.Packaging.ExecutionContext; namespace SenseNet.Preview.Packaging.Steps @@ -30,7 +32,8 @@ public override void Execute(ExecutionContext context) using (new Timer(state => WriteProgress(), null, 1000, 2000)) { - var pc = new PreviewCleaner(Path, Mode, MaxIndex, MaxDegreeOfParallelism, BlockSize); + var indexingEngine = GetService()?.SearchEngine?.IndexingEngine; + var pc = new PreviewCleaner(indexingEngine, Path, Mode, MaxIndex, MaxDegreeOfParallelism, BlockSize); pc.OnFolderDeleted += (s, e) => { Interlocked.Increment(ref _folderCount);}; pc.OnImageDeleted += (s, e) => { Interlocked.Increment(ref _imageCount); }; diff --git a/src/Preview/Preview.Controller/Packaging/Steps/PreviewCleaner.cs b/src/Preview/Preview.Controller/Packaging/Steps/PreviewCleaner.cs index 2867c08..ac96724 100644 --- a/src/Preview/Preview.Controller/Packaging/Steps/PreviewCleaner.cs +++ b/src/Preview/Preview.Controller/Packaging/Steps/PreviewCleaner.cs @@ -15,6 +15,7 @@ using SenseNet.ContentRepository.Storage.Data; using SenseNet.Diagnostics; using SenseNet.Search; +using SenseNet.Search.Indexing; using SenseNet.Search.Querying; using Retrier = SenseNet.Tools.Retrier; // ReSharper disable AccessToDisposedClosure @@ -78,6 +79,7 @@ ELSE CAST(0 AS BIT) private int MaxDegreeOfParallelism { get; } private int BlockSize { get; } + private IIndexingEngine IndexingEngine { get; } private static readonly Lazy TraceCategory = new Lazy(() => { @@ -93,7 +95,7 @@ ELSE CAST(0 AS BIT) //========================================================================================= Constructors - public PreviewCleaner(string path = null, CleanupMode cleanupMode = CleanupMode.AllVersions, + public PreviewCleaner(IIndexingEngine indexingEngine, string path = null, CleanupMode cleanupMode = CleanupMode.AllVersions, int maxIndex = 0, int maxDegreeOfParallelism = 10, int blockSize = 500) { Path = path; @@ -102,6 +104,8 @@ public PreviewCleaner(string path = null, CleanupMode cleanupMode = CleanupMode. MaxDegreeOfParallelism = Math.Max(1, maxDegreeOfParallelism); BlockSize = Math.Max(1, blockSize); + + IndexingEngine = indexingEngine; } //========================================================================================= Public API @@ -256,7 +260,7 @@ private bool DeletePreviewFoldersBlock(string path, bool keepLastVersions, int m Trace.Write("Removing preview folder block from the index."); - IndexManager.IndexingEngine.WriteIndexAsync(pathBag.SelectMany(p => new[] + IndexingEngine.WriteIndexAsync(pathBag.SelectMany(p => new[] { new SnTerm(IndexFieldName.InTree, p), new SnTerm(IndexFieldName.Path, p) @@ -340,7 +344,7 @@ private bool DeleteEmptyPreviewFoldersBlock(string path, int blockSize) Trace.Write("Removing preview folder block from the index."); - IndexManager.IndexingEngine.WriteIndexAsync(pathBag.SelectMany(p => new[] + IndexingEngine.WriteIndexAsync(pathBag.SelectMany(p => new[] { new SnTerm(IndexFieldName.InTree, p), new SnTerm(IndexFieldName.Path, p) diff --git a/src/Preview/Preview.Controller/Preview.Controller.csproj b/src/Preview/Preview.Controller/Preview.Controller.csproj index 73cacfb..0cae54e 100644 --- a/src/Preview/Preview.Controller/Preview.Controller.csproj +++ b/src/Preview/Preview.Controller/Preview.Controller.csproj @@ -5,7 +5,7 @@ SenseNet.Preview.Controller SenseNet.Preview.Controller netstandard2.0 - 7.3.3.1 + 7.3.4 kavics,tusmester,aniko,lajos,bezoo Sense/Net Inc. Copyright © Sense/Net Inc. @@ -22,9 +22,7 @@ - - - + diff --git a/src/Preview/Preview.Controller/PreviewCommentActions.cs b/src/Preview/Preview.Controller/PreviewCommentActions.cs index bbe7839..3305426 100644 --- a/src/Preview/Preview.Controller/PreviewCommentActions.cs +++ b/src/Preview/Preview.Controller/PreviewCommentActions.cs @@ -1,6 +1,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Threading; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using SenseNet.ApplicationModel; @@ -153,7 +154,7 @@ private static void SaveComments(Content content, JToken commentsArray) file.VersionCreationDate = content.ContentHandler.VersionCreationDate; file.VersionModifiedBy = content.ContentHandler.VersionModifiedBy; file.VersionModificationDate = content.ContentHandler.VersionModificationDate; - file.Save(SavingMode.KeepVersion); + file.SaveAsync(SavingMode.KeepVersion, CancellationToken.None).GetAwaiter().GetResult(); } } private static void AssertCommentFeature(Content content) diff --git a/src/Preview/Preview.Controller/PreviewCommentData.cs b/src/Preview/Preview.Controller/PreviewCommentData.cs index 0c82f0d..96e8144 100644 --- a/src/Preview/Preview.Controller/PreviewCommentData.cs +++ b/src/Preview/Preview.Controller/PreviewCommentData.cs @@ -1,5 +1,6 @@ using System; using Newtonsoft.Json; +using SenseNet.Configuration; using SenseNet.ContentRepository; using SenseNet.ContentRepository.Storage.Security; @@ -70,7 +71,7 @@ public PreviewComment(PreviewCommentData data) // and check for permissions after. var caller = AccessProvider.Current.GetOriginalUser(); var user = SystemAccount.Execute(() => string.IsNullOrEmpty(data.CreatedBy) ? null : User.Load(data.CreatedBy)); - if (user == null || !SecurityHandler.HasPermission(caller, user.Id, PermissionType.Open)) + if (user == null || !Providers.Instance.SecurityHandler.HasPermission(caller, user.Id, PermissionType.Open)) user = User.Somebody; CreatedBy = new PreviewCommentUser diff --git a/src/Preview/Preview.Controller/PreviewExtensions.cs b/src/Preview/Preview.Controller/PreviewExtensions.cs index 78c6d79..d23cc0c 100644 --- a/src/Preview/Preview.Controller/PreviewExtensions.cs +++ b/src/Preview/Preview.Controller/PreviewExtensions.cs @@ -1,5 +1,4 @@ using System; -using SenseNet.Configuration; using SenseNet.Preview; using SenseNet.Tools; @@ -8,12 +7,10 @@ namespace SenseNet.Extensions.DependencyInjection { public static class PreviewExtensions { - [Obsolete("In a .Net Core environment please use the AddSenseNetDocumentPreviewProvider method instead.")] + [Obsolete("In a .Net Core environment please use the AddSenseNetDocumentPreviewProvider method instead.", true)] public static IRepositoryBuilder UseDocumentPreviewProvider(this IRepositoryBuilder repositoryBuilder, DocumentPreviewProvider previewProvider) { - Providers.Instance.PreviewProvider = previewProvider; - return repositoryBuilder; } } diff --git a/src/Preview/Preview.Tests/Preview.Tests.csproj b/src/Preview/Preview.Tests/Preview.Tests.csproj index 6fb255c..9f3bc97 100644 --- a/src/Preview/Preview.Tests/Preview.Tests.csproj +++ b/src/Preview/Preview.Tests/Preview.Tests.csproj @@ -39,30 +39,48 @@ 4 - - ..\packages\Microsoft.Bcl.AsyncInterfaces.1.1.1\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + ..\packages\Portable.BouncyCastle.1.9.0\lib\net40\BouncyCastle.Crypto.dll + + + ..\packages\MailKit.3.4.1\lib\netstandard2.0\MailKit.dll + + + ..\packages\Microsoft.AspNetCore.Http.Abstractions.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Http.Abstractions.dll + + + ..\packages\Microsoft.AspNetCore.Http.Features.2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Http.Features.dll + + + ..\packages\Microsoft.Bcl.AsyncInterfaces.6.0.0\lib\net461\Microsoft.Bcl.AsyncInterfaces.dll + + ..\packages\Microsoft.Extensions.Caching.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Caching.Abstractions.dll + + + ..\packages\Microsoft.Extensions.Caching.Memory.6.0.1\lib\net461\Microsoft.Extensions.Caching.Memory.dll + ..\packages\Microsoft.Extensions.Configuration.3.1.16\lib\netstandard2.0\Microsoft.Extensions.Configuration.dll - - ..\packages\Microsoft.Extensions.Configuration.Abstractions.3.1.16\lib\netstandard2.0\Microsoft.Extensions.Configuration.Abstractions.dll + + ..\packages\Microsoft.Extensions.Configuration.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Configuration.Abstractions.dll ..\packages\Microsoft.Extensions.Configuration.Binder.3.1.16\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll - - ..\packages\Microsoft.Extensions.DependencyInjection.3.1.16\lib\net461\Microsoft.Extensions.DependencyInjection.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.6.0.0\lib\net461\Microsoft.Extensions.DependencyInjection.dll - - ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.3.1.16\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll + + ..\packages\Microsoft.Extensions.DependencyInjection.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.DependencyInjection.Abstractions.dll - - ..\packages\Microsoft.Extensions.FileProviders.Abstractions.3.1.16\lib\netstandard2.0\Microsoft.Extensions.FileProviders.Abstractions.dll + + ..\packages\Microsoft.Extensions.FileProviders.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.FileProviders.Abstractions.dll - - ..\packages\Microsoft.Extensions.Hosting.Abstractions.3.1.16\lib\netstandard2.0\Microsoft.Extensions.Hosting.Abstractions.dll + + ..\packages\Microsoft.Extensions.Hosting.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Hosting.Abstractions.dll ..\packages\Microsoft.Extensions.Http.3.1.16\lib\netstandard2.0\Microsoft.Extensions.Http.dll @@ -70,14 +88,14 @@ ..\packages\Microsoft.Extensions.Logging.3.1.16\lib\netstandard2.0\Microsoft.Extensions.Logging.dll - - ..\packages\Microsoft.Extensions.Logging.Abstractions.3.1.16\lib\netstandard2.0\Microsoft.Extensions.Logging.Abstractions.dll + + ..\packages\Microsoft.Extensions.Logging.Abstractions.6.0.0\lib\net461\Microsoft.Extensions.Logging.Abstractions.dll - - ..\packages\Microsoft.Extensions.Options.3.1.16\lib\netstandard2.0\Microsoft.Extensions.Options.dll + + ..\packages\Microsoft.Extensions.Options.6.0.0\lib\net461\Microsoft.Extensions.Options.dll - - ..\packages\Microsoft.Extensions.Primitives.3.1.16\lib\netstandard2.0\Microsoft.Extensions.Primitives.dll + + ..\packages\Microsoft.Extensions.Primitives.6.0.0\lib\net461\Microsoft.Extensions.Primitives.dll ..\packages\Microsoft.IdentityModel.JsonWebTokens.5.2.4\lib\net451\Microsoft.IdentityModel.JsonWebTokens.dll @@ -94,116 +112,135 @@ ..\packages\MSTest.TestFramework.1.3.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions.dll - - ..\packages\Newtonsoft.Json.11.0.2\lib\net45\Newtonsoft.Json.dll + + ..\packages\MimeKit.3.4.1\lib\netstandard2.0\MimeKit.dll - - ..\packages\Nito.AsyncEx.Coordination.5.0.0\lib\netstandard2.0\Nito.AsyncEx.Coordination.dll + + ..\packages\Newtonsoft.Json.13.0.1\lib\net45\Newtonsoft.Json.dll - - ..\packages\Nito.AsyncEx.Tasks.5.0.0\lib\netstandard2.0\Nito.AsyncEx.Tasks.dll + + ..\packages\Nito.AsyncEx.Coordination.5.1.2\lib\net461\Nito.AsyncEx.Coordination.dll - - ..\packages\Nito.Collections.Deque.1.0.4\lib\netstandard2.0\Nito.Collections.Deque.dll + + ..\packages\Nito.AsyncEx.Tasks.5.1.2\lib\net461\Nito.AsyncEx.Tasks.dll - - ..\packages\Nito.Disposables.2.0.0\lib\netstandard2.0\Nito.Disposables.dll + + ..\packages\Nito.Collections.Deque.1.1.1\lib\net461\Nito.Collections.Deque.dll - - ..\packages\SenseNet.Abstractions.1.0.0\lib\netstandard2.0\SenseNet.Abstractions.dll + + ..\packages\Nito.Disposables.2.2.1\lib\net461\Nito.Disposables.dll - - ..\packages\SenseNet.BlobStorage.7.6.3\lib\netstandard2.0\SenseNet.BlobStorage.dll + + ..\packages\SenseNet.Abstractions.1.0.2\lib\netstandard2.0\SenseNet.Abstractions.dll - - ..\packages\SenseNet.Common.7.5.4\lib\netstandard2.0\SenseNet.Common.dll + + ..\packages\SenseNet.BlobStorage.7.6.9\lib\netstandard2.0\SenseNet.BlobStorage.dll - - ..\packages\SenseNet.ContentRepository.7.7.27\lib\netstandard2.0\SenseNet.ContentRepository.dll + + ..\packages\SenseNet.Common.7.5.9\lib\netstandard2.0\SenseNet.Common.dll - - ..\packages\SenseNet.Preview.7.2.0.1\lib\netstandard2.0\SenseNet.Preview.dll + + ..\packages\SenseNet.ContentRepository.7.7.35\lib\netstandard2.0\SenseNet.ContentRepository.dll - - ..\packages\SenseNet.Search.2.4.7\lib\netstandard2.0\SenseNet.Search.dll + + ..\packages\SenseNet.Preview.7.2.1.1\lib\netstandard2.0\SenseNet.Preview.dll - - ..\packages\SenseNet.Security.4.1.2\lib\netstandard2.0\SenseNet.Security.dll + + ..\packages\SenseNet.Search.2.4.14\lib\netstandard2.0\SenseNet.Search.dll - - ..\packages\SenseNet.Storage.7.7.23\lib\netstandard2.0\SenseNet.Storage.dll + + ..\packages\SenseNet.Security.4.1.5\lib\netstandard2.0\SenseNet.Security.dll + + + ..\packages\SenseNet.Storage.7.7.30\lib\netstandard2.0\SenseNet.Storage.dll ..\packages\SenseNet.TaskManagement.Core.2.2.1\lib\netstandard2.0\SenseNet.TaskManagement.Core.dll - - ..\packages\SenseNet.Tests.1.6.13\lib\net461\SenseNet.Tests.dll + + ..\packages\SenseNet.Tests.1.6.14\lib\net461\SenseNet.Tests.dll ..\packages\SenseNet.TokenAuthentication.7.4.0\lib\netstandard2.0\SenseNet.TokenAuthentication.dll - - ..\packages\SenseNet.Tools.3.2.7\lib\netstandard2.0\SenseNet.Tools.dll + + ..\packages\SenseNet.Tools.3.2.9\lib\netstandard2.0\SenseNet.Tools.dll - ..\packages\System.Buffers.4.5.0\lib\netstandard2.0\System.Buffers.dll + ..\packages\System.Buffers.4.5.1\lib\net461\System.Buffers.dll - - ..\packages\System.Collections.Immutable.1.4.0\lib\netstandard2.0\System.Collections.Immutable.dll + + ..\packages\System.Collections.Immutable.1.7.1\lib\net461\System.Collections.Immutable.dll ..\packages\System.ComponentModel.Annotations.4.7.0\lib\net461\System.ComponentModel.Annotations.dll - - ..\packages\System.Configuration.ConfigurationManager.4.5.0\lib\net461\System.Configuration.ConfigurationManager.dll + + ..\packages\System.Configuration.ConfigurationManager.6.0.1\lib\net461\System.Configuration.ConfigurationManager.dll + - - ..\packages\System.Data.SqlClient.4.5.1\lib\net461\System.Data.SqlClient.dll + + ..\packages\System.Data.SqlClient.4.8.3\lib\net461\System.Data.SqlClient.dll - - ..\packages\System.Diagnostics.EventLog.4.5.0\lib\net461\System.Diagnostics.EventLog.dll + + ..\packages\System.Diagnostics.EventLog.6.0.0\lib\net461\System.Diagnostics.EventLog.dll - - ..\packages\System.Drawing.Common.4.5.1\lib\net461\System.Drawing.Common.dll + + ..\packages\System.Drawing.Common.6.0.0\lib\net461\System.Drawing.Common.dll ..\packages\System.IdentityModel.Tokens.Jwt.5.2.4\lib\net451\System.IdentityModel.Tokens.Jwt.dll - - ..\packages\System.Memory.4.5.2\lib\netstandard2.0\System.Memory.dll + + ..\packages\System.Memory.4.5.5\lib\net461\System.Memory.dll + - - ..\packages\System.Numerics.Vectors.4.4.0\lib\net46\System.Numerics.Vectors.dll + + ..\packages\System.Numerics.Vectors.4.5.0\lib\net46\System.Numerics.Vectors.dll - - ..\packages\System.Runtime.CompilerServices.Unsafe.4.7.1\lib\net461\System.Runtime.CompilerServices.Unsafe.dll + + ..\packages\System.Runtime.CompilerServices.Unsafe.6.0.0\lib\net461\System.Runtime.CompilerServices.Unsafe.dll - - ..\packages\System.Security.AccessControl.4.5.0\lib\net461\System.Security.AccessControl.dll + + + ..\packages\System.Security.AccessControl.6.0.0\lib\net461\System.Security.AccessControl.dll + + + ..\packages\System.Security.Cryptography.Pkcs.6.0.0\lib\net461\System.Security.Cryptography.Pkcs.dll - - ..\packages\System.Security.Permissions.4.5.0\lib\net461\System.Security.Permissions.dll + + ..\packages\System.Security.Permissions.6.0.0\lib\net461\System.Security.Permissions.dll - - ..\packages\System.Security.Principal.Windows.4.5.0\lib\net461\System.Security.Principal.Windows.dll + + ..\packages\System.Security.Principal.Windows.5.0.0\lib\net461\System.Security.Principal.Windows.dll + + ..\packages\System.Text.Encoding.CodePages.6.0.0\lib\net461\System.Text.Encoding.CodePages.dll + + + ..\packages\System.Text.Encodings.Web.4.5.0\lib\netstandard2.0\System.Text.Encodings.Web.dll + ..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll + + ..\packages\System.ValueTuple.4.5.0\lib\net461\System.ValueTuple.dll + + @@ -229,6 +266,8 @@ + + \ No newline at end of file diff --git a/src/Preview/Preview.Tests/PreviewCommentsTests.cs b/src/Preview/Preview.Tests/PreviewCommentsTests.cs index ae9a6d5..9d49720 100644 --- a/src/Preview/Preview.Tests/PreviewCommentsTests.cs +++ b/src/Preview/Preview.Tests/PreviewCommentsTests.cs @@ -1,5 +1,6 @@ using System; using System.Linq; +using System.Threading; using Microsoft.VisualStudio.TestTools.UnitTesting; using Newtonsoft.Json.Linq; using SenseNet.ContentRepository; @@ -254,7 +255,7 @@ private static GenericContent CreateTestRoot(bool save = true) { var node = new SystemFolder(Repository.Root) { Name = Guid.NewGuid().ToString() }; if (save) - node.Save(); + node.SaveAsync(CancellationToken.None).GetAwaiter().GetResult(); return node; } @@ -273,7 +274,7 @@ private static File CreateTestFile(Node parent, string name = null, bool save = { var file = new File(parent) { Name = name ?? Guid.NewGuid().ToString() }; if (save) - file.Save(); + file.SaveAsync(CancellationToken.None).GetAwaiter().GetResult(); return file; } } diff --git a/src/Preview/Preview.Tests/app.config b/src/Preview/Preview.Tests/app.config index e08951d..d130c75 100644 --- a/src/Preview/Preview.Tests/app.config +++ b/src/Preview/Preview.Tests/app.config @@ -4,27 +4,27 @@ - + - + - + - + - + - + @@ -36,7 +36,7 @@ - + @@ -44,16 +44,36 @@ - + - + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Preview/Preview.Tests/packages.config b/src/Preview/Preview.Tests/packages.config index 3f46311..d0db2ec 100644 --- a/src/Preview/Preview.Tests/packages.config +++ b/src/Preview/Preview.Tests/packages.config @@ -1,55 +1,67 @@  - - + + + + + + + - + - - - - + + + + - - - + + + + - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - - - + + + - - - - + + + + + - - - - - - - + + + + + + + + + + + \ No newline at end of file diff --git a/src/Preview/Preview/Preview.csproj b/src/Preview/Preview/Preview.csproj index 8f89c24..8e8c244 100644 --- a/src/Preview/Preview/Preview.csproj +++ b/src/Preview/Preview/Preview.csproj @@ -4,7 +4,7 @@ netstandard2.0 SenseNet.Preview SenseNet.Preview - 7.2.1.1 + 7.2.2 Sense/Net Inc. General document preview library for the sensenet platform containing common interfaces. SenseNet.Preview @@ -21,7 +21,7 @@ - +