* Implemented health check notifier as a hosted service.
Added validation to health check settings.
* Registered health check notifier as a hosted service.
Modified health check nested settings to use concrete classes to align with other configuration models.
* Resolved issues with email sending using development server.
* PR review comments and fixed failing unit test.
* Changed period and delay millisecond and hourly values to TimeSpans.
Changed configuration of first run time for health check notifications to use H:mm format.
* Set up SecureSocketOptions as a locally defined enum.
* Tightened up time format validation to verify input is an actual time (with hours and minutes only) and not a timespan.
* Aligned naming and namespace of health check configuration related classes with other configuration classes.
* Created constants for hex colors used in formatting health check results as HTML.
* Revert "Tightened up time format validation to verify input is an actual time (with hours and minutes only) and not a timespan."
This reverts commit f9bb8a7a825bcb58146879f18b47922e09453e2d.
* Renamed method to be clear validation is of a TimeSpan and not a time.
Co-authored-by: Bjarke Berg <mail@bergmania.dk>
* Replace IFactory with IServiceProvider
* Replace IRegister with IServiceCollection
* Fix Rte.cshtml so the view can service locate.
* Replace Composing Lifetime with MSDI ServiceLifetime
* Remove ServiceProvider AddMultipleUnique extension
* Remove Umbraco.Web.Composing.Current.Reset and any calls
* Remove LightInject from net framework projects
* Brought back a helper for setting MediaFileSystem underlying IFileSystem
* Moved adapters from Infra -> Core
* Allow Composition to accept a service collection instead of an IRegister
* Composition no longer takes IRegister as constructor arg
all tests passing
* Composition no longer implements IRegister
* Lose _uniques in Composition
* lose Composition OnCreatingFactory actions
* Clean up UmbracoCoreServiceCollectionExtensions & Composition
Less IFactory
* LightInject gone where TFW == netstandard2.0 || TFW == netcoreapp3.1
* Resolve dead code issues
* Rename IFactory methods to match IServiceProvider so they can be trivially swapped later.
* Rename IFactory methods to match IServiceProvider so they can be trivially swapped later (continued)
Thought the counts were low, it's mostly extension method usage