Commit Graph

122 Commits

Author SHA1 Message Date
Paul Johnson
2a4c974568 Move services infra -> core 2022-01-14 11:34:08 +00:00
Paul Johnson
8d1fa717ba cherry-pick Misc/obsolete redundant extension (#11838)
* Mark AddUnique<TImplementing> obsolete.

* Remove all internal usages of AddUnique<TImplementing>.
2022-01-11 08:46:56 +00:00
Bjarke Berg
694a636746 Fix breaking change 2021-12-15 11:53:16 +01:00
Bjarke Berg
69b8b64b54 Merge remote-tracking branch 'origin/v8/dev' into v9/feature/merge_v8_14-12-2021
# Conflicts:
#	src/Umbraco.Core/Constants-Conventions.cs
#	src/Umbraco.Core/Migrations/Install/DatabaseDataCreator.cs
#	src/Umbraco.Core/Migrations/Upgrade/UmbracoPlan.cs
#	src/Umbraco.Core/Models/IContentType.cs
#	src/Umbraco.Core/Packaging/PackageDataInstallation.cs
#	src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeCommonRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/Implement/ContentTypeRepository.cs
#	src/Umbraco.Core/Persistence/Repositories/Implement/MemberTypeRepository.cs
#	src/Umbraco.Core/Services/Implement/EntityXmlSerializer.cs
#	src/Umbraco.Core/Services/Implement/MemberService.cs
#	src/Umbraco.Tests/Packaging/PackageDataInstallationTests.cs
#	src/Umbraco.Tests/Persistence/Repositories/MemberTypeRepositoryTest.cs
#	src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs
#	src/Umbraco.Tests/Services/Importing/ImportResources.resx
#	src/Umbraco.Tests/Umbraco.Tests.csproj
#	src/Umbraco.Web.UI.Client/src/common/directives/components/localization/localize.directive.js
#	src/Umbraco.Web.UI.Client/src/common/services/umbdataformatter.service.js
#	src/Umbraco.Web.UI.Client/src/views/content/content.rights.controller.js
#	src/Umbraco.Web.UI.Client/src/views/documenttypes/views/permissions/permissions.html
#	src/Umbraco.Web.UI.Client/src/views/member/apps/content/content.html
#	src/Umbraco.Web.UI/Umbraco/Views/Default.cshtml
#	src/Umbraco.Web.UI/Umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/en_us.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/fr.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/nl.xml
#	src/Umbraco.Web.UI/Umbraco/config/lang/zh.xml
#	src/Umbraco.Web.UI/config/BackOfficeTours/getting-started.json
#	src/Umbraco.Web/HealthCheck/Checks/Security/ExcessiveHeadersCheck.cs
#	src/Umbraco.Web/Models/ContentEditing/MemberDisplay.cs
#	src/Umbraco.Web/Models/Mapping/ContentTypeMapDefinition.cs
#	src/Umbraco.Web/Models/Mapping/MemberMapDefinition.cs
#	src/Umbraco.Web/Models/Mapping/MemberTabsAndPropertiesMapper.cs
#	src/Umbraco.Web/Models/Mapping/TabsAndPropertiesMapper.cs
#	src/Umbraco.Web/PropertyEditors/BlockEditorPropertyEditor.cs
#	src/Umbraco.Web/Runtime/WebInitialComposer.cs
#	src/Umbraco.Web/Trees/ContentTreeController.cs
#	src/Umbraco.Web/Umbraco.Web.csproj
#	tests/Umbraco.Tests.Integration/Umbraco.Examine.Lucene/Services/Importing/SingleDocType-WithCleanupPolicy.xml
2021-12-14 20:13:42 +01:00
Mole
2268b1e187 Package telemetry (#11738)
* Add TelemetryService

Currently it only allows you to get a list of the name of all the installed packages

* Create model class for package telemetry

And move the telemetry report data out of ReportSiteTask

* Add version as an option in package manifest

* Use TelemetryService to generate telemetry data

Instead of doing it directly in the ReportSiteTask

* Seal TelemetryService

This should not be overwritten

* Add option for package creators to opt out

* Add global setting to restrict package telemetry

* Add TelemetryService unit tests

* Add ManifestParser tests for new properties

* Clean

* Update src/Umbraco.Core/Telemetry/TelemetryService.cs

Co-authored-by: Bjarke Berg <mail@bergmania.dk>

* Create interface for telemetry service

* Use IOptionsMonitor instead of IOptions

However I chose to use CurrentValue since according to microsoft: "Some file systems, such as Docker containers and network shares, may not reliably send change notifications.", additionally TelemetryService only runs once pr. day, so it shouldn't be too much of an issue that it doesn't cache the result.

* Use is false instead of negation

It's a bit more readable

* Track restrict package telemetry value

* Save RestrictPackageTelemetry in report data

Not packages, since it'll be the same for all packages

* Fix TelemetryService unit tests

* Clean

* Update src/Umbraco.Core/Telemetry/ITelemetryService.cs

Co-authored-by: Bjarke Berg <mail@bergmania.dk>

* Remove RestrictPackageTelemetry

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2021-12-14 16:09:31 +01:00
Sebastiaan Janssen
bc80892f51 Merge branch 'v9/contrib' into v9/dev
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/common/directives/components/localization/localize.directive.js
#	src/Umbraco.Web.UI/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI/umbraco/config/lang/en_us.xml
#	tests/Umbraco.Tests.AcceptanceTest/cypress/integration/Languages/languages.ts
2021-12-14 13:32:46 +01:00
Bjarke Berg
915f1cb34c V9: Fix for migration of non-default configurated users/members (#11684)
* https://github.com/umbraco/Umbraco-CMS/issues/11366
Fallback to try login using super legacy HMACSHA1 even when the algorithm is stated as being HMACSHA256. The issue is that v8 saves HMACSHA256 on the user, but when configured to use legacy encoding it actually uses HMACSHA1

* Support migration of members with:
UseLegacyEncoding+Clear
UseLegacyEncoding+Encrypted (Requires machine key)
UseLegacyEncoding+Hashed

* Fixes unit tests

* Avoid exceptions + unit tests

* Save unknown algorithm if we dont know it, instead of persisting a wrong algorithm.

* Added setting to enable clear text password rehashes.

* Removed support for migration of clear text passwords

* Fixed unit test
2021-12-02 10:54:24 +00:00
Paul Johnson
08f106a23f Fix smidge bundles not always invalidated between backoffice versions. (#11700)
* Introduced new smidge CacheBuster with sensible defaults.

* Bring back reset functionality in SmidgeRuntimeMinifier

* Clearer obsolete messaging.
2021-12-02 11:32:19 +01:00
Erik-Jan Westendorp
5d2c950073 Rename AddOEmbedProvider() and Obsolete OEmbedProviders() (#11703)
* Rename AddOEmbedProvider to AddEmbedProvider

* Obsolete  OEmbedProviders()

Obsolete OEmbedProviders() and proxy it to a new EmbedProviders()

* Rename EmbedProviderBase to OEmbedProviderBase

Rename EmbedProviderBase to OEmbedProviderBase
Add an obsoleted  class EmbedProviderBase
Add todo's to all implementations

* remove unintentionally comment

Rem: automatic tests failures not linked to this PR.
2021-11-30 04:10:54 +01:00
Erik-Jan Westendorp
4cd0544c65 Create an extension methods to easily append to CollectionBuilders (#11691)
* Create UmbracoBuilder.ContentApps.cs

Add an extension method to register content apps to make it possible to register content apps in the startup.cs class.

* Create UmbracoBuilder.CollectionsBuilders

* White space

* Rename OEmbedProvider to EmbedProvider

* Rename EmbedProvider to OEmbedProvider
2021-11-26 10:18:45 +01:00
Paul Johnson
f64894d37b Make PublishedContentQueryAccessor usable (#11601)
* Make PublishedContentQueryAccessor usable

Closes #11319

* Make xmldocs for IPublishedContentQueryAccessor more helpful.
2021-11-15 14:23:35 +01:00
Sebastiaan Janssen
27f50e7525 Revert "Content app for dictionary items"
This reverts commit 1d2272f536.
2021-10-24 10:55:38 +02:00
Patrick de Mooij
1d2272f536 Content app for dictionary items 2021-10-18 16:54:26 +10:00
Nikolaj Geisle
4446de915e Merge branch 'v9/dev' into v9/feature/debug-dashboard 2021-10-07 08:16:25 +02:00
Bjarke Berg
2a29cdc6c6 Allow opt out of import embedded schema file (#11296)
* Introduce an opt-out options from the import of embedded schema files.

* Moved the initialization of the static service provider into CoreRuntime as this runs before the IStartupFilters, and otherwise the static service provider is not available in hosted services. E.g. for migrations

* fix build

* Minor code tidy and naming alignment.

* Update src/Umbraco.Web.UI/Umbraco.Web.UI.csproj

* Removed default installation of starter kit.

Co-authored-by: Andy Butland <abutland73@gmail.com>
2021-10-06 11:13:59 +02:00
Nikolaj Geisle
45badbd36b Apply suggestions from code review
Co-authored-by: Mole <nikolajlauridsen@protonmail.ch>
2021-10-04 11:31:38 +02:00
Nikolaj Geisle
4ea1f46f2b Implemented variable data instead of hardcoded 2021-09-30 13:09:04 +02:00
Bjarke Berg
9a9f61e4c4 Merge pull request #10968 from umbraco/v9/feature/composers-cleanup
Obsolete IUserComposer and rename Composers
2021-09-06 14:00:59 +02:00
Nikolaj
d448ddd7df Make ValueEditorCacheRefresher a distributed cache refresher 2021-08-30 10:46:05 +02:00
Paul Johnson
7216c6140f Rename Composers.cs and perform minimal spring cleaning. 2021-08-27 10:56:21 +01:00
Nikolaj
65b69dfa4a Create separate refresher for ValueEditorCache
Notification handlers are scoped.
2021-08-24 11:02:37 +02:00
Nikolaj
306ed56027 Create a cache for value editors 2021-08-23 14:28:44 +02:00
Bjarke Berg
2baa1abfc4 Merge remote-tracking branch 'origin/v8/8.16' into v9/feature/merge_v8_11082021
# Conflicts:
#	.github/CONTRIBUTING.md
#	build/NuSpecs/UmbracoCms.Core.nuspec
#	build/NuSpecs/UmbracoCms.Web.nuspec
#	build/NuSpecs/UmbracoCms.nuspec
#	src/SolutionInfo.cs
#	src/Umbraco.Core/Cache/AppCaches.cs
#	src/Umbraco.Core/Cache/AppPolicedCacheDictionary.cs
#	src/Umbraco.Core/Cache/DeepCloneAppCache.cs
#	src/Umbraco.Core/Cache/WebCachingAppCache.cs
#	src/Umbraco.Core/CompositionExtensions.cs
#	src/Umbraco.Core/Models/Identity/BackOfficeIdentityUser.cs
#	src/Umbraco.Core/Models/PropertyGroupCollection.cs
#	src/Umbraco.Core/Models/PropertyTypeCollection.cs
#	src/Umbraco.Core/Persistence/Repositories/Implement/ExternalLoginRepository.cs
#	src/Umbraco.Core/ReadLock.cs
#	src/Umbraco.Core/Routing/SiteDomainMapper.cs
#	src/Umbraco.Core/UpgradeableReadLock.cs
#	src/Umbraco.Core/WriteLock.cs
#	src/Umbraco.Examine/ExamineExtensions.cs
#	src/Umbraco.Infrastructure/Examine/UmbracoFieldDefinitionCollection.cs
#	src/Umbraco.Infrastructure/Persistence/Dtos/ContentTypeDto.cs
#	src/Umbraco.Infrastructure/Persistence/Dtos/DictionaryDto.cs
#	src/Umbraco.Infrastructure/Persistence/Repositories/Implement/MemberGroupRepository.cs
#	src/Umbraco.Infrastructure/Persistence/Repositories/Implement/TemplateRepository.cs
#	src/Umbraco.Infrastructure/Persistence/Repositories/Implement/UserRepository.cs
#	src/Umbraco.Infrastructure/Services/IdKeyMap.cs
#	src/Umbraco.Infrastructure/Services/Implement/ContentService.cs
#	src/Umbraco.ModelsBuilder.Embedded/PureLiveModelFactory.cs
#	src/Umbraco.Tests/App.config
#	src/Umbraco.Web.BackOffice/Controllers/EntityController.cs
#	src/Umbraco.Web.UI.Client/package.json
#	src/Umbraco.Web.UI.NetCore/umbraco/config/lang/da.xml
#	src/Umbraco.Web.UI.NetCore/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI.NetCore/umbraco/config/lang/en_us.xml
#	src/Umbraco.Web.UI/Umbraco.Web.UI.csproj
#	src/Umbraco.Web.UI/Umbraco/config/lang/cy.xml
#	src/Umbraco.Web.UI/web.Template.config
#	src/Umbraco.Web/CacheHelperExtensions.cs
#	src/Umbraco.Web/Editors/RelationTypeController.cs
#	src/Umbraco.Web/Logging/WebProfilerProvider.cs
#	src/Umbraco.Web/Models/Mapping/MemberMapDefinition.cs
#	src/Umbraco.Web/PublishedCache/NuCache/MemberCache.cs
#	src/Umbraco.Web/Routing/ContentFinderByConfigured404.cs
#	src/Umbraco.Web/Routing/NotFoundHandlerHelper.cs
#	src/Umbraco.Web/Security/BackOfficeUserManager.cs
#	src/Umbraco.Web/Umbraco.Web.csproj
2021-08-11 19:11:35 +02:00
Bjarke Berg
4f2cb09939 Added POC of basic auth middleware 2021-08-05 21:42:47 +02:00
Shannon
7ec3afa5ff Adds new ctor to runtime hash class. Adds startup objects to the IUmbracoBuilder that are not otherwise available during configuration. 2021-07-09 15:31:01 -06:00
Mole
a34dcab221 Remove ManifestWatcher 2021-07-07 09:34:42 +02:00
Bjarke Berg
19ca2f9c28 Merge remote-tracking branch 'origin/v9/dev' into v9/task/package-refactor
# Conflicts:
#	src/Umbraco.Core/Configuration/Models/UnattendedSettings.cs
#	src/Umbraco.Web.UI.NetCore/appsettings.Development.json
2021-07-06 09:51:43 +02:00
Bjarke Berg
f1b91ab35d post merge fixes 2021-06-30 06:59:47 +02:00
Bjarke Berg
9e4dead0f5 Merge remote-tracking branch 'origin/v9/dev' into v9/task/package-refactor
# Conflicts:
#	src/Umbraco.Core/Migrations/IMigration.cs
#	src/Umbraco.Core/Migrations/MigrationPlan.cs
#	src/Umbraco.Infrastructure/Migrations/IMigrationContext.cs
#	src/Umbraco.Infrastructure/Runtime/RuntimeState.cs
#	src/Umbraco.Tests.UnitTests/Umbraco.Infrastructure/Migrations/MigrationTests.cs
#	src/Umbraco.Web.UI.NetCore/umbraco/config/lang/en.xml
#	src/Umbraco.Web.UI.NetCore/umbraco/config/lang/en_us.xml
2021-06-29 14:23:08 +02:00
Bjarke Berg
b1b677f8d3 Merge remote-tracking branch 'origin/v9/dev' into v9/cyclehack/autogeneration_of_json_schema 2021-06-25 08:18:39 +02:00
Shannon
d6a6016801 implement noop published snapshot service, splits tests models for published content, fixes sqlce image mapper to not have circular ref. 2021-06-24 10:25:23 -06:00
Bjarke Berg
74e2b7aca2 Refactored the initialization of settings and started a json schema project 2021-06-24 08:47:37 +02:00
Shannon
26f989124d New package migration collection, updates runtime state to check for package migrations, adds tests for this. 2021-06-08 14:56:45 -06:00
Shannon
bb793422f2 Removes package actions 2021-06-07 17:49:20 -06:00
Matthew-Wise
c341a39306 Add a collection to allow adding CSS and JS to the back office via C# (#10310)
* Added Custom back office collection builder, to allow css / js to be added to the back office using c#

* Added call to the collection

* Added obselete attribute to PropertyEditorAssetAttribute
2021-06-02 12:28:14 +02:00
Bjarke Berg
65b20572b7 V9: Resolve virtual view paths from DataEditorAttribute in DataValueEditor (#10279)
* https://github.com/umbraco/Umbraco-CMS/issues/10265
Resolve virtual view paths from DataEditorAttribute in DataValueEditor + Introduced an IDataValueEditorFactory, so we don't need to inject nested dependencies every time we introduce a new dependency in DataValueEditor..

* Cleanup + xml doc
2021-05-18 12:40:24 +02:00
Shannon Deminick
eba6373a12 Examine 2.0 integration (#10241)
* Init commit for examine 2.0 work, most old umb examine tests working, probably a lot that doesn't

* Gets Umbraco Examine tests passing and makes some sense out of them, fixes some underlying issues.

* Large refactor, remove TaskHelper, rename Notifications to be consistent, Gets all examine/lucene indexes building and startup ordered in the correct way, removes old files, creates new IUmbracoIndexingHandler for abstracting out all index operations for umbraco data, abstracts out IIndexRebuilder, Fixes Stack overflow with LiveModelsProvider and loading assemblies, ports some changes from v8 for startup handling with cold boots, refactors out LastSyncedFileManager

* fix up issues with rebuilding and management dashboard.

* removes old files, removes NetworkHelper, fixes LastSyncedFileManager implementation to ensure the machine name is used, fix up logging with cold boot state.

* Makes MainDom safer to use and makes PublishedSnapshotService lazily register with MainDom

* lazily acquire application id (fix unit tests)

* Fixes resource casing and missing test file

* Ensures caches when requiring internal services for PublishedSnapshotService, UseNuCache is a separate call, shouldn't be buried in AddWebComponents, was also causing issues in integration tests since nucache was being used for the Id2Key service.

* For UmbracoTestServerTestBase enable nucache services

* Fixing tests

* Fix another test

* Fixes tests, use TestHostingEnvironment, make Tests.Common use net5, remove old Lucene.Net.Contrib ref.

* Fixes up some review notes

* Fixes issue with doubly registering PublishedSnapshotService meanig there could be 2x instances of it

* Checks for parseexception when executing the query

* Use application root instead of duplicating functionality.

* Added Examine project to netcore only solution file

* Fixed casing issue with LazyLoad, that is not lowercase.

* uses cancellationToken instead of bool flag, fixes always reading lastId from the LastSyncedFileManager, fixes RecurringHostedServiceBase so that there isn't an overlapping thread for the same task type

* Fix tests

* remove legacy test project from solution file

* Fix test

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2021-05-18 10:31:38 +02:00
Mole
2bf86acf38 V9: Place notifications in the same namespace (#10231)
* Gather all notifications in Umbraco.Cms.Core.Notifications

* Rename notifications to match convention

* Move and rename missed notifications

* Move the three remaining public notification into Umbraco.Cms.Core.Notifications
2021-05-11 14:33:49 +02:00
Shannon Deminick
c991e83088 SiteDomainHelper cleanup (#10166)
* Fixes SiteDomainHelper = no more static weirdness and renames it.

* fix build
2021-04-22 12:25:25 +02:00
Shannon Deminick
a1624d26a3 Implements Public Access in netcore (#10137)
* Getting new netcore PublicAccessChecker in place

* Adds full test coverage for PublicAccessChecker

* remove PublicAccessComposer

* adjust namespaces, ensure RoleManager works, separate public access controller, reduce content controller

* Implements the required methods on IMemberManager, removes old migrated code

* Updates routing to be able to re-route, Fixes middleware ordering ensuring endpoints are last, refactors pipeline options, adds public access middleware, ensures public access follows all hops

* adds note

* adds note

* Cleans up ext methods, ensures that members identity is added on both front-end and back ends. updates how UmbracoApplicationBuilder works in that it explicitly starts endpoints at the time of calling.

* Changes name to IUmbracoEndpointBuilder

* adds note

* Fixing tests, fixing error describers so there's 2x one for back office, one for members, fixes TryConvertTo, fixes login redirect

* fixing build

* Fixes keepalive, fixes PublicAccessMiddleware to not throw, updates startup code to be more clear and removes magic that registers middleware.

* adds note

* removes unused filter, fixes build

* fixes WebPath and tests

* Looks up entities in one query

* remove usings

* Fix test, remove stylesheet

* Set status code before we write to response to avoid error

* Ensures that users and members are validated when logging in. Shares more code between users and members.

* Fixes RepositoryCacheKeys to ensure the keys are normalized

* oops didn't mean to commit this

* Fix casing issues with caching, stop boxing value types for all cache operations, stop re-creating string keys in DefaultRepositoryCachePolicy

* bah, far out this keeps getting recommitted. sorry

Co-authored-by: Bjarke Berg <mail@bergmania.dk>
2021-04-20 07:11:45 +02:00
Bjarke Berg
fbcaa6adea https://github.com/umbraco/Umbraco-CMS/issues/10060 - Fixed issue where appsettings section for modelsbuilder was not used. 2021-03-25 16:17:46 +01:00
Shannon
eba659b9ee Gets in-memory runtime minifiy cache working, ensures no files can be accessed at the root, adds config to enable in-memory and configure a cache buster including a timestamp cache buster. 2021-03-17 17:44:52 +11:00
Shannon
f03fc25b4c Splits into files, adds ICacheRefresherNotificationFactory, removes Init method 2021-03-15 13:39:34 +11:00
Bjarke Berg
2b89839724 Netcore: Get rid of default files in config folder (#9966)
* TourController now uses the core tours from embedded resources

* Moved tinyMceConfig.*.config to IOptions

* Embedded the default grid.editors.config.js

* Fixed issue when saving grid with an empty media cell

* Logviewer now uses sql as database instead of file.

* Remove config folder from build script and nuget pacakges.

* Removing auto-generated Id added to appsettings.json

* Update src/Umbraco.Web.BackOffice/Controllers/TourController.cs

Co-authored-by: Elitsa Marinovska <elm@umbraco.dk>
Co-authored-by: Elitsa Marinovska <21998037+elit0451@users.noreply.github.com>
2021-03-11 13:20:46 +01:00
Bjarke Berg
24d4b4c9fb Added validation and moved Unattended Settings into their own model. + Added DataAnnonation validation on all our settings 2021-03-07 19:20:16 +01:00
Mole
bf41c2eeaa Netcore: Align namespaces (#9801)
* Rename Umbraco.Core namespace to Umbraco.Cms.Core

* Move extension methods in core project to Umbraco.Extensions

* Move extension methods in core project to Umbraco.Extensions

* Rename Umbraco.Examine namespace to Umbraco.Cms.Examine

* Move examine extensions to Umbraco.Extensions namespace

* Reflect changed namespaces in Builder and fix unit tests

* Adjust namespace in Umbraco.ModelsBuilder.Embedded

* Adjust namespace in Umbraco.Persistence.SqlCe

* Adjust namespace in Umbraco.PublishedCache.NuCache

* Align namespaces in Umbraco.Web.BackOffice

* Align namespaces in Umbraco.Web.Common

* Ensure that SqlCeSupport is still enabled after changing the namespace

* Align namespaces in Umbraco.Web.Website

* Align namespaces in Umbraco.Web.UI.NetCore

* Align namespaces in Umbraco.Tests.Common

* Align namespaces in Umbraco.Tests.UnitTests

* Align namespaces in Umbraco.Tests.Integration

* Fix errors caused by changed namespaces

* Fix integration tests

* Undo the Umbraco.Examine.Lucene namespace change

This breaks integration tests on linux, since the namespace wont exists there because it's only used on windows.

* Fix merge

* Fix Merge
2021-02-18 11:06:02 +01:00
Bjarke Berg
8624a246ba Updated healthchecks to show a link to documentation instead of trying to fix something that can often not be fixed automatically. 2021-02-03 07:42:56 +01:00
Shannon
2a41cec263 Ensures the default PublishedModelFactory is always registered. Ensures AddModelsBuilder is done when adding the website (not required for the back office). 2021-02-01 16:53:24 +11:00
Shannon Deminick
b885bcf193 Merge pull request #9682 from umbraco/netcore/feature/add_support_for_sync_notification_handlers_in_event_aggregator
Netcore: Add support for sync notification handlers in event aggregator
2021-01-25 15:22:41 +11:00
Shannon
6e15668dad Fixes issue of double binding event aggregates 2021-01-21 17:37:18 +11:00