diff --git a/.editorconfig b/.editorconfig
index 5a35b71ce6..29ad74b4d6 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -25,16 +25,22 @@ dotnet_naming_rule.private_members_with_underscore.severity = suggestion
dotnet_naming_symbols.private_fields.applicable_kinds = field
dotnet_naming_symbols.private_fields.applicable_accessibilities = private
+# dotnet_naming_symbols.private_fields.required_modifiers = abstract,async,readonly,static # all except const
dotnet_naming_style.prefix_underscore.capitalization = camel_case
dotnet_naming_style.prefix_underscore.required_prefix = _
+
+
+
+
+
# https://github.com/MicrosoftDocs/visualstudio-docs/blob/master/docs/ide/editorconfig-code-style-settings-reference.md
[*.cs]
csharp_style_var_for_built_in_types = true:suggestion
csharp_style_var_when_type_is_apparent = true:suggestion
csharp_style_var_elsewhere = true:suggestion
-csharp_prefer_braces = false : none
+csharp_prefer_braces = false : none
-[*.{js,less}]
-trim_trailing_whitespace = false
+[*.{js,less}]
+trim_trailing_whitespace = false
diff --git a/.github/BUILD.md b/.github/BUILD.md
index c6e870f396..ad33872423 100644
--- a/.github/BUILD.md
+++ b/.github/BUILD.md
@@ -43,6 +43,8 @@ If you only see a build.bat-file, you're probably on the wrong branch. If you sw
You might run into [Powershell quirks](#powershell-quirks).
+If it runs without errors; Hooray! Now you can continue with [the next step](CONTRIBUTING.md#how-do-i-begin) and open the solution and build it.
+
### Build Infrastructure
The Umbraco Build infrastructure relies on a PowerShell object. The object can be retrieved with:
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index cea5859486..0101ac9d16 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -28,7 +28,7 @@ This project and everyone participating in it, is governed by the [our Code of C
[Working with the code](#working-with-the-code)
* [Building Umbraco from source code](#building-umbraco-from-source-code)
* [Working with the source code](#working-with-the-source-code)
- * [Making changes after the PR was opened](#making-changes-after-the-pr-was-opened)
+ * [Making changes after the PR is open](#making-changes-after-the-pr-is-open)
* [Which branch should I target for my contributions?](#which-branch-should-i-target-for-my-contributions)
* [Keeping your Umbraco fork in sync with the main repository](#keeping-your-umbraco-fork-in-sync-with-the-main-repository)
@@ -65,7 +65,7 @@ Great question! The short version goes like this:
* **Change** - make your changes, experiment, have fun, explore and learn, and don't be afraid. We welcome all contributions and will [happily give feedback](#questions)
* **Commit** - done? Yay! 🎉 **Important:** create a new branch now and name it after the issue you're fixing, we usually follow the format: `temp-12345`. This means it's a temporary branch for the particular issue you're working on, in this case `12345`. When you have a branch, commit your changes. Don't commit to `v8/contrib`, create a new branch first.
* **Push** - great, now you can push the changes up to your fork on GitHub
- * **Create pull request** - exciting! You're ready to show us your changes (or not quite ready, you just need some feedback to progress - you can now make use of GitHub's draft pull request status, detailed [here] (https://github.blog/2019-02-14-introducing-draft-pull-requests/)). GitHub has picked up on the new branch you've pushed and will offer to create a Pull Request. Click that green button and away you go.
+ * **Create pull request** - exciting! You're ready to show us your changes (or not quite ready, you just need some feedback to progress - you can now make use of GitHub's draft pull request status, detailed [here](https://github.blog/2019-02-14-introducing-draft-pull-requests/)). GitHub has picked up on the new branch you've pushed and will offer to create a Pull Request. Click that green button and away you go.

diff --git a/src/SolutionInfo.cs b/src/SolutionInfo.cs
index a9f5dcf352..4c2d72fb8c 100644
--- a/src/SolutionInfo.cs
+++ b/src/SolutionInfo.cs
@@ -2,7 +2,7 @@
using System.Resources;
[assembly: AssemblyCompany("Umbraco")]
-[assembly: AssemblyCopyright("Copyright © Umbraco 2019")]
+[assembly: AssemblyCopyright("Copyright © Umbraco 2020")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
diff --git a/src/Umbraco.Abstractions/CompositionExtensions.cs b/src/Umbraco.Abstractions/CompositionExtensions.cs
deleted file mode 100644
index c65cff50d6..0000000000
--- a/src/Umbraco.Abstractions/CompositionExtensions.cs
+++ /dev/null
@@ -1,21 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
-using Umbraco.Core.Composing;
-
-namespace Umbraco.Core
-{
- public static partial class CompositionExtensions
- {
-
- #region Collection Builders
-
- ///
- /// Gets the components collection builder.
- ///
- public static ComponentCollectionBuilder Components(this Composition composition)
- => composition.WithCollectionBuilder();
-
- #endregion
- }
-}
diff --git a/src/Umbraco.Abstractions/Models/IDataEditorWithMediaPath.cs b/src/Umbraco.Abstractions/Models/IDataEditorWithMediaPath.cs
deleted file mode 100644
index e8af1b0ac3..0000000000
--- a/src/Umbraco.Abstractions/Models/IDataEditorWithMediaPath.cs
+++ /dev/null
@@ -1,19 +0,0 @@
-namespace Umbraco.Core.PropertyEditors
-{
- ///
- /// Must be implemented by property editors that store media and return media paths
- ///
- ///
- /// Currently there are only 2x core editors that do this: upload and image cropper.
- /// It would be possible for developers to know implement their own media property editors whereas previously this was not possible.
- ///
- public interface IDataEditorWithMediaPath
- {
- ///
- /// Returns the media path for the value stored for a property
- ///
- ///
- ///
- string GetMediaPath(object value);
- }
-}
diff --git a/src/Umbraco.Abstractions/Models/Identity/ICurrentUserAccessor.cs b/src/Umbraco.Abstractions/Models/Identity/ICurrentUserAccessor.cs
deleted file mode 100644
index 49b2c6d9f9..0000000000
--- a/src/Umbraco.Abstractions/Models/Identity/ICurrentUserAccessor.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using Umbraco.Core.Models.Membership;
-
-namespace Umbraco.Core.Models.Identity
-{
- public interface ICurrentUserAccessor
- {
- ///
- /// Returns the current user or null if no user is currently authenticated.
- ///
- /// The current user or null
- IUser TryGetCurrentUser();
- }
-}
diff --git a/src/Umbraco.Abstractions/Models/MacroTypes.cs b/src/Umbraco.Abstractions/Models/MacroTypes.cs
deleted file mode 100644
index 5f8440845d..0000000000
--- a/src/Umbraco.Abstractions/Models/MacroTypes.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System;
-using System.Runtime.Serialization;
-
-namespace Umbraco.Core.Models
-{
- ///
- /// Enum for the various types of Macros
- ///
- [Serializable]
- [DataContract(IsReference = true)]
- public enum MacroTypes
- {
- [EnumMember]
- Unknown = 4,
- [EnumMember]
- PartialView = 7
- }
-}
diff --git a/src/Umbraco.Configuration/ActiveDirectorySettings.cs b/src/Umbraco.Configuration/ActiveDirectorySettings.cs
new file mode 100644
index 0000000000..d85def7f33
--- /dev/null
+++ b/src/Umbraco.Configuration/ActiveDirectorySettings.cs
@@ -0,0 +1,15 @@
+using System.Configuration;
+using Umbraco.Core.Configuration;
+
+namespace Umbraco.Configuration
+{
+ public class ActiveDirectorySettings : IActiveDirectorySettings
+ {
+ public ActiveDirectorySettings()
+ {
+ ActiveDirectoryDomain = ConfigurationManager.AppSettings["ActiveDirectoryDomain"];
+ }
+
+ public string ActiveDirectoryDomain { get; }
+ }
+}
diff --git a/src/Umbraco.Configuration/ConfigsFactory.cs b/src/Umbraco.Configuration/ConfigsFactory.cs
index fea0c23f29..3742b7d7fa 100644
--- a/src/Umbraco.Configuration/ConfigsFactory.cs
+++ b/src/Umbraco.Configuration/ConfigsFactory.cs
@@ -1,4 +1,5 @@
using System.Configuration;
+using Umbraco.Configuration;
using Umbraco.Core.Configuration.HealthChecks;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.IO;
@@ -7,14 +8,16 @@ namespace Umbraco.Core.Configuration
{
public class ConfigsFactory : IConfigsFactory
{
-
- public ConfigsFactory()
- {
- }
-
public IHostingSettings HostingSettings { get; } = new HostingSettings();
public ICoreDebug CoreDebug { get; } = new CoreDebug();
+ public IMachineKeyConfig MachineKeyConfig { get; } = new MachineKeyConfig();
+ public IIndexCreatorSettings IndexCreatorSettings { get; } = new IndexCreatorSettings();
+ public INuCacheSettings NuCacheSettings { get; } = new NuCacheSettings();
+ public ITypeFinderSettings TypeFinderSettings { get; } = new TypeFinderSettings();
+ public IRuntimeSettings RuntimeSettings { get; } = new RuntimeSettings();
+ public IActiveDirectorySettings ActiveDirectorySettings { get; } = new ActiveDirectorySettings();
+ public IExceptionFilterSettings ExceptionFilterSettings { get; } = new ExceptionFilterSettings();
public IUmbracoSettingsSection UmbracoSettings { get; }
@@ -32,7 +35,18 @@ namespace Umbraco.Core.Configuration
configs.AddPasswordConfigurations();
configs.Add(() => CoreDebug);
- configs.Add(() => new ConnectionStrings());
+ configs.Add(() => MachineKeyConfig);
+ configs.Add(() => new ConnectionStrings(ioHelper));
+ configs.Add(() => new ModelsBuilderConfig(ioHelper));
+
+
+ configs.Add(() => IndexCreatorSettings);
+ configs.Add(() => NuCacheSettings);
+ configs.Add(() => TypeFinderSettings);
+ configs.Add(() => RuntimeSettings);
+ configs.Add(() => ActiveDirectorySettings);
+ configs.Add(() => ExceptionFilterSettings);
+
configs.AddCoreConfigs(ioHelper);
return configs;
}
diff --git a/src/Umbraco.Configuration/ConnectionStrings.cs b/src/Umbraco.Configuration/ConnectionStrings.cs
index 707f58c7b7..6a00974831 100644
--- a/src/Umbraco.Configuration/ConnectionStrings.cs
+++ b/src/Umbraco.Configuration/ConnectionStrings.cs
@@ -8,6 +8,13 @@ namespace Umbraco.Core.Configuration
{
public class ConnectionStrings : IConnectionStrings
{
+ private readonly IIOHelper _ioHelper;
+
+ public ConnectionStrings(IIOHelper ioHelper)
+ {
+ _ioHelper = ioHelper;
+ }
+
public ConfigConnectionString this[string key]
{
get
@@ -17,5 +24,22 @@ namespace Umbraco.Core.Configuration
return new ConfigConnectionString(settings.ConnectionString, settings.ProviderName, settings.Name);
}
}
+
+ public void RemoveConnectionString(string key)
+ {
+ var fileName = _ioHelper.MapPath(string.Format("{0}/web.config", _ioHelper.Root));
+ var xml = XDocument.Load(fileName, LoadOptions.PreserveWhitespace);
+
+ var appSettings = xml.Root.DescendantsAndSelf("appSettings").Single();
+ var setting = appSettings.Descendants("add").FirstOrDefault(s => s.Attribute("key").Value == key);
+
+ if (setting != null)
+ {
+ setting.Remove();
+ xml.Save(fileName, SaveOptions.DisableFormatting);
+ ConfigurationManager.RefreshSection("appSettings");
+ }
+ var settings = ConfigurationManager.ConnectionStrings[key];
+ }
}
}
diff --git a/src/Umbraco.Configuration/ExceptionFilterSettings.cs b/src/Umbraco.Configuration/ExceptionFilterSettings.cs
new file mode 100644
index 0000000000..628b8755cc
--- /dev/null
+++ b/src/Umbraco.Configuration/ExceptionFilterSettings.cs
@@ -0,0 +1,18 @@
+using System.Configuration;
+using Umbraco.Core.Configuration;
+
+namespace Umbraco.Configuration
+{
+ public class ExceptionFilterSettings : IExceptionFilterSettings
+ {
+ public ExceptionFilterSettings()
+ {
+ if (bool.TryParse(ConfigurationManager.AppSettings["Umbraco.Web.DisableModelBindingExceptionFilter"],
+ out var disabled))
+ {
+ Disabled = disabled;
+ }
+ }
+ public bool Disabled { get; }
+ }
+}
diff --git a/src/Umbraco.Configuration/GlobalSettings.cs b/src/Umbraco.Configuration/GlobalSettings.cs
index 6cd1ea58a5..56e64fff31 100644
--- a/src/Umbraco.Configuration/GlobalSettings.cs
+++ b/src/Umbraco.Configuration/GlobalSettings.cs
@@ -254,27 +254,7 @@ namespace Umbraco.Core.Configuration
ConfigurationManager.RefreshSection("appSettings");
}
- ///
- /// Removes a setting from the configuration file.
- ///
- /// Key of the setting to be removed.
- public static void RemoveSetting(string key, IIOHelper ioHelper)
- {
- var fileName = ioHelper.MapPath(string.Format("{0}/web.config", ioHelper.Root));
- var xml = XDocument.Load(fileName, LoadOptions.PreserveWhitespace);
-
- var appSettings = xml.Root.DescendantsAndSelf("appSettings").Single();
- var setting = appSettings.Descendants("add").FirstOrDefault(s => s.Attribute("key").Value == key);
-
- if (setting != null)
- {
- setting.Remove();
- xml.Save(fileName, SaveOptions.DisableFormatting);
- ConfigurationManager.RefreshSection("appSettings");
- }
- }
-
-
+
///
/// Gets the time out in minutes.
///
@@ -402,6 +382,10 @@ namespace Umbraco.Core.Configuration
private string _databaseFactoryServerVersion;
public string DatabaseFactoryServerVersion => GetterWithDefaultValue(Constants.AppSettings.Debug.DatabaseFactoryServerVersion, string.Empty, ref _databaseFactoryServerVersion);
+ private string _mainDomLock;
+
+ public string MainDomLock => GetterWithDefaultValue(Constants.AppSettings.MainDomLock, string.Empty, ref _mainDomLock);
+
private T GetterWithDefaultValue(string appSettingKey, T defaultValue, ref T backingField)
{
if (backingField != null) return backingField;
diff --git a/src/Umbraco.Configuration/IndexCreatorSettings.cs b/src/Umbraco.Configuration/IndexCreatorSettings.cs
new file mode 100644
index 0000000000..00d1a29dba
--- /dev/null
+++ b/src/Umbraco.Configuration/IndexCreatorSettings.cs
@@ -0,0 +1,15 @@
+using System.Configuration;
+using Umbraco.Core.Configuration;
+
+namespace Umbraco.Configuration
+{
+ public class IndexCreatorSettings : IIndexCreatorSettings
+ {
+ public IndexCreatorSettings()
+ {
+ LuceneDirectoryFactory = ConfigurationManager.AppSettings["Umbraco.Examine.LuceneDirectoryFactory"];
+ }
+
+ public string LuceneDirectoryFactory { get; }
+ }
+}
diff --git a/src/Umbraco.Configuration/MachineKeyConfig.cs b/src/Umbraco.Configuration/MachineKeyConfig.cs
new file mode 100644
index 0000000000..4e3401e015
--- /dev/null
+++ b/src/Umbraco.Configuration/MachineKeyConfig.cs
@@ -0,0 +1,20 @@
+using System.Configuration;
+using Umbraco.Core.Configuration;
+
+namespace Umbraco.Configuration
+{
+ public class MachineKeyConfig : IMachineKeyConfig
+ {
+ //TODO all the machineKey stuff should be replaced: https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/compatibility/replacing-machinekey?view=aspnetcore-3.1
+
+ public bool HasMachineKey
+ {
+ get
+ {
+ var machineKeySection =
+ ConfigurationManager.GetSection("system.web/machineKey") as ConfigurationSection;
+ return !(machineKeySection?.ElementInformation?.Source is null);
+ }
+ }
+ }
+}
diff --git a/src/Umbraco.ModelsBuilder.Embedded/Configuration/ModelsBuilderConfig.cs b/src/Umbraco.Configuration/ModelsBuilderConfig.cs
similarity index 94%
rename from src/Umbraco.ModelsBuilder.Embedded/Configuration/ModelsBuilderConfig.cs
rename to src/Umbraco.Configuration/ModelsBuilderConfig.cs
index d0137ed2b2..151e9908a1 100644
--- a/src/Umbraco.ModelsBuilder.Embedded/Configuration/ModelsBuilderConfig.cs
+++ b/src/Umbraco.Configuration/ModelsBuilderConfig.cs
@@ -2,11 +2,11 @@
using System.Configuration;
using System.IO;
using System.Threading;
-using System.Web.Configuration;
+using Umbraco.Core.Configuration;
using Umbraco.Core;
using Umbraco.Core.IO;
-namespace Umbraco.ModelsBuilder.Embedded.Configuration
+namespace Umbraco.Configuration
{
///
/// Represents the models builder configuration.
@@ -21,7 +21,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Configuration
private object _flagOutOfDateModelsLock;
private bool _flagOutOfDateModelsConfigured;
private bool _flagOutOfDateModels;
- public const string DefaultModelsNamespace = "Umbraco.Web.PublishedModels";
+
public string DefaultModelsDirectory => _ioHelper.MapPath("~/App_Data/Models");
@@ -37,7 +37,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Configuration
Enable = ConfigurationManager.AppSettings[Prefix + "Enable"] == "true";
// ensure defaults are initialized for tests
- ModelsNamespace = DefaultModelsNamespace;
+ ModelsNamespace = Constants.ModelsBuilder.DefaultModelsNamespace;
ModelsDirectory = DefaultModelsDirectory;
DebugLevel = 0;
@@ -95,7 +95,7 @@ namespace Umbraco.ModelsBuilder.Embedded.Configuration
Enable = enable;
_modelsMode = modelsMode;
- ModelsNamespace = string.IsNullOrWhiteSpace(modelsNamespace) ? DefaultModelsNamespace : modelsNamespace;
+ ModelsNamespace = string.IsNullOrWhiteSpace(modelsNamespace) ? Constants.ModelsBuilder.DefaultModelsNamespace : modelsNamespace;
EnableFactory = enableFactory;
_flagOutOfDateModels = flagOutOfDateModels;
ModelsDirectory = string.IsNullOrWhiteSpace(modelsDirectory) ? DefaultModelsDirectory : modelsDirectory;
@@ -174,8 +174,13 @@ namespace Umbraco.ModelsBuilder.Embedded.Configuration
{
get
{
- var section = (CompilationSection)ConfigurationManager.GetSection("system.web/compilation");
- return section != null && section.Debug;
+ if (ConfigurationManager.GetSection("system.web/compilation") is ConfigurationSection section &&
+ bool.TryParse(section.ElementInformation.Properties["debug"].Value.ToString(), out var isDebug))
+ {
+ return isDebug;
+ }
+
+ return false;
}
}
diff --git a/src/Umbraco.Configuration/NuCacheSettings.cs b/src/Umbraco.Configuration/NuCacheSettings.cs
new file mode 100644
index 0000000000..c3a286d33d
--- /dev/null
+++ b/src/Umbraco.Configuration/NuCacheSettings.cs
@@ -0,0 +1,14 @@
+using System.Configuration;
+using Umbraco.Core.Configuration;
+
+namespace Umbraco.Configuration
+{
+ public class NuCacheSettings : INuCacheSettings
+ {
+ public NuCacheSettings()
+ {
+ BTreeBlockSize = ConfigurationManager.AppSettings["Umbraco.Web.PublishedCache.NuCache.BTree.BlockSize"];
+ }
+ public string BTreeBlockSize { get; }
+ }
+}
diff --git a/src/Umbraco.Configuration/RuntimeSettings.cs b/src/Umbraco.Configuration/RuntimeSettings.cs
new file mode 100644
index 0000000000..6dc8d6f832
--- /dev/null
+++ b/src/Umbraco.Configuration/RuntimeSettings.cs
@@ -0,0 +1,29 @@
+using System.Configuration;
+using Umbraco.Core.Configuration;
+
+namespace Umbraco.Configuration
+{
+ public class RuntimeSettings : IRuntimeSettings
+ {
+ public RuntimeSettings()
+ {
+ if (ConfigurationManager.GetSection("system.web/httpRuntime") is ConfigurationSection section)
+ {
+ var maxRequestLengthProperty = section.ElementInformation.Properties["maxRequestLength"];
+ if (maxRequestLengthProperty != null && maxRequestLengthProperty.Value is int requestLength)
+ {
+ MaxRequestLength = requestLength;
+ }
+
+ var maxQueryStringProperty = section.ElementInformation.Properties["maxQueryStringLength"];
+ if (maxQueryStringProperty != null && maxQueryStringProperty.Value is int maxQueryStringLength)
+ {
+ MaxQueryStringLength = maxQueryStringLength;
+ }
+ }
+ }
+ public int? MaxQueryStringLength { get; }
+ public int? MaxRequestLength { get; }
+
+ }
+}
diff --git a/src/Umbraco.Configuration/TypeFinderSettings.cs b/src/Umbraco.Configuration/TypeFinderSettings.cs
new file mode 100644
index 0000000000..bb3063d7bf
--- /dev/null
+++ b/src/Umbraco.Configuration/TypeFinderSettings.cs
@@ -0,0 +1,17 @@
+using System.Configuration;
+using Umbraco.Core.Configuration;
+using Umbraco.Core;
+
+namespace Umbraco.Configuration
+{
+ public class TypeFinderSettings : ITypeFinderSettings
+ {
+ public TypeFinderSettings()
+ {
+ AssembliesAcceptingLoadExceptions = ConfigurationManager.AppSettings[
+ Constants.AppSettings.AssembliesAcceptingLoadExceptions];
+ }
+
+ public string AssembliesAcceptingLoadExceptions { get; }
+ }
+}
diff --git a/src/Umbraco.Configuration/Umbraco.Configuration.csproj b/src/Umbraco.Configuration/Umbraco.Configuration.csproj
index 15c6ac263f..57fca1dfd6 100644
--- a/src/Umbraco.Configuration/Umbraco.Configuration.csproj
+++ b/src/Umbraco.Configuration/Umbraco.Configuration.csproj
@@ -2,6 +2,7 @@
netstandard2.0
+ 8
@@ -25,7 +26,7 @@
-
+
diff --git a/src/Umbraco.Abstractions/Actions/ActionAssignDomain.cs b/src/Umbraco.Core/Actions/ActionAssignDomain.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionAssignDomain.cs
rename to src/Umbraco.Core/Actions/ActionAssignDomain.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionBrowse.cs b/src/Umbraco.Core/Actions/ActionBrowse.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionBrowse.cs
rename to src/Umbraco.Core/Actions/ActionBrowse.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionChangeDocType.cs b/src/Umbraco.Core/Actions/ActionChangeDocType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionChangeDocType.cs
rename to src/Umbraco.Core/Actions/ActionChangeDocType.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionCollection.cs b/src/Umbraco.Core/Actions/ActionCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionCollection.cs
rename to src/Umbraco.Core/Actions/ActionCollection.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionCollectionBuilder.cs b/src/Umbraco.Core/Actions/ActionCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionCollectionBuilder.cs
rename to src/Umbraco.Core/Actions/ActionCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionCopy.cs b/src/Umbraco.Core/Actions/ActionCopy.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionCopy.cs
rename to src/Umbraco.Core/Actions/ActionCopy.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionCreateBlueprintFromContent.cs b/src/Umbraco.Core/Actions/ActionCreateBlueprintFromContent.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionCreateBlueprintFromContent.cs
rename to src/Umbraco.Core/Actions/ActionCreateBlueprintFromContent.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionDelete.cs b/src/Umbraco.Core/Actions/ActionDelete.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionDelete.cs
rename to src/Umbraco.Core/Actions/ActionDelete.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionMove.cs b/src/Umbraco.Core/Actions/ActionMove.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionMove.cs
rename to src/Umbraco.Core/Actions/ActionMove.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionNew.cs b/src/Umbraco.Core/Actions/ActionNew.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionNew.cs
rename to src/Umbraco.Core/Actions/ActionNew.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionProtect.cs b/src/Umbraco.Core/Actions/ActionProtect.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionProtect.cs
rename to src/Umbraco.Core/Actions/ActionProtect.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionPublish.cs b/src/Umbraco.Core/Actions/ActionPublish.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionPublish.cs
rename to src/Umbraco.Core/Actions/ActionPublish.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionRestore.cs b/src/Umbraco.Core/Actions/ActionRestore.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionRestore.cs
rename to src/Umbraco.Core/Actions/ActionRestore.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionRights.cs b/src/Umbraco.Core/Actions/ActionRights.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionRights.cs
rename to src/Umbraco.Core/Actions/ActionRights.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionRollback.cs b/src/Umbraco.Core/Actions/ActionRollback.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionRollback.cs
rename to src/Umbraco.Core/Actions/ActionRollback.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionSort.cs b/src/Umbraco.Core/Actions/ActionSort.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionSort.cs
rename to src/Umbraco.Core/Actions/ActionSort.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionToPublish.cs b/src/Umbraco.Core/Actions/ActionToPublish.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionToPublish.cs
rename to src/Umbraco.Core/Actions/ActionToPublish.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionUnpublish.cs b/src/Umbraco.Core/Actions/ActionUnpublish.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionUnpublish.cs
rename to src/Umbraco.Core/Actions/ActionUnpublish.cs
diff --git a/src/Umbraco.Abstractions/Actions/ActionUpdate.cs b/src/Umbraco.Core/Actions/ActionUpdate.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/ActionUpdate.cs
rename to src/Umbraco.Core/Actions/ActionUpdate.cs
diff --git a/src/Umbraco.Abstractions/Actions/IAction.cs b/src/Umbraco.Core/Actions/IAction.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Actions/IAction.cs
rename to src/Umbraco.Core/Actions/IAction.cs
diff --git a/src/Umbraco.Abstractions/AssemblyExtensions.cs b/src/Umbraco.Core/AssemblyExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/AssemblyExtensions.cs
rename to src/Umbraco.Core/AssemblyExtensions.cs
diff --git a/src/Umbraco.Abstractions/Attempt.cs b/src/Umbraco.Core/Attempt.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Attempt.cs
rename to src/Umbraco.Core/Attempt.cs
diff --git a/src/Umbraco.Abstractions/AttemptOfTResult.cs b/src/Umbraco.Core/AttemptOfTResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/AttemptOfTResult.cs
rename to src/Umbraco.Core/AttemptOfTResult.cs
diff --git a/src/Umbraco.Abstractions/AttemptOfTResultTStatus.cs b/src/Umbraco.Core/AttemptOfTResultTStatus.cs
similarity index 100%
rename from src/Umbraco.Abstractions/AttemptOfTResultTStatus.cs
rename to src/Umbraco.Core/AttemptOfTResultTStatus.cs
diff --git a/src/Umbraco.Abstractions/Cache/AppCacheExtensions.cs b/src/Umbraco.Core/Cache/AppCacheExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/AppCacheExtensions.cs
rename to src/Umbraco.Core/Cache/AppCacheExtensions.cs
diff --git a/src/Umbraco.Abstractions/Cache/AppCaches.cs b/src/Umbraco.Core/Cache/AppCaches.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/AppCaches.cs
rename to src/Umbraco.Core/Cache/AppCaches.cs
diff --git a/src/Umbraco.Abstractions/Cache/AppPolicedCacheDictionary.cs b/src/Umbraco.Core/Cache/AppPolicedCacheDictionary.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/AppPolicedCacheDictionary.cs
rename to src/Umbraco.Core/Cache/AppPolicedCacheDictionary.cs
diff --git a/src/Umbraco.Abstractions/Cache/ApplicationCacheRefresher.cs b/src/Umbraco.Core/Cache/ApplicationCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/ApplicationCacheRefresher.cs
rename to src/Umbraco.Core/Cache/ApplicationCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/CacheKeys.cs b/src/Umbraco.Core/Cache/CacheKeys.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/CacheKeys.cs
rename to src/Umbraco.Core/Cache/CacheKeys.cs
diff --git a/src/Umbraco.Abstractions/Cache/CacheRefresherBase.cs b/src/Umbraco.Core/Cache/CacheRefresherBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/CacheRefresherBase.cs
rename to src/Umbraco.Core/Cache/CacheRefresherBase.cs
diff --git a/src/Umbraco.Abstractions/Cache/CacheRefresherCollection.cs b/src/Umbraco.Core/Cache/CacheRefresherCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/CacheRefresherCollection.cs
rename to src/Umbraco.Core/Cache/CacheRefresherCollection.cs
diff --git a/src/Umbraco.Abstractions/Cache/CacheRefresherCollectionBuilder.cs b/src/Umbraco.Core/Cache/CacheRefresherCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/CacheRefresherCollectionBuilder.cs
rename to src/Umbraco.Core/Cache/CacheRefresherCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/Cache/CacheRefresherEventArgs.cs b/src/Umbraco.Core/Cache/CacheRefresherEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/CacheRefresherEventArgs.cs
rename to src/Umbraco.Core/Cache/CacheRefresherEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Cache/ContentCacheRefresher.cs b/src/Umbraco.Core/Cache/ContentCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/ContentCacheRefresher.cs
rename to src/Umbraco.Core/Cache/ContentCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/ContentTypeCacheRefresher.cs b/src/Umbraco.Core/Cache/ContentTypeCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/ContentTypeCacheRefresher.cs
rename to src/Umbraco.Core/Cache/ContentTypeCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/DataTypeCacheRefresher.cs b/src/Umbraco.Core/Cache/DataTypeCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/DataTypeCacheRefresher.cs
rename to src/Umbraco.Core/Cache/DataTypeCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/DeepCloneAppCache.cs b/src/Umbraco.Core/Cache/DeepCloneAppCache.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/DeepCloneAppCache.cs
rename to src/Umbraco.Core/Cache/DeepCloneAppCache.cs
diff --git a/src/Umbraco.Abstractions/Cache/DictionaryAppCache.cs b/src/Umbraco.Core/Cache/DictionaryAppCache.cs
similarity index 94%
rename from src/Umbraco.Abstractions/Cache/DictionaryAppCache.cs
rename to src/Umbraco.Core/Cache/DictionaryAppCache.cs
index fd360b303d..d372916240 100644
--- a/src/Umbraco.Abstractions/Cache/DictionaryAppCache.cs
+++ b/src/Umbraco.Core/Cache/DictionaryAppCache.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.Text.RegularExpressions;
@@ -101,5 +102,9 @@ namespace Umbraco.Core.Cache
var compiled = new Regex(regex, RegexOptions.Compiled);
_items.RemoveAll(kvp => compiled.IsMatch(kvp.Key));
}
+
+ public IEnumerator> GetEnumerator() => _items.GetEnumerator();
+
+ IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
}
diff --git a/src/Umbraco.Abstractions/Cache/DictionaryCacheRefresher.cs b/src/Umbraco.Core/Cache/DictionaryCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/DictionaryCacheRefresher.cs
rename to src/Umbraco.Core/Cache/DictionaryCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/DistributedCache.cs b/src/Umbraco.Core/Cache/DistributedCache.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/DistributedCache.cs
rename to src/Umbraco.Core/Cache/DistributedCache.cs
diff --git a/src/Umbraco.Abstractions/Cache/DistributedCacheBinderComponent.cs b/src/Umbraco.Core/Cache/DistributedCacheBinderComponent.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/DistributedCacheBinderComponent.cs
rename to src/Umbraco.Core/Cache/DistributedCacheBinderComponent.cs
diff --git a/src/Umbraco.Abstractions/Cache/DomainCacheRefresher.cs b/src/Umbraco.Core/Cache/DomainCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/DomainCacheRefresher.cs
rename to src/Umbraco.Core/Cache/DomainCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/FastDictionaryAppCache.cs b/src/Umbraco.Core/Cache/FastDictionaryAppCache.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/FastDictionaryAppCache.cs
rename to src/Umbraco.Core/Cache/FastDictionaryAppCache.cs
diff --git a/src/Umbraco.Abstractions/Cache/FastDictionaryAppCacheBase.cs b/src/Umbraco.Core/Cache/FastDictionaryAppCacheBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/FastDictionaryAppCacheBase.cs
rename to src/Umbraco.Core/Cache/FastDictionaryAppCacheBase.cs
diff --git a/src/Umbraco.Abstractions/Cache/HttpRequestAppCache.cs b/src/Umbraco.Core/Cache/HttpRequestAppCache.cs
similarity index 92%
rename from src/Umbraco.Abstractions/Cache/HttpRequestAppCache.cs
rename to src/Umbraco.Core/Cache/HttpRequestAppCache.cs
index 87d87ad1c9..e698d93ebe 100644
--- a/src/Umbraco.Abstractions/Cache/HttpRequestAppCache.cs
+++ b/src/Umbraco.Core/Cache/HttpRequestAppCache.cs
@@ -171,5 +171,20 @@ namespace Umbraco.Core.Cache
}
#endregion
+
+ public IEnumerator> GetEnumerator()
+ {
+ if (!TryGetContextItems(out var items))
+ {
+ yield break;
+ }
+
+ foreach (DictionaryEntry item in items)
+ {
+ yield return new KeyValuePair(item.Key.ToString(), item.Value);
+ }
+ }
+
+ IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
}
diff --git a/src/Umbraco.Abstractions/Cache/IAppCache.cs b/src/Umbraco.Core/Cache/IAppCache.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/IAppCache.cs
rename to src/Umbraco.Core/Cache/IAppCache.cs
diff --git a/src/Umbraco.Abstractions/Cache/IAppPolicyCache.cs b/src/Umbraco.Core/Cache/IAppPolicyCache.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/IAppPolicyCache.cs
rename to src/Umbraco.Core/Cache/IAppPolicyCache.cs
diff --git a/src/Umbraco.Abstractions/Cache/ICacheRefresher.cs b/src/Umbraco.Core/Cache/ICacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/ICacheRefresher.cs
rename to src/Umbraco.Core/Cache/ICacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/IDistributedCacheBinder.cs b/src/Umbraco.Core/Cache/IDistributedCacheBinder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/IDistributedCacheBinder.cs
rename to src/Umbraco.Core/Cache/IDistributedCacheBinder.cs
diff --git a/src/Umbraco.Abstractions/Cache/IJsonCacheRefresher.cs b/src/Umbraco.Core/Cache/IJsonCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/IJsonCacheRefresher.cs
rename to src/Umbraco.Core/Cache/IJsonCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/IPayloadCacheRefresher.cs b/src/Umbraco.Core/Cache/IPayloadCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/IPayloadCacheRefresher.cs
rename to src/Umbraco.Core/Cache/IPayloadCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/IRepositoryCachePolicy.cs b/src/Umbraco.Core/Cache/IRepositoryCachePolicy.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/IRepositoryCachePolicy.cs
rename to src/Umbraco.Core/Cache/IRepositoryCachePolicy.cs
diff --git a/src/Umbraco.Abstractions/Cache/IRequestCache.cs b/src/Umbraco.Core/Cache/IRequestCache.cs
similarity index 68%
rename from src/Umbraco.Abstractions/Cache/IRequestCache.cs
rename to src/Umbraco.Core/Cache/IRequestCache.cs
index 5ed32b5ba0..7ed7f8251c 100644
--- a/src/Umbraco.Abstractions/Cache/IRequestCache.cs
+++ b/src/Umbraco.Core/Cache/IRequestCache.cs
@@ -1,6 +1,8 @@
+using System.Collections.Generic;
+
namespace Umbraco.Core.Cache
{
- public interface IRequestCache : IAppCache
+ public interface IRequestCache : IAppCache, IEnumerable>
{
bool Set(string key, object value);
bool Remove(string key);
diff --git a/src/Umbraco.Abstractions/Cache/IsolatedCaches.cs b/src/Umbraco.Core/Cache/IsolatedCaches.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/IsolatedCaches.cs
rename to src/Umbraco.Core/Cache/IsolatedCaches.cs
diff --git a/src/Umbraco.Abstractions/Cache/JsonCacheRefresherBase.cs b/src/Umbraco.Core/Cache/JsonCacheRefresherBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/JsonCacheRefresherBase.cs
rename to src/Umbraco.Core/Cache/JsonCacheRefresherBase.cs
diff --git a/src/Umbraco.Abstractions/Cache/LanguageCacheRefresher.cs b/src/Umbraco.Core/Cache/LanguageCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/LanguageCacheRefresher.cs
rename to src/Umbraco.Core/Cache/LanguageCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/MacroCacheRefresher.cs b/src/Umbraco.Core/Cache/MacroCacheRefresher.cs
similarity index 94%
rename from src/Umbraco.Abstractions/Cache/MacroCacheRefresher.cs
rename to src/Umbraco.Core/Cache/MacroCacheRefresher.cs
index 40c577444b..009e9f38d0 100644
--- a/src/Umbraco.Abstractions/Cache/MacroCacheRefresher.cs
+++ b/src/Umbraco.Core/Cache/MacroCacheRefresher.cs
@@ -7,7 +7,7 @@ using Umbraco.Core.Serialization;
namespace Umbraco.Web.Cache
{
- public sealed class MacroCacheRefresher : JsonCacheRefresherBase
+ public sealed class MacroCacheRefresher : PayloadCacheRefresherBase
{
public MacroCacheRefresher(AppCaches appCaches, IJsonSerializer jsonSerializer)
: base(appCaches, jsonSerializer)
@@ -53,7 +53,7 @@ namespace Umbraco.Web.Cache
{
macroRepoCache.Result.Clear(RepositoryCacheKeys.GetKey(payload.Id));
}
- };
+ }
base.Refresh(json);
}
diff --git a/src/Umbraco.Abstractions/Cache/MediaCacheRefresher.cs b/src/Umbraco.Core/Cache/MediaCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/MediaCacheRefresher.cs
rename to src/Umbraco.Core/Cache/MediaCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/MemberCacheRefresher.cs b/src/Umbraco.Core/Cache/MemberCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/MemberCacheRefresher.cs
rename to src/Umbraco.Core/Cache/MemberCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/MemberGroupCacheRefresher.cs b/src/Umbraco.Core/Cache/MemberGroupCacheRefresher.cs
similarity index 92%
rename from src/Umbraco.Abstractions/Cache/MemberGroupCacheRefresher.cs
rename to src/Umbraco.Core/Cache/MemberGroupCacheRefresher.cs
index 1149d499f5..213ca11302 100644
--- a/src/Umbraco.Abstractions/Cache/MemberGroupCacheRefresher.cs
+++ b/src/Umbraco.Core/Cache/MemberGroupCacheRefresher.cs
@@ -6,7 +6,7 @@ using Umbraco.Core.Serialization;
namespace Umbraco.Web.Cache
{
- public sealed class MemberGroupCacheRefresher : JsonCacheRefresherBase
+ public sealed class MemberGroupCacheRefresher : PayloadCacheRefresherBase
{
public MemberGroupCacheRefresher(AppCaches appCaches, IJsonSerializer jsonSerializer)
: base(appCaches, jsonSerializer)
diff --git a/src/Umbraco.Abstractions/Cache/NoAppCache.cs b/src/Umbraco.Core/Cache/NoAppCache.cs
similarity index 91%
rename from src/Umbraco.Abstractions/Cache/NoAppCache.cs
rename to src/Umbraco.Core/Cache/NoAppCache.cs
index 5ca8f47059..60bc6fb8b8 100644
--- a/src/Umbraco.Abstractions/Cache/NoAppCache.cs
+++ b/src/Umbraco.Core/Cache/NoAppCache.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections;
using System.Collections.Generic;
using System.Linq;
@@ -84,5 +85,9 @@ namespace Umbraco.Core.Cache
///
public virtual void ClearByRegex(string regex)
{ }
+
+ public IEnumerator> GetEnumerator() => new Dictionary().GetEnumerator();
+
+ IEnumerator IEnumerable.GetEnumerator() => GetEnumerator();
}
}
diff --git a/src/Umbraco.Abstractions/Cache/NoCacheRepositoryCachePolicy.cs b/src/Umbraco.Core/Cache/NoCacheRepositoryCachePolicy.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/NoCacheRepositoryCachePolicy.cs
rename to src/Umbraco.Core/Cache/NoCacheRepositoryCachePolicy.cs
diff --git a/src/Umbraco.Abstractions/Cache/ObjectCacheAppCache.cs b/src/Umbraco.Core/Cache/ObjectCacheAppCache.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/ObjectCacheAppCache.cs
rename to src/Umbraco.Core/Cache/ObjectCacheAppCache.cs
diff --git a/src/Umbraco.Abstractions/Cache/PayloadCacheRefresherBase.cs b/src/Umbraco.Core/Cache/PayloadCacheRefresherBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/PayloadCacheRefresherBase.cs
rename to src/Umbraco.Core/Cache/PayloadCacheRefresherBase.cs
diff --git a/src/Umbraco.Abstractions/Cache/PublicAccessCacheRefresher.cs b/src/Umbraco.Core/Cache/PublicAccessCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/PublicAccessCacheRefresher.cs
rename to src/Umbraco.Core/Cache/PublicAccessCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/RelationTypeCacheRefresher.cs b/src/Umbraco.Core/Cache/RelationTypeCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/RelationTypeCacheRefresher.cs
rename to src/Umbraco.Core/Cache/RelationTypeCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/RepositoryCachePolicyOptions.cs b/src/Umbraco.Core/Cache/RepositoryCachePolicyOptions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/RepositoryCachePolicyOptions.cs
rename to src/Umbraco.Core/Cache/RepositoryCachePolicyOptions.cs
diff --git a/src/Umbraco.Abstractions/Cache/SafeLazy.cs b/src/Umbraco.Core/Cache/SafeLazy.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/SafeLazy.cs
rename to src/Umbraco.Core/Cache/SafeLazy.cs
diff --git a/src/Umbraco.Abstractions/Cache/TemplateCacheRefresher.cs b/src/Umbraco.Core/Cache/TemplateCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/TemplateCacheRefresher.cs
rename to src/Umbraco.Core/Cache/TemplateCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/TypedCacheRefresherBase.cs b/src/Umbraco.Core/Cache/TypedCacheRefresherBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/TypedCacheRefresherBase.cs
rename to src/Umbraco.Core/Cache/TypedCacheRefresherBase.cs
diff --git a/src/Umbraco.Abstractions/Cache/UserCacheRefresher.cs b/src/Umbraco.Core/Cache/UserCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/UserCacheRefresher.cs
rename to src/Umbraco.Core/Cache/UserCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/Cache/UserGroupCacheRefresher.cs b/src/Umbraco.Core/Cache/UserGroupCacheRefresher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Cache/UserGroupCacheRefresher.cs
rename to src/Umbraco.Core/Cache/UserGroupCacheRefresher.cs
diff --git a/src/Umbraco.Abstractions/CacheHelperExtensions.cs b/src/Umbraco.Core/CacheHelperExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/CacheHelperExtensions.cs
rename to src/Umbraco.Core/CacheHelperExtensions.cs
diff --git a/src/Umbraco.Abstractions/CodeAnnotations/FriendlyNameAttribute.cs b/src/Umbraco.Core/CodeAnnotations/FriendlyNameAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/CodeAnnotations/FriendlyNameAttribute.cs
rename to src/Umbraco.Core/CodeAnnotations/FriendlyNameAttribute.cs
diff --git a/src/Umbraco.Abstractions/CodeAnnotations/UmbracoObjectTypeAttribute.cs b/src/Umbraco.Core/CodeAnnotations/UmbracoObjectTypeAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/CodeAnnotations/UmbracoObjectTypeAttribute.cs
rename to src/Umbraco.Core/CodeAnnotations/UmbracoObjectTypeAttribute.cs
diff --git a/src/Umbraco.Abstractions/CodeAnnotations/UmbracoUdiTypeAttribute.cs b/src/Umbraco.Core/CodeAnnotations/UmbracoUdiTypeAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/CodeAnnotations/UmbracoUdiTypeAttribute.cs
rename to src/Umbraco.Core/CodeAnnotations/UmbracoUdiTypeAttribute.cs
diff --git a/src/Umbraco.Abstractions/Collections/CompositeIntStringKey.cs b/src/Umbraco.Core/Collections/CompositeIntStringKey.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Collections/CompositeIntStringKey.cs
rename to src/Umbraco.Core/Collections/CompositeIntStringKey.cs
diff --git a/src/Umbraco.Abstractions/Collections/CompositeNStringNStringKey.cs b/src/Umbraco.Core/Collections/CompositeNStringNStringKey.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Collections/CompositeNStringNStringKey.cs
rename to src/Umbraco.Core/Collections/CompositeNStringNStringKey.cs
diff --git a/src/Umbraco.Abstractions/Collections/CompositeStringStringKey.cs b/src/Umbraco.Core/Collections/CompositeStringStringKey.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Collections/CompositeStringStringKey.cs
rename to src/Umbraco.Core/Collections/CompositeStringStringKey.cs
diff --git a/src/Umbraco.Abstractions/Collections/CompositeTypeTypeKey.cs b/src/Umbraco.Core/Collections/CompositeTypeTypeKey.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Collections/CompositeTypeTypeKey.cs
rename to src/Umbraco.Core/Collections/CompositeTypeTypeKey.cs
diff --git a/src/Umbraco.Abstractions/Collections/ConcurrentHashSet.cs b/src/Umbraco.Core/Collections/ConcurrentHashSet.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Collections/ConcurrentHashSet.cs
rename to src/Umbraco.Core/Collections/ConcurrentHashSet.cs
diff --git a/src/Umbraco.Abstractions/Collections/DeepCloneableList.cs b/src/Umbraco.Core/Collections/DeepCloneableList.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Collections/DeepCloneableList.cs
rename to src/Umbraco.Core/Collections/DeepCloneableList.cs
diff --git a/src/Umbraco.Abstractions/Collections/ListCloneBehavior.cs b/src/Umbraco.Core/Collections/ListCloneBehavior.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Collections/ListCloneBehavior.cs
rename to src/Umbraco.Core/Collections/ListCloneBehavior.cs
diff --git a/src/Umbraco.Abstractions/Collections/ObservableDictionary.cs b/src/Umbraco.Core/Collections/ObservableDictionary.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Collections/ObservableDictionary.cs
rename to src/Umbraco.Core/Collections/ObservableDictionary.cs
diff --git a/src/Umbraco.Abstractions/Collections/OrderedHashSet.cs b/src/Umbraco.Core/Collections/OrderedHashSet.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Collections/OrderedHashSet.cs
rename to src/Umbraco.Core/Collections/OrderedHashSet.cs
diff --git a/src/Umbraco.Abstractions/Collections/TopoGraph.cs b/src/Umbraco.Core/Collections/TopoGraph.cs
similarity index 97%
rename from src/Umbraco.Abstractions/Collections/TopoGraph.cs
rename to src/Umbraco.Core/Collections/TopoGraph.cs
index b8ded4a458..955a210465 100644
--- a/src/Umbraco.Abstractions/Collections/TopoGraph.cs
+++ b/src/Umbraco.Core/Collections/TopoGraph.cs
@@ -126,7 +126,7 @@ namespace Umbraco.Core.Collections
if (_items.TryGetValue(key, out value))
yield return value;
else if (throwOnMissing)
- throw new Exception(MissingDependencyError);
+ throw new Exception($"{MissingDependencyError} Error in type {typeof(TItem).Name}, with key {key}");
}
}
}
diff --git a/src/Umbraco.Abstractions/Collections/TypeList.cs b/src/Umbraco.Core/Collections/TypeList.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Collections/TypeList.cs
rename to src/Umbraco.Core/Collections/TypeList.cs
diff --git a/src/Umbraco.Abstractions/Composing/BuilderCollectionBase.cs b/src/Umbraco.Core/Composing/BuilderCollectionBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/BuilderCollectionBase.cs
rename to src/Umbraco.Core/Composing/BuilderCollectionBase.cs
diff --git a/src/Umbraco.Abstractions/Composing/CollectionBuilderBase.cs b/src/Umbraco.Core/Composing/CollectionBuilderBase.cs
similarity index 91%
rename from src/Umbraco.Abstractions/Composing/CollectionBuilderBase.cs
rename to src/Umbraco.Core/Composing/CollectionBuilderBase.cs
index 41038ea4e9..0d398be83b 100644
--- a/src/Umbraco.Abstractions/Composing/CollectionBuilderBase.cs
+++ b/src/Umbraco.Core/Composing/CollectionBuilderBase.cs
@@ -79,9 +79,12 @@ namespace Umbraco.Core.Composing
foreach (var type in types)
EnsureType(type, "register");
- // register them
+ // register them - ensuring that each item is registered with the same lifetime as the collection.
+ // NOTE: Previously each one was not registered with the same lifetime which would mean that if there
+ // was a dependency on an individual item, it would resolve a brand new transient instance which isn't what
+ // we would expect to happen. The same item should be resolved from the container as the collection.
foreach (var type in types)
- register.Register(type);
+ register.Register(type, CollectionLifetime);
_registeredTypes = types;
}
diff --git a/src/Umbraco.Abstractions/Composing/ComponentCollection.cs b/src/Umbraco.Core/Composing/ComponentCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/ComponentCollection.cs
rename to src/Umbraco.Core/Composing/ComponentCollection.cs
diff --git a/src/Umbraco.Abstractions/Composing/ComponentCollectionBuilder.cs b/src/Umbraco.Core/Composing/ComponentCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/ComponentCollectionBuilder.cs
rename to src/Umbraco.Core/Composing/ComponentCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/Composing/ComponentComposer.cs b/src/Umbraco.Core/Composing/ComponentComposer.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/ComponentComposer.cs
rename to src/Umbraco.Core/Composing/ComponentComposer.cs
diff --git a/src/Umbraco.Abstractions/Composing/ComposeAfterAttribute.cs b/src/Umbraco.Core/Composing/ComposeAfterAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/ComposeAfterAttribute.cs
rename to src/Umbraco.Core/Composing/ComposeAfterAttribute.cs
diff --git a/src/Umbraco.Abstractions/Composing/ComposeBeforeAttribute.cs b/src/Umbraco.Core/Composing/ComposeBeforeAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/ComposeBeforeAttribute.cs
rename to src/Umbraco.Core/Composing/ComposeBeforeAttribute.cs
diff --git a/src/Umbraco.Abstractions/Composing/Composers.cs b/src/Umbraco.Core/Composing/Composers.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/Composers.cs
rename to src/Umbraco.Core/Composing/Composers.cs
diff --git a/src/Umbraco.Abstractions/Composing/Composition.cs b/src/Umbraco.Core/Composing/Composition.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/Composition.cs
rename to src/Umbraco.Core/Composing/Composition.cs
diff --git a/src/Umbraco.Abstractions/Composing/CompositionExtensions.cs b/src/Umbraco.Core/Composing/CompositionExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/CompositionExtensions.cs
rename to src/Umbraco.Core/Composing/CompositionExtensions.cs
diff --git a/src/Umbraco.Abstractions/Composing/Current.cs b/src/Umbraco.Core/Composing/Current.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/Current.cs
rename to src/Umbraco.Core/Composing/Current.cs
diff --git a/src/Umbraco.Abstractions/Composing/DisableAttribute.cs b/src/Umbraco.Core/Composing/DisableAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/DisableAttribute.cs
rename to src/Umbraco.Core/Composing/DisableAttribute.cs
diff --git a/src/Umbraco.Abstractions/Composing/DisableComposerAttribute.cs b/src/Umbraco.Core/Composing/DisableComposerAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/DisableComposerAttribute.cs
rename to src/Umbraco.Core/Composing/DisableComposerAttribute.cs
diff --git a/src/Umbraco.Abstractions/Composing/EnableAttribute.cs b/src/Umbraco.Core/Composing/EnableAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/EnableAttribute.cs
rename to src/Umbraco.Core/Composing/EnableAttribute.cs
diff --git a/src/Umbraco.Abstractions/Composing/EnableComposerAttribute.cs b/src/Umbraco.Core/Composing/EnableComposerAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/EnableComposerAttribute.cs
rename to src/Umbraco.Core/Composing/EnableComposerAttribute.cs
diff --git a/src/Umbraco.Abstractions/Composing/HideFromTypeFinderAttribute.cs b/src/Umbraco.Core/Composing/HideFromTypeFinderAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/HideFromTypeFinderAttribute.cs
rename to src/Umbraco.Core/Composing/HideFromTypeFinderAttribute.cs
diff --git a/src/Umbraco.Abstractions/Composing/IBuilderCollection.cs b/src/Umbraco.Core/Composing/IBuilderCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/IBuilderCollection.cs
rename to src/Umbraco.Core/Composing/IBuilderCollection.cs
diff --git a/src/Umbraco.Abstractions/Composing/ICollectionBuilder.cs b/src/Umbraco.Core/Composing/ICollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/ICollectionBuilder.cs
rename to src/Umbraco.Core/Composing/ICollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/Composing/IComponent.cs b/src/Umbraco.Core/Composing/IComponent.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/IComponent.cs
rename to src/Umbraco.Core/Composing/IComponent.cs
diff --git a/src/Umbraco.Abstractions/Composing/IComposer.cs b/src/Umbraco.Core/Composing/IComposer.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/IComposer.cs
rename to src/Umbraco.Core/Composing/IComposer.cs
diff --git a/src/Umbraco.Abstractions/Composing/ICoreComposer.cs b/src/Umbraco.Core/Composing/ICoreComposer.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/ICoreComposer.cs
rename to src/Umbraco.Core/Composing/ICoreComposer.cs
diff --git a/src/Umbraco.Abstractions/Composing/IDiscoverable.cs b/src/Umbraco.Core/Composing/IDiscoverable.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/IDiscoverable.cs
rename to src/Umbraco.Core/Composing/IDiscoverable.cs
diff --git a/src/Umbraco.Abstractions/Composing/IFactory.cs b/src/Umbraco.Core/Composing/IFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/IFactory.cs
rename to src/Umbraco.Core/Composing/IFactory.cs
diff --git a/src/Umbraco.Abstractions/Composing/IPublishedCacheComposer .cs b/src/Umbraco.Core/Composing/IPublishedCacheComposer .cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/IPublishedCacheComposer .cs
rename to src/Umbraco.Core/Composing/IPublishedCacheComposer .cs
diff --git a/src/Umbraco.Abstractions/Composing/IRegister.cs b/src/Umbraco.Core/Composing/IRegister.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/IRegister.cs
rename to src/Umbraco.Core/Composing/IRegister.cs
diff --git a/src/Umbraco.Abstractions/Composing/ITypeFinder.cs b/src/Umbraco.Core/Composing/ITypeFinder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/ITypeFinder.cs
rename to src/Umbraco.Core/Composing/ITypeFinder.cs
diff --git a/src/Umbraco.Abstractions/Composing/IUserComposer.cs b/src/Umbraco.Core/Composing/IUserComposer.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/IUserComposer.cs
rename to src/Umbraco.Core/Composing/IUserComposer.cs
diff --git a/src/Umbraco.Abstractions/Composing/LazyCollectionBuilderBase.cs b/src/Umbraco.Core/Composing/LazyCollectionBuilderBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/LazyCollectionBuilderBase.cs
rename to src/Umbraco.Core/Composing/LazyCollectionBuilderBase.cs
diff --git a/src/Umbraco.Abstractions/Composing/Lifetime.cs b/src/Umbraco.Core/Composing/Lifetime.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/Lifetime.cs
rename to src/Umbraco.Core/Composing/Lifetime.cs
diff --git a/src/Umbraco.Abstractions/Composing/OrderedCollectionBuilderBase.cs b/src/Umbraco.Core/Composing/OrderedCollectionBuilderBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/OrderedCollectionBuilderBase.cs
rename to src/Umbraco.Core/Composing/OrderedCollectionBuilderBase.cs
diff --git a/src/Umbraco.Abstractions/Composing/RuntimeLevelAttribute.cs b/src/Umbraco.Core/Composing/RuntimeLevelAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/RuntimeLevelAttribute.cs
rename to src/Umbraco.Core/Composing/RuntimeLevelAttribute.cs
diff --git a/src/Umbraco.Abstractions/Composing/SetCollectionBuilderBase.cs b/src/Umbraco.Core/Composing/SetCollectionBuilderBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/SetCollectionBuilderBase.cs
rename to src/Umbraco.Core/Composing/SetCollectionBuilderBase.cs
diff --git a/src/Umbraco.Abstractions/Composing/TargetedServiceFactory.cs b/src/Umbraco.Core/Composing/TargetedServiceFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/TargetedServiceFactory.cs
rename to src/Umbraco.Core/Composing/TargetedServiceFactory.cs
diff --git a/src/Umbraco.Abstractions/Composing/TypeCollectionBuilderBase.cs b/src/Umbraco.Core/Composing/TypeCollectionBuilderBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/TypeCollectionBuilderBase.cs
rename to src/Umbraco.Core/Composing/TypeCollectionBuilderBase.cs
diff --git a/src/Umbraco.Abstractions/Composing/TypeFinder.cs b/src/Umbraco.Core/Composing/TypeFinder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/TypeFinder.cs
rename to src/Umbraco.Core/Composing/TypeFinder.cs
diff --git a/src/Umbraco.Abstractions/Composing/TypeFinderExtensions.cs b/src/Umbraco.Core/Composing/TypeFinderExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/TypeFinderExtensions.cs
rename to src/Umbraco.Core/Composing/TypeFinderExtensions.cs
diff --git a/src/Umbraco.Abstractions/Composing/TypeHelper.cs b/src/Umbraco.Core/Composing/TypeHelper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/TypeHelper.cs
rename to src/Umbraco.Core/Composing/TypeHelper.cs
diff --git a/src/Umbraco.Abstractions/Composing/TypeLoader.cs b/src/Umbraco.Core/Composing/TypeLoader.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/TypeLoader.cs
rename to src/Umbraco.Core/Composing/TypeLoader.cs
diff --git a/src/Umbraco.Abstractions/Composing/WeightAttribute.cs b/src/Umbraco.Core/Composing/WeightAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/WeightAttribute.cs
rename to src/Umbraco.Core/Composing/WeightAttribute.cs
diff --git a/src/Umbraco.Abstractions/Composing/WeightedCollectionBuilderBase.cs b/src/Umbraco.Core/Composing/WeightedCollectionBuilderBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Composing/WeightedCollectionBuilderBase.cs
rename to src/Umbraco.Core/Composing/WeightedCollectionBuilderBase.cs
diff --git a/src/Umbraco.Core/CompositionExtensions.cs b/src/Umbraco.Core/CompositionExtensions.cs
new file mode 100644
index 0000000000..bea78f82ed
--- /dev/null
+++ b/src/Umbraco.Core/CompositionExtensions.cs
@@ -0,0 +1,37 @@
+using Umbraco.Core.Composing;
+using Umbraco.Core.PropertyEditors;
+using Umbraco.Web.Dashboards;
+
+namespace Umbraco.Core
+{
+ public static partial class CompositionExtensions
+ {
+
+ #region Collection Builders
+
+ ///
+ /// Gets the components collection builder.
+ ///
+ public static ComponentCollectionBuilder Components(this Composition composition)
+ => composition.WithCollectionBuilder();
+
+
+ ///
+ /// Gets the backoffice dashboards collection builder.
+ ///
+ /// The composition.
+ public static DashboardCollectionBuilder Dashboards(this Composition composition)
+ => composition.WithCollectionBuilder();
+
+
+ ///
+ /// Gets the content finders collection builder.
+ ///
+ /// The composition.
+ ///
+ public static MediaUrlGeneratorCollectionBuilder MediaUrlGenerators(this Composition composition)
+ => composition.WithCollectionBuilder();
+
+ #endregion
+ }
+}
diff --git a/src/Umbraco.Abstractions/CompositionExtensions_Uniques.cs b/src/Umbraco.Core/CompositionExtensions_Uniques.cs
similarity index 100%
rename from src/Umbraco.Abstractions/CompositionExtensions_Uniques.cs
rename to src/Umbraco.Core/CompositionExtensions_Uniques.cs
diff --git a/src/Umbraco.Abstractions/ConfigConnectionStringExtensions.cs b/src/Umbraco.Core/ConfigConnectionStringExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ConfigConnectionStringExtensions.cs
rename to src/Umbraco.Core/ConfigConnectionStringExtensions.cs
diff --git a/src/Umbraco.Abstractions/Configuration/ConfigConnectionString.cs b/src/Umbraco.Core/Configuration/ConfigConnectionString.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/ConfigConnectionString.cs
rename to src/Umbraco.Core/Configuration/ConfigConnectionString.cs
diff --git a/src/Umbraco.Abstractions/Configuration/Configs.cs b/src/Umbraco.Core/Configuration/Configs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/Configs.cs
rename to src/Umbraco.Core/Configuration/Configs.cs
diff --git a/src/Umbraco.Abstractions/Configuration/ConfigsExtensions.cs b/src/Umbraco.Core/Configuration/ConfigsExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/ConfigsExtensions.cs
rename to src/Umbraco.Core/Configuration/ConfigsExtensions.cs
diff --git a/src/Umbraco.Abstractions/Configuration/GlobalSettingsExtensions.cs b/src/Umbraco.Core/Configuration/GlobalSettingsExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/GlobalSettingsExtensions.cs
rename to src/Umbraco.Core/Configuration/GlobalSettingsExtensions.cs
diff --git a/src/Umbraco.Abstractions/Configuration/Grid/GridConfig.cs b/src/Umbraco.Core/Configuration/Grid/GridConfig.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/Grid/GridConfig.cs
rename to src/Umbraco.Core/Configuration/Grid/GridConfig.cs
diff --git a/src/Umbraco.Abstractions/Configuration/Grid/GridEditorsConfig.cs b/src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/Grid/GridEditorsConfig.cs
rename to src/Umbraco.Core/Configuration/Grid/GridEditorsConfig.cs
diff --git a/src/Umbraco.Abstractions/Configuration/Grid/IGridConfig.cs b/src/Umbraco.Core/Configuration/Grid/IGridConfig.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/Grid/IGridConfig.cs
rename to src/Umbraco.Core/Configuration/Grid/IGridConfig.cs
diff --git a/src/Umbraco.Abstractions/Configuration/Grid/IGridEditorConfig.cs b/src/Umbraco.Core/Configuration/Grid/IGridEditorConfig.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/Grid/IGridEditorConfig.cs
rename to src/Umbraco.Core/Configuration/Grid/IGridEditorConfig.cs
diff --git a/src/Umbraco.Abstractions/Configuration/Grid/IGridEditorsConfig.cs b/src/Umbraco.Core/Configuration/Grid/IGridEditorsConfig.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/Grid/IGridEditorsConfig.cs
rename to src/Umbraco.Core/Configuration/Grid/IGridEditorsConfig.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/AbstractConfigCheck.cs b/src/Umbraco.Core/Configuration/HealthChecks/AbstractConfigCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/AbstractConfigCheck.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/AbstractConfigCheck.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/AcceptableConfiguration.cs b/src/Umbraco.Core/Configuration/HealthChecks/AcceptableConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/AcceptableConfiguration.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/AcceptableConfiguration.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/CompilationDebugCheck.cs b/src/Umbraco.Core/Configuration/HealthChecks/CompilationDebugCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/CompilationDebugCheck.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/CompilationDebugCheck.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/ConfigurationService.cs b/src/Umbraco.Core/Configuration/HealthChecks/ConfigurationService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/ConfigurationService.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/ConfigurationService.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/ConfigurationServiceResult.cs b/src/Umbraco.Core/Configuration/HealthChecks/ConfigurationServiceResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/ConfigurationServiceResult.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/ConfigurationServiceResult.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/CustomErrorsCheck.cs b/src/Umbraco.Core/Configuration/HealthChecks/CustomErrorsCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/CustomErrorsCheck.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/CustomErrorsCheck.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/HealthCheckNotificationVerbosity.cs b/src/Umbraco.Core/Configuration/HealthChecks/HealthCheckNotificationVerbosity.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/HealthCheckNotificationVerbosity.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/HealthCheckNotificationVerbosity.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/IDisabledHealthCheck.cs b/src/Umbraco.Core/Configuration/HealthChecks/IDisabledHealthCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/IDisabledHealthCheck.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/IDisabledHealthCheck.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/IHealthCheckNotificationSettings.cs b/src/Umbraco.Core/Configuration/HealthChecks/IHealthCheckNotificationSettings.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/IHealthCheckNotificationSettings.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/IHealthCheckNotificationSettings.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/IHealthChecks.cs b/src/Umbraco.Core/Configuration/HealthChecks/IHealthChecks.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/IHealthChecks.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/IHealthChecks.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/INotificationMethod.cs b/src/Umbraco.Core/Configuration/HealthChecks/INotificationMethod.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/INotificationMethod.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/INotificationMethod.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/INotificationMethodSettings.cs b/src/Umbraco.Core/Configuration/HealthChecks/INotificationMethodSettings.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/INotificationMethodSettings.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/INotificationMethodSettings.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/MacroErrorsCheck.cs b/src/Umbraco.Core/Configuration/HealthChecks/MacroErrorsCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/MacroErrorsCheck.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/MacroErrorsCheck.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/NotificationEmailCheck.cs b/src/Umbraco.Core/Configuration/HealthChecks/NotificationEmailCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/NotificationEmailCheck.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/NotificationEmailCheck.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/TraceCheck.cs b/src/Umbraco.Core/Configuration/HealthChecks/TraceCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/TraceCheck.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/TraceCheck.cs
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/TrySkipIisCustomErrorsCheck.cs b/src/Umbraco.Core/Configuration/HealthChecks/TrySkipIisCustomErrorsCheck.cs
similarity index 86%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/TrySkipIisCustomErrorsCheck.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/TrySkipIisCustomErrorsCheck.cs
index 58172ba063..e6ec49a1e7 100644
--- a/src/Umbraco.Abstractions/Configuration/HealthChecks/TrySkipIisCustomErrorsCheck.cs
+++ b/src/Umbraco.Core/Configuration/HealthChecks/TrySkipIisCustomErrorsCheck.cs
@@ -13,13 +13,13 @@ namespace Umbraco.Web.HealthCheck.Checks.Config
Group = "Configuration")]
public class TrySkipIisCustomErrorsCheck : AbstractConfigCheck
{
- private readonly IHostingEnvironment _hostingEnvironment;
+ private readonly Version _iisVersion;
public TrySkipIisCustomErrorsCheck(ILocalizedTextService textService, IIOHelper ioHelper, ILogger logger,
IHostingEnvironment hostingEnvironment)
: base(textService, ioHelper, logger)
{
- _hostingEnvironment = hostingEnvironment;
+ _iisVersion = hostingEnvironment.IISVersion;
}
public override string FilePath => "~/Config/umbracoSettings.config";
@@ -33,7 +33,7 @@ namespace Umbraco.Web.HealthCheck.Checks.Config
get
{
// beware! 7.5 and 7.5.0 are not the same thing!
- var recommendedValue = _hostingEnvironment.IISVersion >= new Version("7.5")
+ var recommendedValue = _iisVersion >= new Version("7.5")
? bool.TrueString.ToLower()
: bool.FalseString.ToLower();
return new List { new AcceptableConfiguration { IsRecommended = true, Value = recommendedValue } };
@@ -45,7 +45,7 @@ namespace Umbraco.Web.HealthCheck.Checks.Config
get
{
return TextService.Localize("healthcheck/trySkipIisCustomErrorsCheckSuccessMessage",
- new[] { Values.First(v => v.IsRecommended).Value, _hostingEnvironment.IISVersion.ToString() });
+ new[] { Values.First(v => v.IsRecommended).Value, _iisVersion.ToString() });
}
}
@@ -54,7 +54,7 @@ namespace Umbraco.Web.HealthCheck.Checks.Config
get
{
return TextService.Localize("healthcheck/trySkipIisCustomErrorsCheckErrorMessage",
- new[] { CurrentValue, Values.First(v => v.IsRecommended).Value, _hostingEnvironment.IISVersion.ToString() });
+ new[] { CurrentValue, Values.First(v => v.IsRecommended).Value, _iisVersion.ToString() });
}
}
@@ -63,7 +63,7 @@ namespace Umbraco.Web.HealthCheck.Checks.Config
get
{
return TextService.Localize("healthcheck/trySkipIisCustomErrorsCheckRectifySuccessMessage",
- new[] { Values.First(v => v.IsRecommended).Value, _hostingEnvironment.IISVersion.ToString() });
+ new[] { Values.First(v => v.IsRecommended).Value, _iisVersion.ToString() });
}
}
}
diff --git a/src/Umbraco.Abstractions/Configuration/HealthChecks/ValueComparisonType.cs b/src/Umbraco.Core/Configuration/HealthChecks/ValueComparisonType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/HealthChecks/ValueComparisonType.cs
rename to src/Umbraco.Core/Configuration/HealthChecks/ValueComparisonType.cs
diff --git a/src/Umbraco.Core/Configuration/IActiveDirectorySettings.cs b/src/Umbraco.Core/Configuration/IActiveDirectorySettings.cs
new file mode 100644
index 0000000000..e6b9202c06
--- /dev/null
+++ b/src/Umbraco.Core/Configuration/IActiveDirectorySettings.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Core.Configuration
+{
+ public interface IActiveDirectorySettings
+ {
+ string ActiveDirectoryDomain { get; }
+ }
+}
diff --git a/src/Umbraco.Abstractions/Configuration/IConfigsFactory.cs b/src/Umbraco.Core/Configuration/IConfigsFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/IConfigsFactory.cs
rename to src/Umbraco.Core/Configuration/IConfigsFactory.cs
diff --git a/src/Umbraco.Abstractions/Configuration/IConnectionStrings.cs b/src/Umbraco.Core/Configuration/IConnectionStrings.cs
similarity index 72%
rename from src/Umbraco.Abstractions/Configuration/IConnectionStrings.cs
rename to src/Umbraco.Core/Configuration/IConnectionStrings.cs
index 0d33378669..acd2281a1e 100644
--- a/src/Umbraco.Abstractions/Configuration/IConnectionStrings.cs
+++ b/src/Umbraco.Core/Configuration/IConnectionStrings.cs
@@ -6,5 +6,7 @@ namespace Umbraco.Core.Configuration
{
get;
}
+
+ void RemoveConnectionString(string umbracoConnectionName);
}
}
diff --git a/src/Umbraco.Abstractions/Configuration/ICoreDebug.cs b/src/Umbraco.Core/Configuration/ICoreDebug.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/ICoreDebug.cs
rename to src/Umbraco.Core/Configuration/ICoreDebug.cs
diff --git a/src/Umbraco.Core/Configuration/IExceptionFilterSettings.cs b/src/Umbraco.Core/Configuration/IExceptionFilterSettings.cs
new file mode 100644
index 0000000000..169c04da5f
--- /dev/null
+++ b/src/Umbraco.Core/Configuration/IExceptionFilterSettings.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Core.Configuration
+{
+ public interface IExceptionFilterSettings
+ {
+ bool Disabled { get; }
+ }
+}
diff --git a/src/Umbraco.Abstractions/Configuration/IGlobalSettings.cs b/src/Umbraco.Core/Configuration/IGlobalSettings.cs
similarity index 99%
rename from src/Umbraco.Abstractions/Configuration/IGlobalSettings.cs
rename to src/Umbraco.Core/Configuration/IGlobalSettings.cs
index 1b1f328142..ffc52130cc 100644
--- a/src/Umbraco.Abstractions/Configuration/IGlobalSettings.cs
+++ b/src/Umbraco.Core/Configuration/IGlobalSettings.cs
@@ -95,5 +95,6 @@
bool DisableElectionForSingleServer { get; }
string RegisterType { get; }
string DatabaseFactoryServerVersion { get; }
+ string MainDomLock { get; }
}
}
diff --git a/src/Umbraco.Abstractions/Configuration/IHostingSettings.cs b/src/Umbraco.Core/Configuration/IHostingSettings.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/IHostingSettings.cs
rename to src/Umbraco.Core/Configuration/IHostingSettings.cs
diff --git a/src/Umbraco.Core/Configuration/IIndexCreatorSettings.cs b/src/Umbraco.Core/Configuration/IIndexCreatorSettings.cs
new file mode 100644
index 0000000000..b3e2854a0d
--- /dev/null
+++ b/src/Umbraco.Core/Configuration/IIndexCreatorSettings.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Core.Configuration
+{
+ public interface IIndexCreatorSettings
+ {
+ string LuceneDirectoryFactory { get; }
+ }
+}
diff --git a/src/Umbraco.Core/Configuration/IMachineKeyConfig.cs b/src/Umbraco.Core/Configuration/IMachineKeyConfig.cs
new file mode 100644
index 0000000000..35969e668a
--- /dev/null
+++ b/src/Umbraco.Core/Configuration/IMachineKeyConfig.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Core.Configuration
+{
+ public interface IMachineKeyConfig
+ {
+ bool HasMachineKey { get;}
+ }
+}
diff --git a/src/Umbraco.Abstractions/Configuration/IMemberPasswordConfiguration.cs b/src/Umbraco.Core/Configuration/IMemberPasswordConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/IMemberPasswordConfiguration.cs
rename to src/Umbraco.Core/Configuration/IMemberPasswordConfiguration.cs
diff --git a/src/Umbraco.ModelsBuilder.Embedded/Configuration/IModelsBuilderConfig.cs b/src/Umbraco.Core/Configuration/IModelsBuilderConfig.cs
similarity index 87%
rename from src/Umbraco.ModelsBuilder.Embedded/Configuration/IModelsBuilderConfig.cs
rename to src/Umbraco.Core/Configuration/IModelsBuilderConfig.cs
index 7e96aec60e..6a071ac277 100644
--- a/src/Umbraco.ModelsBuilder.Embedded/Configuration/IModelsBuilderConfig.cs
+++ b/src/Umbraco.Core/Configuration/IModelsBuilderConfig.cs
@@ -1,4 +1,4 @@
-namespace Umbraco.ModelsBuilder.Embedded.Configuration
+namespace Umbraco.Core.Configuration
{
public interface IModelsBuilderConfig
{
diff --git a/src/Umbraco.Core/Configuration/INuCacheSettings.cs b/src/Umbraco.Core/Configuration/INuCacheSettings.cs
new file mode 100644
index 0000000000..c6524297a6
--- /dev/null
+++ b/src/Umbraco.Core/Configuration/INuCacheSettings.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Core.Configuration
+{
+ public interface INuCacheSettings
+ {
+ string BTreeBlockSize { get; }
+ }
+}
diff --git a/src/Umbraco.Abstractions/Configuration/IPasswordConfiguration.cs b/src/Umbraco.Core/Configuration/IPasswordConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/IPasswordConfiguration.cs
rename to src/Umbraco.Core/Configuration/IPasswordConfiguration.cs
diff --git a/src/Umbraco.Core/Configuration/IRuntimeSettings.cs b/src/Umbraco.Core/Configuration/IRuntimeSettings.cs
new file mode 100644
index 0000000000..915e774186
--- /dev/null
+++ b/src/Umbraco.Core/Configuration/IRuntimeSettings.cs
@@ -0,0 +1,8 @@
+namespace Umbraco.Core.Configuration
+{
+ public interface IRuntimeSettings
+ {
+ int? MaxQueryStringLength { get; }
+ int? MaxRequestLength { get; }
+ }
+}
diff --git a/src/Umbraco.Abstractions/Configuration/ISmtpSettings.cs b/src/Umbraco.Core/Configuration/ISmtpSettings.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/ISmtpSettings.cs
rename to src/Umbraco.Core/Configuration/ISmtpSettings.cs
diff --git a/src/Umbraco.Core/Configuration/ITypeFinderSettings.cs b/src/Umbraco.Core/Configuration/ITypeFinderSettings.cs
new file mode 100644
index 0000000000..15e72a1f40
--- /dev/null
+++ b/src/Umbraco.Core/Configuration/ITypeFinderSettings.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Core.Configuration
+{
+ public interface ITypeFinderSettings
+ {
+ string AssembliesAcceptingLoadExceptions { get; }
+ }
+}
diff --git a/src/Umbraco.Abstractions/Configuration/IUmbracoConfigurationSection.cs b/src/Umbraco.Core/Configuration/IUmbracoConfigurationSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/IUmbracoConfigurationSection.cs
rename to src/Umbraco.Core/Configuration/IUmbracoConfigurationSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/IUmbracoVersion.cs b/src/Umbraco.Core/Configuration/IUmbracoVersion.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/IUmbracoVersion.cs
rename to src/Umbraco.Core/Configuration/IUmbracoVersion.cs
diff --git a/src/Umbraco.Abstractions/Configuration/IUserPasswordConfiguration.cs b/src/Umbraco.Core/Configuration/IUserPasswordConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/IUserPasswordConfiguration.cs
rename to src/Umbraco.Core/Configuration/IUserPasswordConfiguration.cs
diff --git a/src/Umbraco.Abstractions/Configuration/LocalTempStorage.cs b/src/Umbraco.Core/Configuration/LocalTempStorage.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/LocalTempStorage.cs
rename to src/Umbraco.Core/Configuration/LocalTempStorage.cs
diff --git a/src/Umbraco.Abstractions/Configuration/MemberPasswordConfiguration.cs b/src/Umbraco.Core/Configuration/MemberPasswordConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/MemberPasswordConfiguration.cs
rename to src/Umbraco.Core/Configuration/MemberPasswordConfiguration.cs
diff --git a/src/Umbraco.ModelsBuilder.Embedded/Configuration/ModelsMode.cs b/src/Umbraco.Core/Configuration/ModelsMode.cs
similarity index 92%
rename from src/Umbraco.ModelsBuilder.Embedded/Configuration/ModelsMode.cs
rename to src/Umbraco.Core/Configuration/ModelsMode.cs
index e0286fdab1..2483367394 100644
--- a/src/Umbraco.ModelsBuilder.Embedded/Configuration/ModelsMode.cs
+++ b/src/Umbraco.Core/Configuration/ModelsMode.cs
@@ -1,4 +1,4 @@
-namespace Umbraco.ModelsBuilder.Embedded.Configuration
+namespace Umbraco.Core.Configuration
{
///
/// Defines the models generation modes.
@@ -8,7 +8,7 @@
///
/// Do not generate models.
///
- Nothing = 0, // default value
+ Nothing = 0, // default value
///
/// Generate models in memory.
diff --git a/src/Umbraco.ModelsBuilder.Embedded/Configuration/ModelsModeExtensions.cs b/src/Umbraco.Core/Configuration/ModelsModeExtensions.cs
similarity index 94%
rename from src/Umbraco.ModelsBuilder.Embedded/Configuration/ModelsModeExtensions.cs
rename to src/Umbraco.Core/Configuration/ModelsModeExtensions.cs
index be638729ea..8d1b51cd28 100644
--- a/src/Umbraco.ModelsBuilder.Embedded/Configuration/ModelsModeExtensions.cs
+++ b/src/Umbraco.Core/Configuration/ModelsModeExtensions.cs
@@ -1,4 +1,6 @@
-namespace Umbraco.ModelsBuilder.Embedded.Configuration
+using Umbraco.Core.Configuration;
+
+namespace Umbraco.Configuration
{
///
/// Provides extensions for the enumeration.
diff --git a/src/Umbraco.Abstractions/Configuration/PasswordConfiguration.cs b/src/Umbraco.Core/Configuration/PasswordConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/PasswordConfiguration.cs
rename to src/Umbraco.Core/Configuration/PasswordConfiguration.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/ContentSectionExtensions.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/ContentSectionExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/ContentSectionExtensions.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/ContentSectionExtensions.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IBackOfficeSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IBackOfficeSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IBackOfficeSection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IBackOfficeSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IChar.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IChar.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IChar.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IChar.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IContentErrorPage.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IContentErrorPage.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IContentErrorPage.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IContentErrorPage.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IContentSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IContentSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IContentSection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IContentSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IImagingAutoFillUploadField.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IImagingAutoFillUploadField.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IImagingAutoFillUploadField.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IImagingAutoFillUploadField.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IKeepAliveSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IKeepAliveSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IKeepAliveSection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IKeepAliveSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/ILoggingSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/ILoggingSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/ILoggingSection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/ILoggingSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IMemberPasswordConfigurationSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IMemberPasswordConfigurationSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IMemberPasswordConfigurationSection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IMemberPasswordConfigurationSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IPasswordConfigurationSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IPasswordConfigurationSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IPasswordConfigurationSection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IPasswordConfigurationSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IRequestHandlerSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IRequestHandlerSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IRequestHandlerSection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IRequestHandlerSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/ISecuritySection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/ISecuritySection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/ISecuritySection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/ISecuritySection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/ITourSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/ITourSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/ITourSection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/ITourSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/ITypeFinderConfig.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/ITypeFinderConfig.cs
similarity index 72%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/ITypeFinderConfig.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/ITypeFinderConfig.cs
index fd5b18ed39..a290c26d15 100644
--- a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/ITypeFinderConfig.cs
+++ b/src/Umbraco.Core/Configuration/UmbracoSettings/ITypeFinderConfig.cs
@@ -1,6 +1,4 @@
-using System;
-using System.Collections.Generic;
-using System.Text;
+using System.Collections.Generic;
namespace Umbraco.Core.Configuration.UmbracoSettings
{
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IUmbracoSettingsSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IUmbracoSettingsSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IUmbracoSettingsSection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IUmbracoSettingsSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IUserPasswordConfigurationSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IUserPasswordConfigurationSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IUserPasswordConfigurationSection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IUserPasswordConfigurationSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoSettings/IWebRoutingSection.cs b/src/Umbraco.Core/Configuration/UmbracoSettings/IWebRoutingSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoSettings/IWebRoutingSection.cs
rename to src/Umbraco.Core/Configuration/UmbracoSettings/IWebRoutingSection.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UmbracoVersion.cs b/src/Umbraco.Core/Configuration/UmbracoVersion.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UmbracoVersion.cs
rename to src/Umbraco.Core/Configuration/UmbracoVersion.cs
diff --git a/src/Umbraco.Abstractions/Configuration/UserPasswordConfiguration.cs b/src/Umbraco.Core/Configuration/UserPasswordConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Configuration/UserPasswordConfiguration.cs
rename to src/Umbraco.Core/Configuration/UserPasswordConfiguration.cs
diff --git a/src/Umbraco.Abstractions/Constants-AppSettings.cs b/src/Umbraco.Core/Constants-AppSettings.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-AppSettings.cs
rename to src/Umbraco.Core/Constants-AppSettings.cs
diff --git a/src/Umbraco.Abstractions/Constants-Applications.cs b/src/Umbraco.Core/Constants-Applications.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-Applications.cs
rename to src/Umbraco.Core/Constants-Applications.cs
diff --git a/src/Umbraco.Abstractions/Constants-Composing.cs b/src/Umbraco.Core/Constants-Composing.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-Composing.cs
rename to src/Umbraco.Core/Constants-Composing.cs
diff --git a/src/Umbraco.Abstractions/Constants-Conventions.cs b/src/Umbraco.Core/Constants-Conventions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-Conventions.cs
rename to src/Umbraco.Core/Constants-Conventions.cs
diff --git a/src/Umbraco.Abstractions/Constants-DataTypes.cs b/src/Umbraco.Core/Constants-DataTypes.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-DataTypes.cs
rename to src/Umbraco.Core/Constants-DataTypes.cs
diff --git a/src/Umbraco.Abstractions/Constants-DatabaseProviders.cs b/src/Umbraco.Core/Constants-DatabaseProviders.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-DatabaseProviders.cs
rename to src/Umbraco.Core/Constants-DatabaseProviders.cs
diff --git a/src/Umbraco.Abstractions/Constants-DeploySelector.cs b/src/Umbraco.Core/Constants-DeploySelector.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-DeploySelector.cs
rename to src/Umbraco.Core/Constants-DeploySelector.cs
diff --git a/src/Umbraco.Abstractions/Constants-Icons.cs b/src/Umbraco.Core/Constants-Icons.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-Icons.cs
rename to src/Umbraco.Core/Constants-Icons.cs
diff --git a/src/Umbraco.Abstractions/Constants-Indexes.cs b/src/Umbraco.Core/Constants-Indexes.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-Indexes.cs
rename to src/Umbraco.Core/Constants-Indexes.cs
diff --git a/src/Umbraco.Core/Constants-ModelsBuilder.cs b/src/Umbraco.Core/Constants-ModelsBuilder.cs
new file mode 100644
index 0000000000..28e70ed383
--- /dev/null
+++ b/src/Umbraco.Core/Constants-ModelsBuilder.cs
@@ -0,0 +1,17 @@
+namespace Umbraco.Core
+{
+ ///
+ /// Defines constants.
+ ///
+ public static partial class Constants
+ {
+ ///
+ /// Defines constants for ModelsBuilder.
+ ///
+ public static class ModelsBuilder
+ {
+
+ public const string DefaultModelsNamespace = "Umbraco.Web.PublishedModels";
+ }
+ }
+}
diff --git a/src/Umbraco.Abstractions/Constants-ObjectTypes.cs b/src/Umbraco.Core/Constants-ObjectTypes.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-ObjectTypes.cs
rename to src/Umbraco.Core/Constants-ObjectTypes.cs
diff --git a/src/Umbraco.Abstractions/Constants-PackageRepository.cs b/src/Umbraco.Core/Constants-PackageRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-PackageRepository.cs
rename to src/Umbraco.Core/Constants-PackageRepository.cs
diff --git a/src/Umbraco.Abstractions/Constants-PropertyEditors.cs b/src/Umbraco.Core/Constants-PropertyEditors.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-PropertyEditors.cs
rename to src/Umbraco.Core/Constants-PropertyEditors.cs
diff --git a/src/Umbraco.Abstractions/Constants-PropertyTypeGroups.cs b/src/Umbraco.Core/Constants-PropertyTypeGroups.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-PropertyTypeGroups.cs
rename to src/Umbraco.Core/Constants-PropertyTypeGroups.cs
diff --git a/src/Umbraco.Abstractions/Constants-Security.cs b/src/Umbraco.Core/Constants-Security.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-Security.cs
rename to src/Umbraco.Core/Constants-Security.cs
diff --git a/src/Umbraco.Abstractions/Constants-System.cs b/src/Umbraco.Core/Constants-System.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-System.cs
rename to src/Umbraco.Core/Constants-System.cs
diff --git a/src/Umbraco.Abstractions/Constants-SystemDirectories.cs b/src/Umbraco.Core/Constants-SystemDirectories.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-SystemDirectories.cs
rename to src/Umbraco.Core/Constants-SystemDirectories.cs
diff --git a/src/Umbraco.Abstractions/Constants-UdiEntityType.cs b/src/Umbraco.Core/Constants-UdiEntityType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Constants-UdiEntityType.cs
rename to src/Umbraco.Core/Constants-UdiEntityType.cs
diff --git a/src/Umbraco.Abstractions/Constants-Web.cs b/src/Umbraco.Core/Constants-Web.cs
similarity index 56%
rename from src/Umbraco.Abstractions/Constants-Web.cs
rename to src/Umbraco.Core/Constants-Web.cs
index 64216ba571..5b64319fb0 100644
--- a/src/Umbraco.Abstractions/Constants-Web.cs
+++ b/src/Umbraco.Core/Constants-Web.cs
@@ -19,6 +19,22 @@
public const string PreviewCookieName = "UMB_PREVIEW";
public const string InstallerCookieName = "umb_installId";
+
+ ///
+ /// The cookie name that is used to store the validation value
+ ///
+ public const string CsrfValidationCookieName = "UMB-XSRF-V";
+
+ ///
+ /// The cookie name that is set for angular to use to pass in to the header value for "X-UMB-XSRF-TOKEN"
+ ///
+ public const string AngularCookieName = "UMB-XSRF-TOKEN";
+
+ ///
+ /// The header name that angular uses to pass in the token to validate the cookie
+ ///
+ public const string AngularHeadername = "X-UMB-XSRF-TOKEN";
+
}
}
}
diff --git a/src/Umbraco.Abstractions/ContentApps/ContentAppFactoryCollection.cs b/src/Umbraco.Core/ContentApps/ContentAppFactoryCollection.cs
similarity index 85%
rename from src/Umbraco.Abstractions/ContentApps/ContentAppFactoryCollection.cs
rename to src/Umbraco.Core/ContentApps/ContentAppFactoryCollection.cs
index f8f57ce4fd..4e85e51af3 100644
--- a/src/Umbraco.Abstractions/ContentApps/ContentAppFactoryCollection.cs
+++ b/src/Umbraco.Core/ContentApps/ContentAppFactoryCollection.cs
@@ -4,7 +4,6 @@ using Umbraco.Core;
using Umbraco.Core.Composing;
using Umbraco.Core.Models.ContentEditing;
using Umbraco.Core.Logging;
-using Umbraco.Core.Models.Identity;
using Umbraco.Core.Models.Membership;
namespace Umbraco.Web.ContentApps
@@ -12,18 +11,18 @@ namespace Umbraco.Web.ContentApps
public class ContentAppFactoryCollection : BuilderCollectionBase
{
private readonly ILogger _logger;
- private readonly ICurrentUserAccessor _currentUserAccessor;
+ private readonly IUmbracoContextAccessor _umbracoContextAccessor;
- public ContentAppFactoryCollection(IEnumerable items, ILogger logger, ICurrentUserAccessor currentUserAccessor)
+ public ContentAppFactoryCollection(IEnumerable items, ILogger logger, IUmbracoContextAccessor umbracoContextAccessor)
: base(items)
{
_logger = logger;
- _currentUserAccessor = currentUserAccessor;
+ _umbracoContextAccessor = umbracoContextAccessor;
}
private IEnumerable GetCurrentUserGroups()
{
- var currentUser = _currentUserAccessor.TryGetCurrentUser();
+ var currentUser = _umbracoContextAccessor.UmbracoContext?.Security?.CurrentUser;
return currentUser == null
? Enumerable.Empty()
: currentUser.Groups;
diff --git a/src/Umbraco.Abstractions/ContentApps/ContentAppFactoryCollectionBuilder.cs b/src/Umbraco.Core/ContentApps/ContentAppFactoryCollectionBuilder.cs
similarity index 92%
rename from src/Umbraco.Abstractions/ContentApps/ContentAppFactoryCollectionBuilder.cs
rename to src/Umbraco.Core/ContentApps/ContentAppFactoryCollectionBuilder.cs
index 0e21823b90..f3d3a149d5 100644
--- a/src/Umbraco.Abstractions/ContentApps/ContentAppFactoryCollectionBuilder.cs
+++ b/src/Umbraco.Core/ContentApps/ContentAppFactoryCollectionBuilder.cs
@@ -19,8 +19,8 @@ namespace Umbraco.Web.ContentApps
{
// get the logger just-in-time - see note below for manifest parser
var logger = factory.GetInstance();
- var currentUserAccessor = factory.GetInstance();
- return new ContentAppFactoryCollection(CreateItems(factory), logger, currentUserAccessor);
+ var umbracoContextAccessor = factory.GetInstance();
+ return new ContentAppFactoryCollection(CreateItems(factory), logger, umbracoContextAccessor);
}
protected override IEnumerable CreateItems(IFactory factory)
diff --git a/src/Umbraco.Abstractions/ContentApps/ContentEditorContentAppFactory.cs b/src/Umbraco.Core/ContentApps/ContentEditorContentAppFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ContentApps/ContentEditorContentAppFactory.cs
rename to src/Umbraco.Core/ContentApps/ContentEditorContentAppFactory.cs
diff --git a/src/Umbraco.Abstractions/ContentApps/ContentInfoContentAppFactory.cs b/src/Umbraco.Core/ContentApps/ContentInfoContentAppFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ContentApps/ContentInfoContentAppFactory.cs
rename to src/Umbraco.Core/ContentApps/ContentInfoContentAppFactory.cs
diff --git a/src/Umbraco.Abstractions/ContentApps/ListViewContentAppFactory.cs b/src/Umbraco.Core/ContentApps/ListViewContentAppFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ContentApps/ListViewContentAppFactory.cs
rename to src/Umbraco.Core/ContentApps/ListViewContentAppFactory.cs
diff --git a/src/Umbraco.Abstractions/ContentExtensions.cs b/src/Umbraco.Core/ContentExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ContentExtensions.cs
rename to src/Umbraco.Core/ContentExtensions.cs
diff --git a/src/Umbraco.Abstractions/ContentVariationExtensions.cs b/src/Umbraco.Core/ContentVariationExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ContentVariationExtensions.cs
rename to src/Umbraco.Core/ContentVariationExtensions.cs
diff --git a/src/Umbraco.Core/Cookie/ICookieManager.cs b/src/Umbraco.Core/Cookie/ICookieManager.cs
new file mode 100644
index 0000000000..0eced07b37
--- /dev/null
+++ b/src/Umbraco.Core/Cookie/ICookieManager.cs
@@ -0,0 +1,11 @@
+namespace Umbraco.Core.Cookie
+{
+ public interface ICookieManager
+ {
+ void ExpireCookie(string cookieName);
+ string GetCookieValue(string cookieName);
+ void SetCookieValue(string cookieName, string value);
+ bool HasCookie(string cookieName);
+ }
+
+}
diff --git a/src/Umbraco.Abstractions/CustomBooleanTypeConverter.cs b/src/Umbraco.Core/CustomBooleanTypeConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/CustomBooleanTypeConverter.cs
rename to src/Umbraco.Core/CustomBooleanTypeConverter.cs
diff --git a/src/Umbraco.Abstractions/Dashboards/AccessRule.cs b/src/Umbraco.Core/Dashboards/AccessRule.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Dashboards/AccessRule.cs
rename to src/Umbraco.Core/Dashboards/AccessRule.cs
diff --git a/src/Umbraco.Abstractions/Dashboards/AccessRuleType.cs b/src/Umbraco.Core/Dashboards/AccessRuleType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Dashboards/AccessRuleType.cs
rename to src/Umbraco.Core/Dashboards/AccessRuleType.cs
diff --git a/src/Umbraco.Web.BackOffice/Dashboards/ContentDashboard.cs b/src/Umbraco.Core/Dashboards/ContentDashboard.cs
similarity index 100%
rename from src/Umbraco.Web.BackOffice/Dashboards/ContentDashboard.cs
rename to src/Umbraco.Core/Dashboards/ContentDashboard.cs
diff --git a/src/Umbraco.Abstractions/Dashboards/DashboardCollection.cs b/src/Umbraco.Core/Dashboards/DashboardCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Dashboards/DashboardCollection.cs
rename to src/Umbraco.Core/Dashboards/DashboardCollection.cs
diff --git a/src/Umbraco.Web.BackOffice/Dashboards/DashboardCollectionBuilder.cs b/src/Umbraco.Core/Dashboards/DashboardCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Web.BackOffice/Dashboards/DashboardCollectionBuilder.cs
rename to src/Umbraco.Core/Dashboards/DashboardCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/Dashboards/DashboardSlim.cs b/src/Umbraco.Core/Dashboards/DashboardSlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Dashboards/DashboardSlim.cs
rename to src/Umbraco.Core/Dashboards/DashboardSlim.cs
diff --git a/src/Umbraco.Web.BackOffice/Dashboards/ExamineDashboard.cs b/src/Umbraco.Core/Dashboards/ExamineDashboard.cs
similarity index 100%
rename from src/Umbraco.Web.BackOffice/Dashboards/ExamineDashboard.cs
rename to src/Umbraco.Core/Dashboards/ExamineDashboard.cs
diff --git a/src/Umbraco.Web.BackOffice/Dashboards/FormsDashboard.cs b/src/Umbraco.Core/Dashboards/FormsDashboard.cs
similarity index 100%
rename from src/Umbraco.Web.BackOffice/Dashboards/FormsDashboard.cs
rename to src/Umbraco.Core/Dashboards/FormsDashboard.cs
diff --git a/src/Umbraco.Web.BackOffice/Dashboards/HealthCheckDashboard.cs b/src/Umbraco.Core/Dashboards/HealthCheckDashboard.cs
similarity index 100%
rename from src/Umbraco.Web.BackOffice/Dashboards/HealthCheckDashboard.cs
rename to src/Umbraco.Core/Dashboards/HealthCheckDashboard.cs
diff --git a/src/Umbraco.Abstractions/Dashboards/IAccessRule.cs b/src/Umbraco.Core/Dashboards/IAccessRule.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Dashboards/IAccessRule.cs
rename to src/Umbraco.Core/Dashboards/IAccessRule.cs
diff --git a/src/Umbraco.Abstractions/Dashboards/IDashboard.cs b/src/Umbraco.Core/Dashboards/IDashboard.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Dashboards/IDashboard.cs
rename to src/Umbraco.Core/Dashboards/IDashboard.cs
diff --git a/src/Umbraco.Abstractions/Dashboards/IDashboardSlim.cs b/src/Umbraco.Core/Dashboards/IDashboardSlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Dashboards/IDashboardSlim.cs
rename to src/Umbraco.Core/Dashboards/IDashboardSlim.cs
diff --git a/src/Umbraco.Web.BackOffice/Dashboards/MediaDashboard.cs b/src/Umbraco.Core/Dashboards/MediaDashboard.cs
similarity index 100%
rename from src/Umbraco.Web.BackOffice/Dashboards/MediaDashboard.cs
rename to src/Umbraco.Core/Dashboards/MediaDashboard.cs
diff --git a/src/Umbraco.Web.BackOffice/Dashboards/MembersDashboard.cs b/src/Umbraco.Core/Dashboards/MembersDashboard.cs
similarity index 100%
rename from src/Umbraco.Web.BackOffice/Dashboards/MembersDashboard.cs
rename to src/Umbraco.Core/Dashboards/MembersDashboard.cs
diff --git a/src/Umbraco.Web.BackOffice/Dashboards/ProfilerDashboard.cs b/src/Umbraco.Core/Dashboards/ProfilerDashboard.cs
similarity index 100%
rename from src/Umbraco.Web.BackOffice/Dashboards/ProfilerDashboard.cs
rename to src/Umbraco.Core/Dashboards/ProfilerDashboard.cs
diff --git a/src/Umbraco.Web.BackOffice/Dashboards/PublishedStatusDashboard.cs b/src/Umbraco.Core/Dashboards/PublishedStatusDashboard.cs
similarity index 100%
rename from src/Umbraco.Web.BackOffice/Dashboards/PublishedStatusDashboard.cs
rename to src/Umbraco.Core/Dashboards/PublishedStatusDashboard.cs
diff --git a/src/Umbraco.Web.BackOffice/Dashboards/RedirectUrlDashboard.cs b/src/Umbraco.Core/Dashboards/RedirectUrlDashboard.cs
similarity index 100%
rename from src/Umbraco.Web.BackOffice/Dashboards/RedirectUrlDashboard.cs
rename to src/Umbraco.Core/Dashboards/RedirectUrlDashboard.cs
diff --git a/src/Umbraco.Web.BackOffice/Dashboards/SettingsDashboards.cs b/src/Umbraco.Core/Dashboards/SettingsDashboards.cs
similarity index 100%
rename from src/Umbraco.Web.BackOffice/Dashboards/SettingsDashboards.cs
rename to src/Umbraco.Core/Dashboards/SettingsDashboards.cs
diff --git a/src/Umbraco.Abstractions/DataTableExtensions.cs b/src/Umbraco.Core/DataTableExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/DataTableExtensions.cs
rename to src/Umbraco.Core/DataTableExtensions.cs
diff --git a/src/Umbraco.Abstractions/DateTimeExtensions.cs b/src/Umbraco.Core/DateTimeExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/DateTimeExtensions.cs
rename to src/Umbraco.Core/DateTimeExtensions.cs
diff --git a/src/Umbraco.Abstractions/DecimalExtensions.cs b/src/Umbraco.Core/DecimalExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/DecimalExtensions.cs
rename to src/Umbraco.Core/DecimalExtensions.cs
diff --git a/src/Umbraco.Abstractions/DelegateEqualityComparer.cs b/src/Umbraco.Core/DelegateEqualityComparer.cs
similarity index 100%
rename from src/Umbraco.Abstractions/DelegateEqualityComparer.cs
rename to src/Umbraco.Core/DelegateEqualityComparer.cs
diff --git a/src/Umbraco.Abstractions/DelegateExtensions.cs b/src/Umbraco.Core/DelegateExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/DelegateExtensions.cs
rename to src/Umbraco.Core/DelegateExtensions.cs
diff --git a/src/Umbraco.Abstractions/Deploy/ArtifactBase.cs b/src/Umbraco.Core/Deploy/ArtifactBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/ArtifactBase.cs
rename to src/Umbraco.Core/Deploy/ArtifactBase.cs
diff --git a/src/Umbraco.Abstractions/Deploy/ArtifactDependency.cs b/src/Umbraco.Core/Deploy/ArtifactDependency.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/ArtifactDependency.cs
rename to src/Umbraco.Core/Deploy/ArtifactDependency.cs
diff --git a/src/Umbraco.Abstractions/Deploy/ArtifactDependencyCollection.cs b/src/Umbraco.Core/Deploy/ArtifactDependencyCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/ArtifactDependencyCollection.cs
rename to src/Umbraco.Core/Deploy/ArtifactDependencyCollection.cs
diff --git a/src/Umbraco.Abstractions/Deploy/ArtifactDependencyMode.cs b/src/Umbraco.Core/Deploy/ArtifactDependencyMode.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/ArtifactDependencyMode.cs
rename to src/Umbraco.Core/Deploy/ArtifactDependencyMode.cs
diff --git a/src/Umbraco.Abstractions/Deploy/ArtifactDeployState.cs b/src/Umbraco.Core/Deploy/ArtifactDeployState.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/ArtifactDeployState.cs
rename to src/Umbraco.Core/Deploy/ArtifactDeployState.cs
diff --git a/src/Umbraco.Abstractions/Deploy/ArtifactDeployStateOfTArtifactTEntity.cs b/src/Umbraco.Core/Deploy/ArtifactDeployStateOfTArtifactTEntity.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/ArtifactDeployStateOfTArtifactTEntity.cs
rename to src/Umbraco.Core/Deploy/ArtifactDeployStateOfTArtifactTEntity.cs
diff --git a/src/Umbraco.Abstractions/Deploy/ArtifactSignature.cs b/src/Umbraco.Core/Deploy/ArtifactSignature.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/ArtifactSignature.cs
rename to src/Umbraco.Core/Deploy/ArtifactSignature.cs
diff --git a/src/Umbraco.Abstractions/Deploy/Difference.cs b/src/Umbraco.Core/Deploy/Difference.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/Difference.cs
rename to src/Umbraco.Core/Deploy/Difference.cs
diff --git a/src/Umbraco.Abstractions/Deploy/Direction.cs b/src/Umbraco.Core/Deploy/Direction.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/Direction.cs
rename to src/Umbraco.Core/Deploy/Direction.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IArtifact.cs b/src/Umbraco.Core/Deploy/IArtifact.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IArtifact.cs
rename to src/Umbraco.Core/Deploy/IArtifact.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IArtifactSignature.cs b/src/Umbraco.Core/Deploy/IArtifactSignature.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IArtifactSignature.cs
rename to src/Umbraco.Core/Deploy/IArtifactSignature.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IDataTypeConfigurationConnector.cs b/src/Umbraco.Core/Deploy/IDataTypeConfigurationConnector.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IDataTypeConfigurationConnector.cs
rename to src/Umbraco.Core/Deploy/IDataTypeConfigurationConnector.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IDeployContext.cs b/src/Umbraco.Core/Deploy/IDeployContext.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IDeployContext.cs
rename to src/Umbraco.Core/Deploy/IDeployContext.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IFileSource.cs b/src/Umbraco.Core/Deploy/IFileSource.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IFileSource.cs
rename to src/Umbraco.Core/Deploy/IFileSource.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IFileType.cs b/src/Umbraco.Core/Deploy/IFileType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IFileType.cs
rename to src/Umbraco.Core/Deploy/IFileType.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IFileTypeCollection.cs b/src/Umbraco.Core/Deploy/IFileTypeCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IFileTypeCollection.cs
rename to src/Umbraco.Core/Deploy/IFileTypeCollection.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IImageSourceParser.cs b/src/Umbraco.Core/Deploy/IImageSourceParser.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IImageSourceParser.cs
rename to src/Umbraco.Core/Deploy/IImageSourceParser.cs
diff --git a/src/Umbraco.Abstractions/Deploy/ILocalLinkParser.cs b/src/Umbraco.Core/Deploy/ILocalLinkParser.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/ILocalLinkParser.cs
rename to src/Umbraco.Core/Deploy/ILocalLinkParser.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IMacroParser.cs b/src/Umbraco.Core/Deploy/IMacroParser.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IMacroParser.cs
rename to src/Umbraco.Core/Deploy/IMacroParser.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IServiceConnector.cs b/src/Umbraco.Core/Deploy/IServiceConnector.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IServiceConnector.cs
rename to src/Umbraco.Core/Deploy/IServiceConnector.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IUniqueIdentifyingServiceConnector.cs b/src/Umbraco.Core/Deploy/IUniqueIdentifyingServiceConnector.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IUniqueIdentifyingServiceConnector.cs
rename to src/Umbraco.Core/Deploy/IUniqueIdentifyingServiceConnector.cs
diff --git a/src/Umbraco.Abstractions/Deploy/IValueConnector.cs b/src/Umbraco.Core/Deploy/IValueConnector.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Deploy/IValueConnector.cs
rename to src/Umbraco.Core/Deploy/IValueConnector.cs
diff --git a/src/Umbraco.Abstractions/Dictionary/ICultureDictionary.cs b/src/Umbraco.Core/Dictionary/ICultureDictionary.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Dictionary/ICultureDictionary.cs
rename to src/Umbraco.Core/Dictionary/ICultureDictionary.cs
diff --git a/src/Umbraco.Abstractions/Dictionary/ICultureDictionaryFactory.cs b/src/Umbraco.Core/Dictionary/ICultureDictionaryFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Dictionary/ICultureDictionaryFactory.cs
rename to src/Umbraco.Core/Dictionary/ICultureDictionaryFactory.cs
diff --git a/src/Umbraco.Abstractions/DictionaryExtensions.cs b/src/Umbraco.Core/DictionaryExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/DictionaryExtensions.cs
rename to src/Umbraco.Core/DictionaryExtensions.cs
diff --git a/src/Umbraco.Abstractions/Direction.cs b/src/Umbraco.Core/Direction.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Direction.cs
rename to src/Umbraco.Core/Direction.cs
diff --git a/src/Umbraco.Abstractions/DisposableObjectSlim.cs b/src/Umbraco.Core/DisposableObjectSlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/DisposableObjectSlim.cs
rename to src/Umbraco.Core/DisposableObjectSlim.cs
diff --git a/src/Umbraco.Web/Editors/EditorModelEventArgs.cs b/src/Umbraco.Core/Editors/EditorModelEventArgs.cs
similarity index 81%
rename from src/Umbraco.Web/Editors/EditorModelEventArgs.cs
rename to src/Umbraco.Core/Editors/EditorModelEventArgs.cs
index daf262fce5..24ee1a3d85 100644
--- a/src/Umbraco.Web/Editors/EditorModelEventArgs.cs
+++ b/src/Umbraco.Core/Editors/EditorModelEventArgs.cs
@@ -14,7 +14,7 @@ namespace Umbraco.Web.Editors
Model = (T)baseArgs.Model;
}
- public EditorModelEventArgs(T model, UmbracoContext umbracoContext)
+ public EditorModelEventArgs(T model, IUmbracoContext umbracoContext)
: base(model, umbracoContext)
{
Model = model;
@@ -34,13 +34,13 @@ namespace Umbraco.Web.Editors
public class EditorModelEventArgs : EventArgs
{
- public EditorModelEventArgs(object model, UmbracoContext umbracoContext)
+ public EditorModelEventArgs(object model, IUmbracoContext umbracoContext)
{
Model = model;
UmbracoContext = umbracoContext;
}
public object Model { get; set; }
- public UmbracoContext UmbracoContext { get; }
+ public IUmbracoContext UmbracoContext { get; }
}
}
diff --git a/src/Umbraco.Web/Editors/EditorValidatorCollection.cs b/src/Umbraco.Core/Editors/EditorValidatorCollection.cs
similarity index 100%
rename from src/Umbraco.Web/Editors/EditorValidatorCollection.cs
rename to src/Umbraco.Core/Editors/EditorValidatorCollection.cs
diff --git a/src/Umbraco.Web/Editors/EditorValidatorCollectionBuilder.cs b/src/Umbraco.Core/Editors/EditorValidatorCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Web/Editors/EditorValidatorCollectionBuilder.cs
rename to src/Umbraco.Core/Editors/EditorValidatorCollectionBuilder.cs
diff --git a/src/Umbraco.Web/Editors/EditorValidatorOfT.cs b/src/Umbraco.Core/Editors/EditorValidatorOfT.cs
similarity index 100%
rename from src/Umbraco.Web/Editors/EditorValidatorOfT.cs
rename to src/Umbraco.Core/Editors/EditorValidatorOfT.cs
diff --git a/src/Umbraco.Web/Editors/IEditorValidator.cs b/src/Umbraco.Core/Editors/IEditorValidator.cs
similarity index 100%
rename from src/Umbraco.Web/Editors/IEditorValidator.cs
rename to src/Umbraco.Core/Editors/IEditorValidator.cs
diff --git a/src/Umbraco.Abstractions/EmailSender.cs b/src/Umbraco.Core/EmailSender.cs
similarity index 100%
rename from src/Umbraco.Abstractions/EmailSender.cs
rename to src/Umbraco.Core/EmailSender.cs
diff --git a/src/Umbraco.Abstractions/Enum.cs b/src/Umbraco.Core/Enum.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Enum.cs
rename to src/Umbraco.Core/Enum.cs
diff --git a/src/Umbraco.Abstractions/EnumExtensions.cs b/src/Umbraco.Core/EnumExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/EnumExtensions.cs
rename to src/Umbraco.Core/EnumExtensions.cs
diff --git a/src/Umbraco.Abstractions/EnumerableExtensions.cs b/src/Umbraco.Core/EnumerableExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/EnumerableExtensions.cs
rename to src/Umbraco.Core/EnumerableExtensions.cs
diff --git a/src/Umbraco.Abstractions/Events/CancellableEnumerableObjectEventArgs.cs b/src/Umbraco.Core/Events/CancellableEnumerableObjectEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/CancellableEnumerableObjectEventArgs.cs
rename to src/Umbraco.Core/Events/CancellableEnumerableObjectEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/CancellableEventArgs.cs b/src/Umbraco.Core/Events/CancellableEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/CancellableEventArgs.cs
rename to src/Umbraco.Core/Events/CancellableEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/CancellableObjectEventArgs.cs b/src/Umbraco.Core/Events/CancellableObjectEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/CancellableObjectEventArgs.cs
rename to src/Umbraco.Core/Events/CancellableObjectEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/CancellableObjectEventArgsOfTEventObject.cs b/src/Umbraco.Core/Events/CancellableObjectEventArgsOfTEventObject.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/CancellableObjectEventArgsOfTEventObject.cs
rename to src/Umbraco.Core/Events/CancellableObjectEventArgsOfTEventObject.cs
diff --git a/src/Umbraco.Abstractions/Events/ContentCacheEventArgs.cs b/src/Umbraco.Core/Events/ContentCacheEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/ContentCacheEventArgs.cs
rename to src/Umbraco.Core/Events/ContentCacheEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/ContentPublishedEventArgs.cs b/src/Umbraco.Core/Events/ContentPublishedEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/ContentPublishedEventArgs.cs
rename to src/Umbraco.Core/Events/ContentPublishedEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/ContentPublishingEventArgs.cs b/src/Umbraco.Core/Events/ContentPublishingEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/ContentPublishingEventArgs.cs
rename to src/Umbraco.Core/Events/ContentPublishingEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/ContentSavedEventArgs.cs b/src/Umbraco.Core/Events/ContentSavedEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/ContentSavedEventArgs.cs
rename to src/Umbraco.Core/Events/ContentSavedEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/ContentSavingEventArgs.cs b/src/Umbraco.Core/Events/ContentSavingEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/ContentSavingEventArgs.cs
rename to src/Umbraco.Core/Events/ContentSavingEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/CopyEventArgs.cs b/src/Umbraco.Core/Events/CopyEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/CopyEventArgs.cs
rename to src/Umbraco.Core/Events/CopyEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/DatabaseCreationEventArgs.cs b/src/Umbraco.Core/Events/DatabaseCreationEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/DatabaseCreationEventArgs.cs
rename to src/Umbraco.Core/Events/DatabaseCreationEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/DeleteEventArgs.cs b/src/Umbraco.Core/Events/DeleteEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/DeleteEventArgs.cs
rename to src/Umbraco.Core/Events/DeleteEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/DeleteRevisionsEventArgs.cs b/src/Umbraco.Core/Events/DeleteRevisionsEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/DeleteRevisionsEventArgs.cs
rename to src/Umbraco.Core/Events/DeleteRevisionsEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/EventDefinition.cs b/src/Umbraco.Core/Events/EventDefinition.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/EventDefinition.cs
rename to src/Umbraco.Core/Events/EventDefinition.cs
diff --git a/src/Umbraco.Abstractions/Events/EventDefinitionBase.cs b/src/Umbraco.Core/Events/EventDefinitionBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/EventDefinitionBase.cs
rename to src/Umbraco.Core/Events/EventDefinitionBase.cs
diff --git a/src/Umbraco.Abstractions/Events/EventDefinitionFilter.cs b/src/Umbraco.Core/Events/EventDefinitionFilter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/EventDefinitionFilter.cs
rename to src/Umbraco.Core/Events/EventDefinitionFilter.cs
diff --git a/src/Umbraco.Abstractions/Events/EventExtensions.cs b/src/Umbraco.Core/Events/EventExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/EventExtensions.cs
rename to src/Umbraco.Core/Events/EventExtensions.cs
diff --git a/src/Umbraco.Abstractions/Events/EventMessage.cs b/src/Umbraco.Core/Events/EventMessage.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/EventMessage.cs
rename to src/Umbraco.Core/Events/EventMessage.cs
diff --git a/src/Umbraco.Abstractions/Events/EventMessageType.cs b/src/Umbraco.Core/Events/EventMessageType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/EventMessageType.cs
rename to src/Umbraco.Core/Events/EventMessageType.cs
diff --git a/src/Umbraco.Abstractions/Events/EventMessages.cs b/src/Umbraco.Core/Events/EventMessages.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/EventMessages.cs
rename to src/Umbraco.Core/Events/EventMessages.cs
diff --git a/src/Umbraco.Abstractions/Events/EventNameExtractor.cs b/src/Umbraco.Core/Events/EventNameExtractor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/EventNameExtractor.cs
rename to src/Umbraco.Core/Events/EventNameExtractor.cs
diff --git a/src/Umbraco.Abstractions/Events/EventNameExtractorError.cs b/src/Umbraco.Core/Events/EventNameExtractorError.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/EventNameExtractorError.cs
rename to src/Umbraco.Core/Events/EventNameExtractorError.cs
diff --git a/src/Umbraco.Abstractions/Events/EventNameExtractorResult.cs b/src/Umbraco.Core/Events/EventNameExtractorResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/EventNameExtractorResult.cs
rename to src/Umbraco.Core/Events/EventNameExtractorResult.cs
diff --git a/src/Umbraco.Abstractions/Events/ExportedMemberEventArgs.cs b/src/Umbraco.Core/Events/ExportedMemberEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/ExportedMemberEventArgs.cs
rename to src/Umbraco.Core/Events/ExportedMemberEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/IDeletingMediaFilesEventArgs.cs b/src/Umbraco.Core/Events/IDeletingMediaFilesEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/IDeletingMediaFilesEventArgs.cs
rename to src/Umbraco.Core/Events/IDeletingMediaFilesEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/IEventDefinition.cs b/src/Umbraco.Core/Events/IEventDefinition.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/IEventDefinition.cs
rename to src/Umbraco.Core/Events/IEventDefinition.cs
diff --git a/src/Umbraco.Abstractions/Events/IEventDispatcher.cs b/src/Umbraco.Core/Events/IEventDispatcher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/IEventDispatcher.cs
rename to src/Umbraco.Core/Events/IEventDispatcher.cs
diff --git a/src/Umbraco.Abstractions/Events/IEventMessagesAccessor.cs b/src/Umbraco.Core/Events/IEventMessagesAccessor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/IEventMessagesAccessor.cs
rename to src/Umbraco.Core/Events/IEventMessagesAccessor.cs
diff --git a/src/Umbraco.Abstractions/Events/IEventMessagesFactory.cs b/src/Umbraco.Core/Events/IEventMessagesFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/IEventMessagesFactory.cs
rename to src/Umbraco.Core/Events/IEventMessagesFactory.cs
diff --git a/src/Umbraco.Abstractions/Events/ImportPackageEventArgs.cs b/src/Umbraco.Core/Events/ImportPackageEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/ImportPackageEventArgs.cs
rename to src/Umbraco.Core/Events/ImportPackageEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/MacroErrorEventArgs.cs b/src/Umbraco.Core/Events/MacroErrorEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/MacroErrorEventArgs.cs
rename to src/Umbraco.Core/Events/MacroErrorEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/MoveEventArgs.cs b/src/Umbraco.Core/Events/MoveEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/MoveEventArgs.cs
rename to src/Umbraco.Core/Events/MoveEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/MoveEventInfo.cs b/src/Umbraco.Core/Events/MoveEventInfo.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/MoveEventInfo.cs
rename to src/Umbraco.Core/Events/MoveEventInfo.cs
diff --git a/src/Umbraco.Abstractions/Events/NewEventArgs.cs b/src/Umbraco.Core/Events/NewEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/NewEventArgs.cs
rename to src/Umbraco.Core/Events/NewEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/PassThroughEventDispatcher.cs b/src/Umbraco.Core/Events/PassThroughEventDispatcher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/PassThroughEventDispatcher.cs
rename to src/Umbraco.Core/Events/PassThroughEventDispatcher.cs
diff --git a/src/Umbraco.Abstractions/Events/PublishEventArgs.cs b/src/Umbraco.Core/Events/PublishEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/PublishEventArgs.cs
rename to src/Umbraco.Core/Events/PublishEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/QueuingEventDispatcherBase.cs b/src/Umbraco.Core/Events/QueuingEventDispatcherBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/QueuingEventDispatcherBase.cs
rename to src/Umbraco.Core/Events/QueuingEventDispatcherBase.cs
diff --git a/src/Umbraco.Abstractions/Events/RecycleBinEventArgs.cs b/src/Umbraco.Core/Events/RecycleBinEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/RecycleBinEventArgs.cs
rename to src/Umbraco.Core/Events/RecycleBinEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/RefreshContentEventArgs.cs b/src/Umbraco.Core/Events/RefreshContentEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/RefreshContentEventArgs.cs
rename to src/Umbraco.Core/Events/RefreshContentEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/RolesEventArgs.cs b/src/Umbraco.Core/Events/RolesEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/RolesEventArgs.cs
rename to src/Umbraco.Core/Events/RolesEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/RollbackEventArgs.cs b/src/Umbraco.Core/Events/RollbackEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/RollbackEventArgs.cs
rename to src/Umbraco.Core/Events/RollbackEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/SaveEventArgs.cs b/src/Umbraco.Core/Events/SaveEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/SaveEventArgs.cs
rename to src/Umbraco.Core/Events/SaveEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/SendEmailEventArgs.cs b/src/Umbraco.Core/Events/SendEmailEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/SendEmailEventArgs.cs
rename to src/Umbraco.Core/Events/SendEmailEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/SendToPublishEventArgs.cs b/src/Umbraco.Core/Events/SendToPublishEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/SendToPublishEventArgs.cs
rename to src/Umbraco.Core/Events/SendToPublishEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/SupersedeEventAttribute.cs b/src/Umbraco.Core/Events/SupersedeEventAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/SupersedeEventAttribute.cs
rename to src/Umbraco.Core/Events/SupersedeEventAttribute.cs
diff --git a/src/Umbraco.Abstractions/Events/TransientEventMessagesFactory.cs b/src/Umbraco.Core/Events/TransientEventMessagesFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/TransientEventMessagesFactory.cs
rename to src/Umbraco.Core/Events/TransientEventMessagesFactory.cs
diff --git a/src/Umbraco.Abstractions/Events/TypedEventHandler.cs b/src/Umbraco.Core/Events/TypedEventHandler.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/TypedEventHandler.cs
rename to src/Umbraco.Core/Events/TypedEventHandler.cs
diff --git a/src/Umbraco.Abstractions/Events/UninstallPackageEventArgs.cs b/src/Umbraco.Core/Events/UninstallPackageEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/UninstallPackageEventArgs.cs
rename to src/Umbraco.Core/Events/UninstallPackageEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Events/UserGroupWithUsers.cs b/src/Umbraco.Core/Events/UserGroupWithUsers.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Events/UserGroupWithUsers.cs
rename to src/Umbraco.Core/Events/UserGroupWithUsers.cs
diff --git a/src/Umbraco.Abstractions/Exceptions/AuthorizationException.cs b/src/Umbraco.Core/Exceptions/AuthorizationException.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Exceptions/AuthorizationException.cs
rename to src/Umbraco.Core/Exceptions/AuthorizationException.cs
diff --git a/src/Umbraco.Abstractions/Exceptions/BootFailedException.cs b/src/Umbraco.Core/Exceptions/BootFailedException.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Exceptions/BootFailedException.cs
rename to src/Umbraco.Core/Exceptions/BootFailedException.cs
diff --git a/src/Umbraco.Abstractions/Exceptions/DataOperationException.cs b/src/Umbraco.Core/Exceptions/DataOperationException.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Exceptions/DataOperationException.cs
rename to src/Umbraco.Core/Exceptions/DataOperationException.cs
diff --git a/src/Umbraco.Abstractions/Exceptions/InvalidCompositionException.cs b/src/Umbraco.Core/Exceptions/InvalidCompositionException.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Exceptions/InvalidCompositionException.cs
rename to src/Umbraco.Core/Exceptions/InvalidCompositionException.cs
diff --git a/src/Umbraco.Abstractions/Exceptions/PanicException.cs b/src/Umbraco.Core/Exceptions/PanicException.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Exceptions/PanicException.cs
rename to src/Umbraco.Core/Exceptions/PanicException.cs
diff --git a/src/Umbraco.Abstractions/ExpressionExtensions.cs b/src/Umbraco.Core/ExpressionExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ExpressionExtensions.cs
rename to src/Umbraco.Core/ExpressionExtensions.cs
diff --git a/src/Umbraco.Abstractions/ExpressionHelper.cs b/src/Umbraco.Core/ExpressionHelper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ExpressionHelper.cs
rename to src/Umbraco.Core/ExpressionHelper.cs
diff --git a/src/Umbraco.Abstractions/FactoryExtensions.cs b/src/Umbraco.Core/FactoryExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/FactoryExtensions.cs
rename to src/Umbraco.Core/FactoryExtensions.cs
diff --git a/src/Umbraco.Web/Features/DisabledFeatures.cs b/src/Umbraco.Core/Features/DisabledFeatures.cs
similarity index 82%
rename from src/Umbraco.Web/Features/DisabledFeatures.cs
rename to src/Umbraco.Core/Features/DisabledFeatures.cs
index 62fb019c70..9bd091a570 100644
--- a/src/Umbraco.Web/Features/DisabledFeatures.cs
+++ b/src/Umbraco.Core/Features/DisabledFeatures.cs
@@ -1,5 +1,4 @@
using Umbraco.Core.Collections;
-using Umbraco.Web.WebApi;
namespace Umbraco.Web.Features
{
@@ -13,19 +12,19 @@ namespace Umbraco.Web.Features
///
public DisabledFeatures()
{
- Controllers = new TypeList();
+ Controllers = new TypeList();
}
///
/// Gets the disabled controllers.
///
- public TypeList Controllers { get; }
+ public TypeList Controllers { get; }
///
/// Disables the device preview feature of previewing.
///
public bool DisableDevicePreview { get; set; }
-
+
///
/// If true, all references to templates will be removed in the back office and routing
///
diff --git a/src/Umbraco.Web/Features/EnabledFeatures.cs b/src/Umbraco.Core/Features/EnabledFeatures.cs
similarity index 100%
rename from src/Umbraco.Web/Features/EnabledFeatures.cs
rename to src/Umbraco.Core/Features/EnabledFeatures.cs
diff --git a/src/Umbraco.Core/Features/IUmbracoFeature.cs b/src/Umbraco.Core/Features/IUmbracoFeature.cs
new file mode 100644
index 0000000000..ccb80b0a9f
--- /dev/null
+++ b/src/Umbraco.Core/Features/IUmbracoFeature.cs
@@ -0,0 +1,10 @@
+namespace Umbraco.Web.Features
+{
+ ///
+ /// This is a marker interface to allow controllers to be disabled if also marked with FeatureAuthorizeAttribute.
+ ///
+ public interface IUmbracoFeature
+ {
+
+ }
+}
diff --git a/src/Umbraco.Web/Features/UmbracoFeatures.cs b/src/Umbraco.Core/Features/UmbracoFeatures.cs
similarity index 90%
rename from src/Umbraco.Web/Features/UmbracoFeatures.cs
rename to src/Umbraco.Core/Features/UmbracoFeatures.cs
index d1c3899271..69fe58f76d 100644
--- a/src/Umbraco.Web/Features/UmbracoFeatures.cs
+++ b/src/Umbraco.Core/Features/UmbracoFeatures.cs
@@ -1,5 +1,4 @@
using System;
-using Umbraco.Web.WebApi;
namespace Umbraco.Web.Features
{
@@ -16,7 +15,7 @@ namespace Umbraco.Web.Features
Disabled = new DisabledFeatures();
Enabled = new EnabledFeatures();
}
-
+
///
/// Gets the disabled features.
///
@@ -32,7 +31,7 @@ namespace Umbraco.Web.Features
///
internal bool IsControllerEnabled(Type feature)
{
- if (typeof(UmbracoApiControllerBase).IsAssignableFrom(feature))
+ if (typeof(IUmbracoFeature).IsAssignableFrom(feature))
return Disabled.Controllers.Contains(feature) == false;
throw new NotSupportedException("Not a supported feature type.");
diff --git a/src/Umbraco.Abstractions/GuidUdi.cs b/src/Umbraco.Core/GuidUdi.cs
similarity index 100%
rename from src/Umbraco.Abstractions/GuidUdi.cs
rename to src/Umbraco.Core/GuidUdi.cs
diff --git a/src/Umbraco.Abstractions/GuidUtils.cs b/src/Umbraco.Core/GuidUtils.cs
similarity index 100%
rename from src/Umbraco.Abstractions/GuidUtils.cs
rename to src/Umbraco.Core/GuidUtils.cs
diff --git a/src/Umbraco.Abstractions/HashCodeCombiner.cs b/src/Umbraco.Core/HashCodeCombiner.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HashCodeCombiner.cs
rename to src/Umbraco.Core/HashCodeCombiner.cs
diff --git a/src/Umbraco.Abstractions/HashCodeHelper.cs b/src/Umbraco.Core/HashCodeHelper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HashCodeHelper.cs
rename to src/Umbraco.Core/HashCodeHelper.cs
diff --git a/src/Umbraco.Abstractions/HashGenerator.cs b/src/Umbraco.Core/HashGenerator.cs
similarity index 99%
rename from src/Umbraco.Abstractions/HashGenerator.cs
rename to src/Umbraco.Core/HashGenerator.cs
index 62be0dacdd..c7fad08089 100644
--- a/src/Umbraco.Abstractions/HashGenerator.cs
+++ b/src/Umbraco.Core/HashGenerator.cs
@@ -41,7 +41,7 @@ namespace Umbraco.Core
public void AddDateTime(DateTime d)
{
- _writer.Write(d.Ticks);;
+ _writer.Write(d.Ticks);
}
public void AddString(string s)
diff --git a/src/Umbraco.Abstractions/HealthCheck/Checks/Permissions/FolderAndFilePermissionsCheck.cs b/src/Umbraco.Core/HealthCheck/Checks/Permissions/FolderAndFilePermissionsCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/Checks/Permissions/FolderAndFilePermissionsCheck.cs
rename to src/Umbraco.Core/HealthCheck/Checks/Permissions/FolderAndFilePermissionsCheck.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/Checks/Security/BaseHttpHeaderCheck.cs b/src/Umbraco.Core/HealthCheck/Checks/Security/BaseHttpHeaderCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/Checks/Security/BaseHttpHeaderCheck.cs
rename to src/Umbraco.Core/HealthCheck/Checks/Security/BaseHttpHeaderCheck.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/Checks/Security/ClickJackingCheck.cs b/src/Umbraco.Core/HealthCheck/Checks/Security/ClickJackingCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/Checks/Security/ClickJackingCheck.cs
rename to src/Umbraco.Core/HealthCheck/Checks/Security/ClickJackingCheck.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/Checks/Security/ExcessiveHeadersCheck.cs b/src/Umbraco.Core/HealthCheck/Checks/Security/ExcessiveHeadersCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/Checks/Security/ExcessiveHeadersCheck.cs
rename to src/Umbraco.Core/HealthCheck/Checks/Security/ExcessiveHeadersCheck.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/Checks/Security/HstsCheck.cs b/src/Umbraco.Core/HealthCheck/Checks/Security/HstsCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/Checks/Security/HstsCheck.cs
rename to src/Umbraco.Core/HealthCheck/Checks/Security/HstsCheck.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/Checks/Security/HttpsCheck.cs b/src/Umbraco.Core/HealthCheck/Checks/Security/HttpsCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/Checks/Security/HttpsCheck.cs
rename to src/Umbraco.Core/HealthCheck/Checks/Security/HttpsCheck.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/Checks/Security/NoSniffCheck.cs b/src/Umbraco.Core/HealthCheck/Checks/Security/NoSniffCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/Checks/Security/NoSniffCheck.cs
rename to src/Umbraco.Core/HealthCheck/Checks/Security/NoSniffCheck.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/Checks/Security/XssProtectionCheck.cs b/src/Umbraco.Core/HealthCheck/Checks/Security/XssProtectionCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/Checks/Security/XssProtectionCheck.cs
rename to src/Umbraco.Core/HealthCheck/Checks/Security/XssProtectionCheck.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/Checks/Services/SmtpCheck.cs b/src/Umbraco.Core/HealthCheck/Checks/Services/SmtpCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/Checks/Services/SmtpCheck.cs
rename to src/Umbraco.Core/HealthCheck/Checks/Services/SmtpCheck.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/HealthCheck.cs b/src/Umbraco.Core/HealthCheck/HealthCheck.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/HealthCheck.cs
rename to src/Umbraco.Core/HealthCheck/HealthCheck.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/HealthCheckAction.cs b/src/Umbraco.Core/HealthCheck/HealthCheckAction.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/HealthCheckAction.cs
rename to src/Umbraco.Core/HealthCheck/HealthCheckAction.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/HealthCheckAttribute.cs b/src/Umbraco.Core/HealthCheck/HealthCheckAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/HealthCheckAttribute.cs
rename to src/Umbraco.Core/HealthCheck/HealthCheckAttribute.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/HealthCheckCollection.cs b/src/Umbraco.Core/HealthCheck/HealthCheckCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/HealthCheckCollection.cs
rename to src/Umbraco.Core/HealthCheck/HealthCheckCollection.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/HealthCheckGroup.cs b/src/Umbraco.Core/HealthCheck/HealthCheckGroup.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/HealthCheckGroup.cs
rename to src/Umbraco.Core/HealthCheck/HealthCheckGroup.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/HealthCheckNotificationMethodAttribute.cs b/src/Umbraco.Core/HealthCheck/HealthCheckNotificationMethodAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/HealthCheckNotificationMethodAttribute.cs
rename to src/Umbraco.Core/HealthCheck/HealthCheckNotificationMethodAttribute.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/HealthCheckStatus.cs b/src/Umbraco.Core/HealthCheck/HealthCheckStatus.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/HealthCheckStatus.cs
rename to src/Umbraco.Core/HealthCheck/HealthCheckStatus.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/HeathCheckCollectionBuilder.cs b/src/Umbraco.Core/HealthCheck/HeathCheckCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/HeathCheckCollectionBuilder.cs
rename to src/Umbraco.Core/HealthCheck/HeathCheckCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/HealthCheck/StatusResultType.cs b/src/Umbraco.Core/HealthCheck/StatusResultType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HealthCheck/StatusResultType.cs
rename to src/Umbraco.Core/HealthCheck/StatusResultType.cs
diff --git a/src/Umbraco.Abstractions/HexEncoder.cs b/src/Umbraco.Core/HexEncoder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/HexEncoder.cs
rename to src/Umbraco.Core/HexEncoder.cs
diff --git a/src/Umbraco.Abstractions/Hosting/IHostingEnvironment.cs b/src/Umbraco.Core/Hosting/IHostingEnvironment.cs
similarity index 75%
rename from src/Umbraco.Abstractions/Hosting/IHostingEnvironment.cs
rename to src/Umbraco.Core/Hosting/IHostingEnvironment.cs
index 1662879cf2..5b97d8e4f3 100644
--- a/src/Umbraco.Abstractions/Hosting/IHostingEnvironment.cs
+++ b/src/Umbraco.Core/Hosting/IHostingEnvironment.cs
@@ -11,8 +11,6 @@ namespace Umbraco.Core.Hosting
string LocalTempPath { get; }
string ApplicationVirtualPath { get; }
- int CurrentDomainId { get; }
-
bool IsDebugMode { get; }
///
/// Gets a value indicating whether Umbraco is hosted.
@@ -22,11 +20,6 @@ namespace Umbraco.Core.Hosting
string MapPath(string path);
string ToAbsolute(string virtualPath, string root);
- ///
- /// Terminates the current application. The application restarts the next time a request is received for it.
- ///
- void LazyRestartApplication();
-
void RegisterObject(IRegisteredObject registeredObject);
void UnregisterObject(IRegisteredObject registeredObject);
}
diff --git a/src/Umbraco.Web/HybridAccessorBase.cs b/src/Umbraco.Core/HybridAccessorBase.cs
similarity index 71%
rename from src/Umbraco.Web/HybridAccessorBase.cs
rename to src/Umbraco.Core/HybridAccessorBase.cs
index ec18b6f3d4..ad33fbf067 100644
--- a/src/Umbraco.Web/HybridAccessorBase.cs
+++ b/src/Umbraco.Core/HybridAccessorBase.cs
@@ -1,6 +1,7 @@
using System;
-using System.Runtime.Remoting.Messaging;
using Umbraco.Core;
+using Umbraco.Core.Cache;
+using Umbraco.Core.Scoping;
namespace Umbraco.Web
{
@@ -16,13 +17,13 @@ namespace Umbraco.Web
public abstract class HybridAccessorBase
where T : class
{
+ private readonly IRequestCache _requestCache;
+
// ReSharper disable StaticMemberInGenericType
private static readonly object Locker = new object();
private static bool _registered;
// ReSharper restore StaticMemberInGenericType
- private readonly IHttpContextAccessor _httpContextAccessor;
-
protected abstract string ItemKey { get; }
// read
@@ -42,17 +43,16 @@ namespace Umbraco.Web
// yes! flows with async!
private T NonContextValue
{
- get => (T) CallContext.LogicalGetData(ItemKey);
+ get => CallContext.GetData(ItemKey);
set
{
- if (value == null) CallContext.FreeNamedDataSlot(ItemKey);
- else CallContext.LogicalSetData(ItemKey, value);
+ CallContext.SetData(ItemKey, value);
}
}
- protected HybridAccessorBase(IHttpContextAccessor httpContextAccessor)
+ protected HybridAccessorBase(IRequestCache requestCache)
{
- _httpContextAccessor = httpContextAccessor ?? throw new ArgumentNullException(nameof(httpContextAccessor));
+ _requestCache = requestCache ?? throw new ArgumentNullException(nameof(requestCache));
lock (Locker)
{
@@ -65,15 +65,14 @@ namespace Umbraco.Web
var itemKey = ItemKey; // virtual
SafeCallContext.Register(() =>
{
- var value = CallContext.LogicalGetData(itemKey);
- CallContext.FreeNamedDataSlot(itemKey);
+ var value = CallContext.GetData(itemKey);
return value;
}, o =>
{
if (o == null) return;
var value = o as T;
if (value == null) throw new ArgumentException($"Expected type {typeof(T).FullName}, got {o.GetType().FullName}", nameof(o));
- CallContext.LogicalSetData(itemKey, value);
+ CallContext.SetData(itemKey, value);
});
}
@@ -81,20 +80,23 @@ namespace Umbraco.Web
{
get
{
- var httpContext = _httpContextAccessor.HttpContext;
- if (httpContext == null) return NonContextValue;
- return (T) httpContext.Items[ItemKey];
+ if (!_requestCache.IsAvailable)
+ {
+ return NonContextValue;
+ }
+ return (T) _requestCache.Get(ItemKey);
}
set
{
- var httpContext = _httpContextAccessor.HttpContext;
- if (httpContext == null)
+ if (!_requestCache.IsAvailable)
+ {
NonContextValue = value;
+ }
else if (value == null)
- httpContext.Items.Remove(ItemKey);
+ _requestCache.Remove(ItemKey);
else
- httpContext.Items[ItemKey] = value;
+ _requestCache.Set(ItemKey, value);
}
}
}
diff --git a/src/Umbraco.Web/HybridEventMessagesAccessor.cs b/src/Umbraco.Core/HybridEventMessagesAccessor.cs
similarity index 70%
rename from src/Umbraco.Web/HybridEventMessagesAccessor.cs
rename to src/Umbraco.Core/HybridEventMessagesAccessor.cs
index fddde403d8..b2700eb137 100644
--- a/src/Umbraco.Web/HybridEventMessagesAccessor.cs
+++ b/src/Umbraco.Core/HybridEventMessagesAccessor.cs
@@ -1,4 +1,5 @@
-using Umbraco.Core.Events;
+using Umbraco.Core.Cache;
+using Umbraco.Core.Events;
namespace Umbraco.Web
{
@@ -6,8 +7,8 @@ namespace Umbraco.Web
{
protected override string ItemKey => "Umbraco.Core.Events.HybridEventMessagesAccessor";
- public HybridEventMessagesAccessor(IHttpContextAccessor httpContextAccessor)
- : base(httpContextAccessor)
+ public HybridEventMessagesAccessor(IRequestCache requestCache)
+ : base(requestCache)
{ }
public EventMessages EventMessages
diff --git a/src/Umbraco.Abstractions/IBackOfficeInfo.cs b/src/Umbraco.Core/IBackOfficeInfo.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IBackOfficeInfo.cs
rename to src/Umbraco.Core/IBackOfficeInfo.cs
diff --git a/src/Umbraco.Abstractions/ICompletable.cs b/src/Umbraco.Core/ICompletable.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ICompletable.cs
rename to src/Umbraco.Core/ICompletable.cs
diff --git a/src/Umbraco.Abstractions/IDisposeOnRequestEnd.cs b/src/Umbraco.Core/IDisposeOnRequestEnd.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IDisposeOnRequestEnd.cs
rename to src/Umbraco.Core/IDisposeOnRequestEnd.cs
diff --git a/src/Umbraco.Abstractions/IEmailSender.cs b/src/Umbraco.Core/IEmailSender.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IEmailSender.cs
rename to src/Umbraco.Core/IEmailSender.cs
diff --git a/src/Umbraco.Abstractions/IO/FileSystemExtensions.cs b/src/Umbraco.Core/IO/FileSystemExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/FileSystemExtensions.cs
rename to src/Umbraco.Core/IO/FileSystemExtensions.cs
diff --git a/src/Umbraco.Abstractions/IO/FileSystemWrapper.cs b/src/Umbraco.Core/IO/FileSystemWrapper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/FileSystemWrapper.cs
rename to src/Umbraco.Core/IO/FileSystemWrapper.cs
diff --git a/src/Umbraco.Abstractions/IO/FileSystems.cs b/src/Umbraco.Core/IO/FileSystems.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/FileSystems.cs
rename to src/Umbraco.Core/IO/FileSystems.cs
diff --git a/src/Umbraco.Abstractions/IO/IFileSystem.cs b/src/Umbraco.Core/IO/IFileSystem.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/IFileSystem.cs
rename to src/Umbraco.Core/IO/IFileSystem.cs
diff --git a/src/Umbraco.Abstractions/IO/IFileSystems.cs b/src/Umbraco.Core/IO/IFileSystems.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/IFileSystems.cs
rename to src/Umbraco.Core/IO/IFileSystems.cs
diff --git a/src/Umbraco.Abstractions/IO/IIOHelper.cs b/src/Umbraco.Core/IO/IIOHelper.cs
similarity index 99%
rename from src/Umbraco.Abstractions/IO/IIOHelper.cs
rename to src/Umbraco.Core/IO/IIOHelper.cs
index e8ef6d2973..11f5c6c565 100644
--- a/src/Umbraco.Abstractions/IO/IIOHelper.cs
+++ b/src/Umbraco.Core/IO/IIOHelper.cs
@@ -75,5 +75,6 @@ namespace Umbraco.Core.IO
get;
set; //Only required for unit tests
}
+
}
}
diff --git a/src/Umbraco.Abstractions/IO/IMediaFileSystem.cs b/src/Umbraco.Core/IO/IMediaFileSystem.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/IMediaFileSystem.cs
rename to src/Umbraco.Core/IO/IMediaFileSystem.cs
diff --git a/src/Umbraco.Abstractions/IO/IMediaPathScheme.cs b/src/Umbraco.Core/IO/IMediaPathScheme.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/IMediaPathScheme.cs
rename to src/Umbraco.Core/IO/IMediaPathScheme.cs
diff --git a/src/Umbraco.Abstractions/IO/IOHelper.cs b/src/Umbraco.Core/IO/IOHelper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/IOHelper.cs
rename to src/Umbraco.Core/IO/IOHelper.cs
diff --git a/src/Umbraco.Core/IO/IOHelperExtensions.cs b/src/Umbraco.Core/IO/IOHelperExtensions.cs
new file mode 100644
index 0000000000..64b57e7dc1
--- /dev/null
+++ b/src/Umbraco.Core/IO/IOHelperExtensions.cs
@@ -0,0 +1,39 @@
+using System;
+using System.IO;
+
+namespace Umbraco.Core.IO
+{
+ public static class IOHelperExtensions
+ {
+ ///
+ /// Tries to create a directory.
+ ///
+ /// The IOHelper.
+ /// the directory path.
+ /// true if the directory was created, false otherwise.
+ public static bool TryCreateDirectory(this IIOHelper ioHelper, string dir)
+ {
+ try
+ {
+ var dirPath = ioHelper.MapPath(dir);
+
+ if (Directory.Exists(dirPath) == false)
+ Directory.CreateDirectory(dirPath);
+
+ var filePath = dirPath + "/" + CreateRandomFileName(ioHelper) + ".tmp";
+ File.WriteAllText(filePath, "This is an Umbraco internal test file. It is safe to delete it.");
+ File.Delete(filePath);
+ return true;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+
+ public static string CreateRandomFileName(this IIOHelper ioHelper)
+ {
+ return "umbraco-test." + Guid.NewGuid().ToString("N").Substring(0, 8);
+ }
+ }
+}
diff --git a/src/Umbraco.Abstractions/IO/MediaFileSystem.cs b/src/Umbraco.Core/IO/MediaFileSystem.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/MediaFileSystem.cs
rename to src/Umbraco.Core/IO/MediaFileSystem.cs
diff --git a/src/Umbraco.Abstractions/IO/MediaPathSchemes/CombinedGuidsMediaPathScheme.cs b/src/Umbraco.Core/IO/MediaPathSchemes/CombinedGuidsMediaPathScheme.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/MediaPathSchemes/CombinedGuidsMediaPathScheme.cs
rename to src/Umbraco.Core/IO/MediaPathSchemes/CombinedGuidsMediaPathScheme.cs
diff --git a/src/Umbraco.Abstractions/IO/MediaPathSchemes/OriginalMediaPathScheme.cs b/src/Umbraco.Core/IO/MediaPathSchemes/OriginalMediaPathScheme.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/MediaPathSchemes/OriginalMediaPathScheme.cs
rename to src/Umbraco.Core/IO/MediaPathSchemes/OriginalMediaPathScheme.cs
diff --git a/src/Umbraco.Abstractions/IO/MediaPathSchemes/TwoGuidsMediaPathScheme.cs b/src/Umbraco.Core/IO/MediaPathSchemes/TwoGuidsMediaPathScheme.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/MediaPathSchemes/TwoGuidsMediaPathScheme.cs
rename to src/Umbraco.Core/IO/MediaPathSchemes/TwoGuidsMediaPathScheme.cs
diff --git a/src/Umbraco.Abstractions/IO/MediaPathSchemes/UniqueMediaPathScheme.cs b/src/Umbraco.Core/IO/MediaPathSchemes/UniqueMediaPathScheme.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/MediaPathSchemes/UniqueMediaPathScheme.cs
rename to src/Umbraco.Core/IO/MediaPathSchemes/UniqueMediaPathScheme.cs
diff --git a/src/Umbraco.Abstractions/IO/PhysicalFileSystem.cs b/src/Umbraco.Core/IO/PhysicalFileSystem.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/PhysicalFileSystem.cs
rename to src/Umbraco.Core/IO/PhysicalFileSystem.cs
diff --git a/src/Umbraco.Abstractions/IO/ShadowFileSystem.cs b/src/Umbraco.Core/IO/ShadowFileSystem.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/ShadowFileSystem.cs
rename to src/Umbraco.Core/IO/ShadowFileSystem.cs
diff --git a/src/Umbraco.Abstractions/IO/ShadowFileSystems.cs b/src/Umbraco.Core/IO/ShadowFileSystems.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/ShadowFileSystems.cs
rename to src/Umbraco.Core/IO/ShadowFileSystems.cs
diff --git a/src/Umbraco.Abstractions/IO/ShadowWrapper.cs b/src/Umbraco.Core/IO/ShadowWrapper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/ShadowWrapper.cs
rename to src/Umbraco.Core/IO/ShadowWrapper.cs
diff --git a/src/Umbraco.Abstractions/IO/SupportingFileSystems.cs b/src/Umbraco.Core/IO/SupportingFileSystems.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/SupportingFileSystems.cs
rename to src/Umbraco.Core/IO/SupportingFileSystems.cs
diff --git a/src/Umbraco.Abstractions/IO/SystemFiles.cs b/src/Umbraco.Core/IO/SystemFiles.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/SystemFiles.cs
rename to src/Umbraco.Core/IO/SystemFiles.cs
diff --git a/src/Umbraco.Abstractions/IO/ViewHelper.cs b/src/Umbraco.Core/IO/ViewHelper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IO/ViewHelper.cs
rename to src/Umbraco.Core/IO/ViewHelper.cs
diff --git a/src/Umbraco.Abstractions/IRegisteredObject.cs b/src/Umbraco.Core/IRegisteredObject.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IRegisteredObject.cs
rename to src/Umbraco.Core/IRegisteredObject.cs
diff --git a/src/Umbraco.Abstractions/ITagQuery.cs b/src/Umbraco.Core/ITagQuery.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ITagQuery.cs
rename to src/Umbraco.Core/ITagQuery.cs
diff --git a/src/Umbraco.Core/IUmbracoContext.cs b/src/Umbraco.Core/IUmbracoContext.cs
new file mode 100644
index 0000000000..66b3dc3965
--- /dev/null
+++ b/src/Umbraco.Core/IUmbracoContext.cs
@@ -0,0 +1,83 @@
+using System;
+using Umbraco.Core.Models.PublishedContent;
+using Umbraco.Web.PublishedCache;
+using Umbraco.Web.Routing;
+using Umbraco.Web.Security;
+
+namespace Umbraco.Web
+{
+ public interface IUmbracoContext
+ {
+ ///
+ /// This is used internally for performance calculations, the ObjectCreated DateTime is set as soon as this
+ /// object is instantiated which in the web site is created during the BeginRequest phase.
+ /// We can then determine complete rendering time from that.
+ ///
+ DateTime ObjectCreated { get; }
+
+ ///
+ /// Gets the WebSecurity class
+ ///
+ IWebSecurity Security { get; }
+
+ ///
+ /// Gets the uri that is handled by ASP.NET after server-side rewriting took place.
+ ///
+ Uri OriginalRequestUrl { get; }
+
+ ///
+ /// Gets the cleaned up url that is handled by Umbraco.
+ ///
+ /// That is, lowercase, no trailing slash after path, no .aspx...
+ Uri CleanedUmbracoUrl { get; }
+
+ ///
+ /// Gets the published snapshot.
+ ///
+ IPublishedSnapshot PublishedSnapshot { get; }
+
+ ///
+ /// Gets the published content cache.
+ ///
+ IPublishedContentCache Content { get; }
+
+ ///
+ /// Gets the published media cache.
+ ///
+ IPublishedMediaCache Media { get; }
+
+ ///
+ /// Gets the domains cache.
+ ///
+ IDomainCache Domains { get; }
+
+ ///
+ /// Boolean value indicating whether the current request is a front-end umbraco request
+ ///
+ bool IsFrontEndUmbracoRequest { get; }
+
+ ///
+ /// Gets/sets the PublishedRequest object
+ ///
+ IPublishedRequest PublishedRequest { get; set; }
+
+ ///
+ /// Gets the variation context accessor.
+ ///
+ IVariationContextAccessor VariationContextAccessor { get; }
+
+ ///
+ /// Gets a value indicating whether the request has debugging enabled
+ ///
+ /// true if this instance is debug; otherwise, false.
+ bool IsDebug { get; }
+
+ ///
+ /// Determines whether the current user is in a preview mode and browsing the site (ie. not in the admin UI)
+ ///
+ bool InPreviewMode { get; }
+
+ IDisposable ForcedPreview(bool preview);
+ void Dispose();
+ }
+}
diff --git a/src/Umbraco.Web/IUmbracoContextAccessor.cs b/src/Umbraco.Core/IUmbracoContextAccessor.cs
similarity index 75%
rename from src/Umbraco.Web/IUmbracoContextAccessor.cs
rename to src/Umbraco.Core/IUmbracoContextAccessor.cs
index 74df940865..5c7549bff6 100644
--- a/src/Umbraco.Web/IUmbracoContextAccessor.cs
+++ b/src/Umbraco.Core/IUmbracoContextAccessor.cs
@@ -5,6 +5,6 @@
///
public interface IUmbracoContextAccessor
{
- UmbracoContext UmbracoContext { get; set; }
+ IUmbracoContext UmbracoContext { get; set; }
}
}
diff --git a/src/Umbraco.Web/IUmbracoContextFactory.cs b/src/Umbraco.Core/IUmbracoContextFactory.cs
similarity index 70%
rename from src/Umbraco.Web/IUmbracoContextFactory.cs
rename to src/Umbraco.Core/IUmbracoContextFactory.cs
index 6d89578da7..2a6dd50618 100644
--- a/src/Umbraco.Web/IUmbracoContextFactory.cs
+++ b/src/Umbraco.Core/IUmbracoContextFactory.cs
@@ -3,15 +3,15 @@
namespace Umbraco.Web
{
///
- /// Creates and manages instances.
+ /// Creates and manages instances.
///
public interface IUmbracoContextFactory
{
///
- /// Ensures that a current exists.
+ /// Ensures that a current exists.
///
///
- /// If an is already registered in the
+ /// If an is already registered in the
/// , returns a non-root reference to it.
/// Otherwise, create a new instance, registers it, and return a root reference
/// to it.
@@ -26,7 +26,6 @@ namespace Umbraco.Web
/// // use umbracoContext...
/// }
///
- /// An optional http context.
- UmbracoContextReference EnsureUmbracoContext(HttpContextBase httpContext = null);
+ UmbracoContextReference EnsureUmbracoContext();
}
-}
\ No newline at end of file
+}
diff --git a/src/Umbraco.Abstractions/IfExtensions.cs b/src/Umbraco.Core/IfExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IfExtensions.cs
rename to src/Umbraco.Core/IfExtensions.cs
diff --git a/src/Umbraco.Abstractions/Install/IFilePermissionHelper.cs b/src/Umbraco.Core/Install/IFilePermissionHelper.cs
similarity index 52%
rename from src/Umbraco.Abstractions/Install/IFilePermissionHelper.cs
rename to src/Umbraco.Core/Install/IFilePermissionHelper.cs
index 90f550f2c9..b60839cb00 100644
--- a/src/Umbraco.Abstractions/Install/IFilePermissionHelper.cs
+++ b/src/Umbraco.Core/Install/IFilePermissionHelper.cs
@@ -7,10 +7,5 @@ namespace Umbraco.Core.Install
bool RunFilePermissionTestSuite(out Dictionary> report);
bool EnsureDirectories(string[] dirs, out IEnumerable errors, bool writeCausesRestart = false);
bool EnsureFiles(string[] files, out IEnumerable errors);
- bool EnsureCanCreateSubDirectory(string dir, out IEnumerable errors);
- bool EnsureCanCreateSubDirectories(IEnumerable dirs, out IEnumerable errors);
- bool TestPublishedSnapshotService(out IEnumerable errors);
- bool TryCreateDirectory(string dir);
- bool TryAccessDirectory(string dir, bool canWrite);
}
}
diff --git a/src/Umbraco.Web/Install/InstallException.cs b/src/Umbraco.Core/Install/InstallException.cs
similarity index 100%
rename from src/Umbraco.Web/Install/InstallException.cs
rename to src/Umbraco.Core/Install/InstallException.cs
diff --git a/src/Umbraco.Web/Install/InstallStatusTracker.cs b/src/Umbraco.Core/Install/InstallStatusTracker.cs
similarity index 69%
rename from src/Umbraco.Web/Install/InstallStatusTracker.cs
rename to src/Umbraco.Core/Install/InstallStatusTracker.cs
index 58e8507ec8..c0c9a696fd 100644
--- a/src/Umbraco.Web/Install/InstallStatusTracker.cs
+++ b/src/Umbraco.Core/Install/InstallStatusTracker.cs
@@ -2,10 +2,10 @@
using System.Collections.Generic;
using System.IO;
using System.Linq;
-using Newtonsoft.Json;
using Umbraco.Core;
using Umbraco.Core.Collections;
-using Umbraco.Web.Composing;
+using Umbraco.Core.IO;
+using Umbraco.Core.Serialization;
using Umbraco.Web.Install.Models;
namespace Umbraco.Web.Install
@@ -13,29 +13,37 @@ namespace Umbraco.Web.Install
///
/// An internal in-memory status tracker for the current installation
///
- internal static class InstallStatusTracker
+ public class InstallStatusTracker
{
+ private readonly IIOHelper _ioHelper;
+ private readonly IJsonSerializer _jsonSerializer;
+
+ public InstallStatusTracker(IIOHelper ioHelper, IJsonSerializer jsonSerializer)
+ {
+ _ioHelper = ioHelper;
+ _jsonSerializer = jsonSerializer;
+ }
private static ConcurrentHashSet _steps = new ConcurrentHashSet();
- private static string GetFile(Guid installId)
+ private string GetFile(Guid installId)
{
- var file = Current.IOHelper.MapPath(Constants.SystemDirectories.TempData.EnsureEndsWith('/') + "Install/"
- + "install_"
- + installId.ToString("N")
- + ".txt");
+ var file = _ioHelper.MapPath(Constants.SystemDirectories.TempData.EnsureEndsWith('/') + "Install/"
+ + "install_"
+ + installId.ToString("N")
+ + ".txt");
return file;
}
- public static void Reset()
+ public void Reset()
{
_steps = new ConcurrentHashSet();
ClearFiles();
}
- public static void ClearFiles()
+ public void ClearFiles()
{
- var dir = Current.IOHelper.MapPath(Constants.SystemDirectories.TempData.EnsureEndsWith('/') + "Install/");
+ var dir = _ioHelper.MapPath(Constants.SystemDirectories.TempData.EnsureEndsWith('/') + "Install/");
if (Directory.Exists(dir))
{
var files = Directory.GetFiles(dir);
@@ -50,13 +58,13 @@ namespace Umbraco.Web.Install
}
}
- public static IEnumerable InitializeFromFile(Guid installId)
+ public IEnumerable InitializeFromFile(Guid installId)
{
//check if we have our persisted file and read it
var file = GetFile(installId);
if (File.Exists(file))
{
- var deserialized = JsonConvert.DeserializeObject>(
+ var deserialized = _jsonSerializer.Deserialize>(
File.ReadAllText(file));
foreach (var item in deserialized)
{
@@ -70,7 +78,7 @@ namespace Umbraco.Web.Install
return new List(_steps);
}
- public static IEnumerable Initialize(Guid installId, IEnumerable steps)
+ public IEnumerable Initialize(Guid installId, IEnumerable steps)
{
//if there are no steps in memory
if (_steps.Count == 0)
@@ -79,7 +87,7 @@ namespace Umbraco.Web.Install
var file = GetFile(installId);
if (File.Exists(file))
{
- var deserialized = JsonConvert.DeserializeObject>(
+ var deserialized = _jsonSerializer.Deserialize>(
File.ReadAllText(file));
foreach (var item in deserialized)
{
@@ -96,7 +104,7 @@ namespace Umbraco.Web.Install
_steps.Add(new InstallTrackingItem(step.Name, step.ServerOrder));
}
//save the file
- var serialized = JsonConvert.SerializeObject(new List(_steps));
+ var serialized = _jsonSerializer.Serialize(new List(_steps));
Directory.CreateDirectory(Path.GetDirectoryName(file));
File.WriteAllText(file, serialized);
}
@@ -110,7 +118,7 @@ namespace Umbraco.Web.Install
ClearFiles();
//save the correct file
- var serialized = JsonConvert.SerializeObject(new List(_steps));
+ var serialized = _jsonSerializer.Serialize(new List(_steps));
Directory.CreateDirectory(Path.GetDirectoryName(file));
File.WriteAllText(file, serialized);
}
@@ -119,7 +127,7 @@ namespace Umbraco.Web.Install
return new List(_steps);
}
- public static void SetComplete(Guid installId, string name, IDictionary additionalData = null)
+ public void SetComplete(Guid installId, string name, IDictionary additionalData = null)
{
var trackingItem = _steps.Single(x => x.Name == name);
if (additionalData != null)
@@ -130,7 +138,7 @@ namespace Umbraco.Web.Install
//save the file
var file = GetFile(installId);
- var serialized = JsonConvert.SerializeObject(new List(_steps));
+ var serialized = _jsonSerializer.Serialize(new List(_steps));
File.WriteAllText(file, serialized);
}
diff --git a/src/Umbraco.Web/Install/InstallSteps/FilePermissionsStep.cs b/src/Umbraco.Core/Install/InstallSteps/FilePermissionsStep.cs
similarity index 98%
rename from src/Umbraco.Web/Install/InstallSteps/FilePermissionsStep.cs
rename to src/Umbraco.Core/Install/InstallSteps/FilePermissionsStep.cs
index b4be0b0a21..c3d7493084 100644
--- a/src/Umbraco.Web/Install/InstallSteps/FilePermissionsStep.cs
+++ b/src/Umbraco.Core/Install/InstallSteps/FilePermissionsStep.cs
@@ -4,7 +4,6 @@ using System.IO;
using System.Threading.Tasks;
using Umbraco.Core;
using Umbraco.Core.Install;
-using Umbraco.Core.IO;
using Umbraco.Web.Install.Models;
namespace Umbraco.Web.Install.InstallSteps
diff --git a/src/Umbraco.Web/Install/InstallSteps/StarterKitCleanupStep.cs b/src/Umbraco.Core/Install/InstallSteps/StarterKitCleanupStep.cs
similarity index 100%
rename from src/Umbraco.Web/Install/InstallSteps/StarterKitCleanupStep.cs
rename to src/Umbraco.Core/Install/InstallSteps/StarterKitCleanupStep.cs
diff --git a/src/Umbraco.Web/Install/InstallSteps/UpgradeStep.cs b/src/Umbraco.Core/Install/InstallSteps/UpgradeStep.cs
similarity index 84%
rename from src/Umbraco.Web/Install/InstallSteps/UpgradeStep.cs
rename to src/Umbraco.Core/Install/InstallSteps/UpgradeStep.cs
index a59d7394f0..0979f31dc5 100644
--- a/src/Umbraco.Web/Install/InstallSteps/UpgradeStep.cs
+++ b/src/Umbraco.Core/Install/InstallSteps/UpgradeStep.cs
@@ -1,6 +1,6 @@
using System;
using System.Threading.Tasks;
-using Umbraco.Web.Composing;
+using Umbraco.Core;
using Umbraco.Core.Configuration;
using Umbraco.Web.Install.Models;
@@ -14,10 +14,12 @@ namespace Umbraco.Web.Install.InstallSteps
{
public override bool RequiresExecution(object model) => true;
private readonly IUmbracoVersion _umbracoVersion;
+ private readonly IRuntimeState _runtimeState;
- public UpgradeStep(IUmbracoVersion umbracoVersion)
+ public UpgradeStep(IUmbracoVersion umbracoVersion, IRuntimeState runtimeState)
{
_umbracoVersion = umbracoVersion;
+ _runtimeState = runtimeState;
}
public override Task ExecuteAsync(object model) => Task.FromResult(null);
@@ -43,9 +45,9 @@ namespace Umbraco.Web.Install.InstallSteps
return value;
}
- var state = Current.RuntimeState; // TODO: inject
- var currentState = FormatGuidState(state.CurrentMigrationState);
- var newState = FormatGuidState(state.FinalMigrationState);
+
+ var currentState = FormatGuidState(_runtimeState.CurrentMigrationState);
+ var newState = FormatGuidState(_runtimeState.FinalMigrationState);
var reportUrl = $"https://our.umbraco.com/contribute/releases/compare?from={currentVersion}&to={newVersion}¬es=1";
diff --git a/src/Umbraco.Web/Install/Models/DatabaseModel.cs b/src/Umbraco.Core/Install/Models/DatabaseModel.cs
similarity index 100%
rename from src/Umbraco.Web/Install/Models/DatabaseModel.cs
rename to src/Umbraco.Core/Install/Models/DatabaseModel.cs
diff --git a/src/Umbraco.Web/Install/Models/DatabaseType.cs b/src/Umbraco.Core/Install/Models/DatabaseType.cs
similarity index 100%
rename from src/Umbraco.Web/Install/Models/DatabaseType.cs
rename to src/Umbraco.Core/Install/Models/DatabaseType.cs
diff --git a/src/Umbraco.Web/Install/Models/InstallInstructions.cs b/src/Umbraco.Core/Install/Models/InstallInstructions.cs
similarity index 80%
rename from src/Umbraco.Web/Install/Models/InstallInstructions.cs
rename to src/Umbraco.Core/Install/Models/InstallInstructions.cs
index da4dfb1671..159edda9e6 100644
--- a/src/Umbraco.Web/Install/Models/InstallInstructions.cs
+++ b/src/Umbraco.Core/Install/Models/InstallInstructions.cs
@@ -1,7 +1,6 @@
using System;
using System.Collections.Generic;
using System.Runtime.Serialization;
-using Newtonsoft.Json.Linq;
namespace Umbraco.Web.Install.Models
{
@@ -9,7 +8,7 @@ namespace Umbraco.Web.Install.Models
public class InstallInstructions
{
[DataMember(Name = "instructions")]
- public IDictionary Instructions { get; set; }
+ public IDictionary Instructions { get; set; }
[DataMember(Name = "installId")]
public Guid InstallId { get; set; }
diff --git a/src/Umbraco.Web/Install/Models/InstallProgressResultModel.cs b/src/Umbraco.Core/Install/Models/InstallProgressResultModel.cs
similarity index 100%
rename from src/Umbraco.Web/Install/Models/InstallProgressResultModel.cs
rename to src/Umbraco.Core/Install/Models/InstallProgressResultModel.cs
diff --git a/src/Umbraco.Web/Install/Models/InstallSetup.cs b/src/Umbraco.Core/Install/Models/InstallSetup.cs
similarity index 100%
rename from src/Umbraco.Web/Install/Models/InstallSetup.cs
rename to src/Umbraco.Core/Install/Models/InstallSetup.cs
diff --git a/src/Umbraco.Web/Install/Models/InstallSetupResult.cs b/src/Umbraco.Core/Install/Models/InstallSetupResult.cs
similarity index 100%
rename from src/Umbraco.Web/Install/Models/InstallSetupResult.cs
rename to src/Umbraco.Core/Install/Models/InstallSetupResult.cs
diff --git a/src/Umbraco.Web/Install/Models/InstallSetupStep.cs b/src/Umbraco.Core/Install/Models/InstallSetupStep.cs
similarity index 100%
rename from src/Umbraco.Web/Install/Models/InstallSetupStep.cs
rename to src/Umbraco.Core/Install/Models/InstallSetupStep.cs
diff --git a/src/Umbraco.Web/Install/Models/InstallSetupStepAttribute.cs b/src/Umbraco.Core/Install/Models/InstallSetupStepAttribute.cs
similarity index 100%
rename from src/Umbraco.Web/Install/Models/InstallSetupStepAttribute.cs
rename to src/Umbraco.Core/Install/Models/InstallSetupStepAttribute.cs
diff --git a/src/Umbraco.Web/Install/Models/InstallTrackingItem.cs b/src/Umbraco.Core/Install/Models/InstallTrackingItem.cs
similarity index 96%
rename from src/Umbraco.Web/Install/Models/InstallTrackingItem.cs
rename to src/Umbraco.Core/Install/Models/InstallTrackingItem.cs
index 1b1985dd1e..9bc8201ba9 100644
--- a/src/Umbraco.Web/Install/Models/InstallTrackingItem.cs
+++ b/src/Umbraco.Core/Install/Models/InstallTrackingItem.cs
@@ -3,7 +3,7 @@ using System.Runtime.Serialization;
namespace Umbraco.Web.Install.Models
{
- internal class InstallTrackingItem
+ public class InstallTrackingItem
{
public InstallTrackingItem(string name, int serverOrder)
{
diff --git a/src/Umbraco.Web/Install/Models/InstallationType.cs b/src/Umbraco.Core/Install/Models/InstallationType.cs
similarity index 100%
rename from src/Umbraco.Web/Install/Models/InstallationType.cs
rename to src/Umbraco.Core/Install/Models/InstallationType.cs
diff --git a/src/Umbraco.Web/Install/Models/Package.cs b/src/Umbraco.Core/Install/Models/Package.cs
similarity index 100%
rename from src/Umbraco.Web/Install/Models/Package.cs
rename to src/Umbraco.Core/Install/Models/Package.cs
diff --git a/src/Umbraco.Web/Install/Models/UserModel.cs b/src/Umbraco.Core/Install/Models/UserModel.cs
similarity index 100%
rename from src/Umbraco.Web/Install/Models/UserModel.cs
rename to src/Umbraco.Core/Install/Models/UserModel.cs
diff --git a/src/Umbraco.Core/InstallLog.cs b/src/Umbraco.Core/InstallLog.cs
new file mode 100644
index 0000000000..cb14ebd650
--- /dev/null
+++ b/src/Umbraco.Core/InstallLog.cs
@@ -0,0 +1,38 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Umbraco.Core.Models
+{
+ public class InstallLog
+ {
+ public Guid InstallId { get; }
+ public bool IsUpgrade { get; set; }
+ public bool InstallCompleted { get; set; }
+ public DateTime Timestamp { get; set; }
+ public int VersionMajor { get; }
+ public int VersionMinor { get; }
+ public int VersionPatch { get; }
+ public string VersionComment { get; }
+ public string Error { get; }
+ public string UserAgent { get; }
+ public string DbProvider { get; set; }
+
+ public InstallLog(Guid installId, bool isUpgrade, bool installCompleted, DateTime timestamp, int versionMajor, int versionMinor, int versionPatch, string versionComment, string error, string userAgent, string dbProvider)
+ {
+ InstallId = installId;
+ IsUpgrade = isUpgrade;
+ InstallCompleted = installCompleted;
+ Timestamp = timestamp;
+ VersionMajor = versionMajor;
+ VersionMinor = versionMinor;
+ VersionPatch = versionPatch;
+ VersionComment = versionComment;
+ Error = error;
+ UserAgent = userAgent;
+ DbProvider = dbProvider;
+ }
+ }
+}
diff --git a/src/Umbraco.Abstractions/IntExtensions.cs b/src/Umbraco.Core/IntExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/IntExtensions.cs
rename to src/Umbraco.Core/IntExtensions.cs
diff --git a/src/Umbraco.Abstractions/KeyValuePairExtensions.cs b/src/Umbraco.Core/KeyValuePairExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/KeyValuePairExtensions.cs
rename to src/Umbraco.Core/KeyValuePairExtensions.cs
diff --git a/src/Umbraco.Abstractions/LambdaExpressionCacheKey.cs b/src/Umbraco.Core/LambdaExpressionCacheKey.cs
similarity index 100%
rename from src/Umbraco.Abstractions/LambdaExpressionCacheKey.cs
rename to src/Umbraco.Core/LambdaExpressionCacheKey.cs
diff --git a/src/Umbraco.Abstractions/Logging/DebugDiagnosticsLogger.cs b/src/Umbraco.Core/Logging/DebugDiagnosticsLogger.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/DebugDiagnosticsLogger.cs
rename to src/Umbraco.Core/Logging/DebugDiagnosticsLogger.cs
diff --git a/src/Umbraco.Abstractions/Logging/DisposableTimer.cs b/src/Umbraco.Core/Logging/DisposableTimer.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/DisposableTimer.cs
rename to src/Umbraco.Core/Logging/DisposableTimer.cs
diff --git a/src/Umbraco.Abstractions/Logging/ILogger.cs b/src/Umbraco.Core/Logging/ILogger.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/ILogger.cs
rename to src/Umbraco.Core/Logging/ILogger.cs
diff --git a/src/Umbraco.Abstractions/Logging/IMessageTemplates.cs b/src/Umbraco.Core/Logging/IMessageTemplates.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/IMessageTemplates.cs
rename to src/Umbraco.Core/Logging/IMessageTemplates.cs
diff --git a/src/Umbraco.Abstractions/Logging/IProfiler.cs b/src/Umbraco.Core/Logging/IProfiler.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/IProfiler.cs
rename to src/Umbraco.Core/Logging/IProfiler.cs
diff --git a/src/Umbraco.Abstractions/Logging/IProfilingLogger.cs b/src/Umbraco.Core/Logging/IProfilingLogger.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/IProfilingLogger.cs
rename to src/Umbraco.Core/Logging/IProfilingLogger.cs
diff --git a/src/Umbraco.Abstractions/Logging/LogLevel.cs b/src/Umbraco.Core/Logging/LogLevel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/LogLevel.cs
rename to src/Umbraco.Core/Logging/LogLevel.cs
diff --git a/src/Umbraco.Abstractions/Logging/LogProfiler.cs b/src/Umbraco.Core/Logging/LogProfiler.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/LogProfiler.cs
rename to src/Umbraco.Core/Logging/LogProfiler.cs
diff --git a/src/Umbraco.Abstractions/Logging/LoggerExtensions.cs b/src/Umbraco.Core/Logging/LoggerExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/LoggerExtensions.cs
rename to src/Umbraco.Core/Logging/LoggerExtensions.cs
diff --git a/src/Umbraco.Abstractions/Logging/LoggingTaskExtension.cs b/src/Umbraco.Core/Logging/LoggingTaskExtension.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/LoggingTaskExtension.cs
rename to src/Umbraco.Core/Logging/LoggingTaskExtension.cs
diff --git a/src/Umbraco.Abstractions/Logging/NullLogger.cs b/src/Umbraco.Core/Logging/NullLogger.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/NullLogger.cs
rename to src/Umbraco.Core/Logging/NullLogger.cs
diff --git a/src/Umbraco.Abstractions/Logging/ProfilerExtensions.cs b/src/Umbraco.Core/Logging/ProfilerExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/ProfilerExtensions.cs
rename to src/Umbraco.Core/Logging/ProfilerExtensions.cs
diff --git a/src/Umbraco.Abstractions/Logging/ProfilingLogger.cs b/src/Umbraco.Core/Logging/ProfilingLogger.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/ProfilingLogger.cs
rename to src/Umbraco.Core/Logging/ProfilingLogger.cs
diff --git a/src/Umbraco.Abstractions/Logging/VoidProfiler.cs b/src/Umbraco.Core/Logging/VoidProfiler.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Logging/VoidProfiler.cs
rename to src/Umbraco.Core/Logging/VoidProfiler.cs
diff --git a/src/Umbraco.Web/Macros/IMacroRenderer.cs b/src/Umbraco.Core/Macros/IMacroRenderer.cs
similarity index 100%
rename from src/Umbraco.Web/Macros/IMacroRenderer.cs
rename to src/Umbraco.Core/Macros/IMacroRenderer.cs
diff --git a/src/Umbraco.Core/Macros/MacroContent.cs b/src/Umbraco.Core/Macros/MacroContent.cs
new file mode 100644
index 0000000000..60dfb9210d
--- /dev/null
+++ b/src/Umbraco.Core/Macros/MacroContent.cs
@@ -0,0 +1,20 @@
+using System;
+
+namespace Umbraco.Web.Macros
+{
+ // represents the content of a macro
+ public class MacroContent
+ {
+ // gets or sets the text content
+ public string Text { get; set; }
+
+ // gets or sets the date the content was generated
+ public DateTime Date { get; set; } = DateTime.Now;
+
+ // a value indicating whether the content is empty
+ public bool IsEmpty => Text is null;
+
+ // gets an empty macro content
+ public static MacroContent Empty { get; } = new MacroContent();
+ }
+}
diff --git a/src/Umbraco.Abstractions/Macros/MacroErrorBehaviour.cs b/src/Umbraco.Core/Macros/MacroErrorBehaviour.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Macros/MacroErrorBehaviour.cs
rename to src/Umbraco.Core/Macros/MacroErrorBehaviour.cs
diff --git a/src/Umbraco.Web/Macros/MacroModel.cs b/src/Umbraco.Core/Macros/MacroModel.cs
similarity index 91%
rename from src/Umbraco.Web/Macros/MacroModel.cs
rename to src/Umbraco.Core/Macros/MacroModel.cs
index dd9a73b147..6b5013115a 100644
--- a/src/Umbraco.Web/Macros/MacroModel.cs
+++ b/src/Umbraco.Core/Macros/MacroModel.cs
@@ -20,8 +20,6 @@ namespace Umbraco.Web.Macros
///
public string Alias { get; set; }
- public MacroTypes MacroType { get; set; }
-
public string MacroSource { get; set; }
public int CacheDuration { get; set; }
@@ -46,7 +44,6 @@ namespace Umbraco.Web.Macros
Id = macro.Id;
Name = macro.Name;
Alias = macro.Alias;
- MacroType = macro.MacroType;
MacroSource = macro.MacroSource;
CacheDuration = macro.CacheDuration;
CacheByPage = macro.CacheByPage;
@@ -55,8 +52,6 @@ namespace Umbraco.Web.Macros
foreach (var prop in macro.Properties)
Properties.Add(new MacroPropertyModel(prop.Alias, string.Empty, prop.EditorAlias));
-
- MacroType = macro.MacroType;
}
}
}
diff --git a/src/Umbraco.Web/Macros/MacroPropertyModel.cs b/src/Umbraco.Core/Macros/MacroPropertyModel.cs
similarity index 100%
rename from src/Umbraco.Web/Macros/MacroPropertyModel.cs
rename to src/Umbraco.Core/Macros/MacroPropertyModel.cs
diff --git a/src/Umbraco.Abstractions/Manifest/IManifestFilter.cs b/src/Umbraco.Core/Manifest/IManifestFilter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Manifest/IManifestFilter.cs
rename to src/Umbraco.Core/Manifest/IManifestFilter.cs
diff --git a/src/Umbraco.Abstractions/Manifest/IManifestParser.cs b/src/Umbraco.Core/Manifest/IManifestParser.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Manifest/IManifestParser.cs
rename to src/Umbraco.Core/Manifest/IManifestParser.cs
diff --git a/src/Umbraco.Abstractions/Manifest/IPackageManifest.cs b/src/Umbraco.Core/Manifest/IPackageManifest.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Manifest/IPackageManifest.cs
rename to src/Umbraco.Core/Manifest/IPackageManifest.cs
diff --git a/src/Umbraco.Abstractions/Manifest/ManifestContentAppDefinition.cs b/src/Umbraco.Core/Manifest/ManifestContentAppDefinition.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Manifest/ManifestContentAppDefinition.cs
rename to src/Umbraco.Core/Manifest/ManifestContentAppDefinition.cs
diff --git a/src/Umbraco.Abstractions/Manifest/ManifestContentAppFactory.cs b/src/Umbraco.Core/Manifest/ManifestContentAppFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Manifest/ManifestContentAppFactory.cs
rename to src/Umbraco.Core/Manifest/ManifestContentAppFactory.cs
diff --git a/src/Umbraco.Abstractions/Manifest/ManifestDashboard.cs b/src/Umbraco.Core/Manifest/ManifestDashboard.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Manifest/ManifestDashboard.cs
rename to src/Umbraco.Core/Manifest/ManifestDashboard.cs
diff --git a/src/Umbraco.Abstractions/Manifest/ManifestFilterCollection.cs b/src/Umbraco.Core/Manifest/ManifestFilterCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Manifest/ManifestFilterCollection.cs
rename to src/Umbraco.Core/Manifest/ManifestFilterCollection.cs
diff --git a/src/Umbraco.Abstractions/Manifest/ManifestFilterCollectionBuilder.cs b/src/Umbraco.Core/Manifest/ManifestFilterCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Manifest/ManifestFilterCollectionBuilder.cs
rename to src/Umbraco.Core/Manifest/ManifestFilterCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/Manifest/ManifestSection.cs b/src/Umbraco.Core/Manifest/ManifestSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Manifest/ManifestSection.cs
rename to src/Umbraco.Core/Manifest/ManifestSection.cs
diff --git a/src/Umbraco.Abstractions/Manifest/ManifestWatcher.cs b/src/Umbraco.Core/Manifest/ManifestWatcher.cs
similarity index 86%
rename from src/Umbraco.Abstractions/Manifest/ManifestWatcher.cs
rename to src/Umbraco.Core/Manifest/ManifestWatcher.cs
index 8d81ac3de5..23caac3a1b 100644
--- a/src/Umbraco.Abstractions/Manifest/ManifestWatcher.cs
+++ b/src/Umbraco.Core/Manifest/ManifestWatcher.cs
@@ -4,6 +4,7 @@ using System.IO;
using System.Linq;
using Umbraco.Core.Hosting;
using Umbraco.Core.Logging;
+using Umbraco.Net;
namespace Umbraco.Core.Manifest
{
@@ -13,13 +14,13 @@ namespace Umbraco.Core.Manifest
private static volatile bool _isRestarting;
private readonly ILogger _logger;
- private readonly IHostingEnvironment _hostingEnvironment;
+ private readonly IUmbracoApplicationLifetime _umbracoApplicationLifetime;
private readonly List _fws = new List();
- public ManifestWatcher(ILogger logger, IHostingEnvironment hostingEnvironment)
+ public ManifestWatcher(ILogger logger, IUmbracoApplicationLifetime umbracoApplicationLifetime)
{
_logger = logger ?? throw new ArgumentNullException(nameof(logger));
- _hostingEnvironment = hostingEnvironment;
+ _umbracoApplicationLifetime = umbracoApplicationLifetime;
}
public void Start(params string[] packageFolders)
@@ -57,7 +58,7 @@ namespace Umbraco.Core.Manifest
_isRestarting = true;
_logger.Info("Manifest has changed, app pool is restarting ({Path})", e.FullPath);
- _hostingEnvironment.LazyRestartApplication();
+ _umbracoApplicationLifetime.Restart();
Dispose(); // uh? if the app restarts then this should be disposed anyways?
}
}
diff --git a/src/Umbraco.Abstractions/Manifest/PackageManifest.cs b/src/Umbraco.Core/Manifest/PackageManifest.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Manifest/PackageManifest.cs
rename to src/Umbraco.Core/Manifest/PackageManifest.cs
diff --git a/src/Umbraco.Abstractions/Mapping/IMapDefinition.cs b/src/Umbraco.Core/Mapping/IMapDefinition.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Mapping/IMapDefinition.cs
rename to src/Umbraco.Core/Mapping/IMapDefinition.cs
diff --git a/src/Umbraco.Abstractions/Mapping/MapDefinitionCollection.cs b/src/Umbraco.Core/Mapping/MapDefinitionCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Mapping/MapDefinitionCollection.cs
rename to src/Umbraco.Core/Mapping/MapDefinitionCollection.cs
diff --git a/src/Umbraco.Abstractions/Mapping/MapDefinitionCollectionBuilder.cs b/src/Umbraco.Core/Mapping/MapDefinitionCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Mapping/MapDefinitionCollectionBuilder.cs
rename to src/Umbraco.Core/Mapping/MapDefinitionCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/Mapping/MapperContext.cs b/src/Umbraco.Core/Mapping/MapperContext.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Mapping/MapperContext.cs
rename to src/Umbraco.Core/Mapping/MapperContext.cs
diff --git a/src/Umbraco.Abstractions/Mapping/UmbracoMapper.cs b/src/Umbraco.Core/Mapping/UmbracoMapper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Mapping/UmbracoMapper.cs
rename to src/Umbraco.Core/Mapping/UmbracoMapper.cs
diff --git a/src/Umbraco.Abstractions/Media/IEmbedProvider.cs b/src/Umbraco.Core/Media/IEmbedProvider.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Media/IEmbedProvider.cs
rename to src/Umbraco.Core/Media/IEmbedProvider.cs
diff --git a/src/Umbraco.Abstractions/Media/OEmbedResult.cs b/src/Umbraco.Core/Media/OEmbedResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Media/OEmbedResult.cs
rename to src/Umbraco.Core/Media/OEmbedResult.cs
diff --git a/src/Umbraco.Abstractions/Media/OEmbedStatus.cs b/src/Umbraco.Core/Media/OEmbedStatus.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Media/OEmbedStatus.cs
rename to src/Umbraco.Core/Media/OEmbedStatus.cs
diff --git a/src/Umbraco.Abstractions/MediaTypeExtensions.cs b/src/Umbraco.Core/MediaTypeExtensions.cs
similarity index 68%
rename from src/Umbraco.Abstractions/MediaTypeExtensions.cs
rename to src/Umbraco.Core/MediaTypeExtensions.cs
index 4e2ae5822a..3a2a3ba6e2 100644
--- a/src/Umbraco.Abstractions/MediaTypeExtensions.cs
+++ b/src/Umbraco.Core/MediaTypeExtensions.cs
@@ -1,8 +1,8 @@
namespace Umbraco.Core.Models
{
- internal static class MediaTypeExtensions
+ public static class MediaTypeExtensions
{
- internal static bool IsSystemMediaType(this IMediaType mediaType) =>
+ public static bool IsSystemMediaType(this IMediaType mediaType) =>
mediaType.Alias == Constants.Conventions.MediaTypes.File
|| mediaType.Alias == Constants.Conventions.MediaTypes.Folder
|| mediaType.Alias == Constants.Conventions.MediaTypes.Image;
diff --git a/src/Umbraco.Abstractions/Migrations/IMigration.cs b/src/Umbraco.Core/Migrations/IMigration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Migrations/IMigration.cs
rename to src/Umbraco.Core/Migrations/IMigration.cs
diff --git a/src/Umbraco.Abstractions/Migrations/IncompleteMigrationExpressionException.cs b/src/Umbraco.Core/Migrations/IncompleteMigrationExpressionException.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Migrations/IncompleteMigrationExpressionException.cs
rename to src/Umbraco.Core/Migrations/IncompleteMigrationExpressionException.cs
diff --git a/src/Umbraco.Abstractions/Migrations/NoopMigration.cs b/src/Umbraco.Core/Migrations/NoopMigration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Migrations/NoopMigration.cs
rename to src/Umbraco.Core/Migrations/NoopMigration.cs
diff --git a/src/Umbraco.Abstractions/Models/AnchorsModel.cs b/src/Umbraco.Core/Models/AnchorsModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/AnchorsModel.cs
rename to src/Umbraco.Core/Models/AnchorsModel.cs
diff --git a/src/Umbraco.Abstractions/Models/AuditEntry.cs b/src/Umbraco.Core/Models/AuditEntry.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/AuditEntry.cs
rename to src/Umbraco.Core/Models/AuditEntry.cs
diff --git a/src/Umbraco.Abstractions/Models/AuditItem.cs b/src/Umbraco.Core/Models/AuditItem.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/AuditItem.cs
rename to src/Umbraco.Core/Models/AuditItem.cs
diff --git a/src/Umbraco.Abstractions/Models/AuditType.cs b/src/Umbraco.Core/Models/AuditType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/AuditType.cs
rename to src/Umbraco.Core/Models/AuditType.cs
diff --git a/src/Umbraco.Abstractions/Models/ChangingPasswordModel.cs b/src/Umbraco.Core/Models/ChangingPasswordModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ChangingPasswordModel.cs
rename to src/Umbraco.Core/Models/ChangingPasswordModel.cs
diff --git a/src/Umbraco.Abstractions/Models/Consent.cs b/src/Umbraco.Core/Models/Consent.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Consent.cs
rename to src/Umbraco.Core/Models/Consent.cs
diff --git a/src/Umbraco.Abstractions/Models/ConsentExtensions.cs b/src/Umbraco.Core/Models/ConsentExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ConsentExtensions.cs
rename to src/Umbraco.Core/Models/ConsentExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/ConsentState.cs b/src/Umbraco.Core/Models/ConsentState.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ConsentState.cs
rename to src/Umbraco.Core/Models/ConsentState.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentBase.cs b/src/Umbraco.Core/Models/ContentBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentBase.cs
rename to src/Umbraco.Core/Models/ContentBase.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentCultureInfos.cs b/src/Umbraco.Core/Models/ContentCultureInfos.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentCultureInfos.cs
rename to src/Umbraco.Core/Models/ContentCultureInfos.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentCultureInfosCollection.cs b/src/Umbraco.Core/Models/ContentCultureInfosCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentCultureInfosCollection.cs
rename to src/Umbraco.Core/Models/ContentCultureInfosCollection.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/AuditLog.cs b/src/Umbraco.Core/Models/ContentEditing/AuditLog.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/AuditLog.cs
rename to src/Umbraco.Core/Models/ContentEditing/AuditLog.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentApp.cs b/src/Umbraco.Core/Models/ContentEditing/ContentApp.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentApp.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentApp.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentAppBadge.cs b/src/Umbraco.Core/Models/ContentEditing/ContentAppBadge.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentAppBadge.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentAppBadge.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentAppBadgeType.cs b/src/Umbraco.Core/Models/ContentEditing/ContentAppBadgeType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentAppBadgeType.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentAppBadgeType.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentDomainsAndCulture.cs b/src/Umbraco.Core/Models/ContentEditing/ContentDomainsAndCulture.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentDomainsAndCulture.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentDomainsAndCulture.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentItemSave.cs b/src/Umbraco.Core/Models/ContentEditing/ContentItemSave.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentItemSave.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentItemSave.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentPropertyBasic.cs b/src/Umbraco.Core/Models/ContentEditing/ContentPropertyBasic.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentPropertyBasic.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentPropertyBasic.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentPropertyCollectionDto.cs b/src/Umbraco.Core/Models/ContentEditing/ContentPropertyCollectionDto.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentPropertyCollectionDto.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentPropertyCollectionDto.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentPropertyDisplay.cs b/src/Umbraco.Core/Models/ContentEditing/ContentPropertyDisplay.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentPropertyDisplay.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentPropertyDisplay.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentPropertyDto.cs b/src/Umbraco.Core/Models/ContentEditing/ContentPropertyDto.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentPropertyDto.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentPropertyDto.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentRedirectUrl.cs b/src/Umbraco.Core/Models/ContentEditing/ContentRedirectUrl.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentRedirectUrl.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentRedirectUrl.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentSaveAction.cs b/src/Umbraco.Core/Models/ContentEditing/ContentSaveAction.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentSaveAction.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentSaveAction.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentSavedState.cs b/src/Umbraco.Core/Models/ContentEditing/ContentSavedState.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentSavedState.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentSavedState.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentSortOrder.cs b/src/Umbraco.Core/Models/ContentEditing/ContentSortOrder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentSortOrder.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentSortOrder.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentVariantSave.cs b/src/Umbraco.Core/Models/ContentEditing/ContentVariantSave.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ContentVariantSave.cs
rename to src/Umbraco.Core/Models/ContentEditing/ContentVariantSave.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/CreatedDocumentTypeCollectionResult.cs b/src/Umbraco.Core/Models/ContentEditing/CreatedDocumentTypeCollectionResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/CreatedDocumentTypeCollectionResult.cs
rename to src/Umbraco.Core/Models/ContentEditing/CreatedDocumentTypeCollectionResult.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/DictionaryOverviewDisplay.cs b/src/Umbraco.Core/Models/ContentEditing/DictionaryOverviewDisplay.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/DictionaryOverviewDisplay.cs
rename to src/Umbraco.Core/Models/ContentEditing/DictionaryOverviewDisplay.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/DictionaryOverviewTranslationDisplay.cs b/src/Umbraco.Core/Models/ContentEditing/DictionaryOverviewTranslationDisplay.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/DictionaryOverviewTranslationDisplay.cs
rename to src/Umbraco.Core/Models/ContentEditing/DictionaryOverviewTranslationDisplay.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/DictionaryTranslationDisplay.cs b/src/Umbraco.Core/Models/ContentEditing/DictionaryTranslationDisplay.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/DictionaryTranslationDisplay.cs
rename to src/Umbraco.Core/Models/ContentEditing/DictionaryTranslationDisplay.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/DictionaryTranslationSave.cs b/src/Umbraco.Core/Models/ContentEditing/DictionaryTranslationSave.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/DictionaryTranslationSave.cs
rename to src/Umbraco.Core/Models/ContentEditing/DictionaryTranslationSave.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/DomainDisplay.cs b/src/Umbraco.Core/Models/ContentEditing/DomainDisplay.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/DomainDisplay.cs
rename to src/Umbraco.Core/Models/ContentEditing/DomainDisplay.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/IContentAppFactory.cs b/src/Umbraco.Core/Models/ContentEditing/IContentAppFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/IContentAppFactory.cs
rename to src/Umbraco.Core/Models/ContentEditing/IContentAppFactory.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/IContentProperties.cs b/src/Umbraco.Core/Models/ContentEditing/IContentProperties.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/IContentProperties.cs
rename to src/Umbraco.Core/Models/ContentEditing/IContentProperties.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/IContentSave.cs b/src/Umbraco.Core/Models/ContentEditing/IContentSave.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/IContentSave.cs
rename to src/Umbraco.Core/Models/ContentEditing/IContentSave.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/IHaveUploadedFiles.cs b/src/Umbraco.Core/Models/ContentEditing/IHaveUploadedFiles.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/IHaveUploadedFiles.cs
rename to src/Umbraco.Core/Models/ContentEditing/IHaveUploadedFiles.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ITabbedContent.cs b/src/Umbraco.Core/Models/ContentEditing/ITabbedContent.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ITabbedContent.cs
rename to src/Umbraco.Core/Models/ContentEditing/ITabbedContent.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/Language.cs b/src/Umbraco.Core/Models/ContentEditing/Language.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/Language.cs
rename to src/Umbraco.Core/Models/ContentEditing/Language.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/LinkDisplay.cs b/src/Umbraco.Core/Models/ContentEditing/LinkDisplay.cs
similarity index 96%
rename from src/Umbraco.Abstractions/Models/ContentEditing/LinkDisplay.cs
rename to src/Umbraco.Core/Models/ContentEditing/LinkDisplay.cs
index 650b7b8db5..5b6379288f 100644
--- a/src/Umbraco.Abstractions/Models/ContentEditing/LinkDisplay.cs
+++ b/src/Umbraco.Core/Models/ContentEditing/LinkDisplay.cs
@@ -4,7 +4,7 @@ using Umbraco.Core;
namespace Umbraco.Web.Models.ContentEditing
{
[DataContract(Name = "link", Namespace = "")]
- internal class LinkDisplay
+ public class LinkDisplay
{
[DataMember(Name = "icon")]
public string Icon { get; set; }
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/MemberPropertyTypeBasic.cs b/src/Umbraco.Core/Models/ContentEditing/MemberPropertyTypeBasic.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/MemberPropertyTypeBasic.cs
rename to src/Umbraco.Core/Models/ContentEditing/MemberPropertyTypeBasic.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/MemberPropertyTypeDisplay.cs b/src/Umbraco.Core/Models/ContentEditing/MemberPropertyTypeDisplay.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/MemberPropertyTypeDisplay.cs
rename to src/Umbraco.Core/Models/ContentEditing/MemberPropertyTypeDisplay.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/MoveOrCopy.cs b/src/Umbraco.Core/Models/ContentEditing/MoveOrCopy.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/MoveOrCopy.cs
rename to src/Umbraco.Core/Models/ContentEditing/MoveOrCopy.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/NotificationStyle.cs b/src/Umbraco.Core/Models/ContentEditing/NotificationStyle.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/NotificationStyle.cs
rename to src/Umbraco.Core/Models/ContentEditing/NotificationStyle.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/NotifySetting.cs b/src/Umbraco.Core/Models/ContentEditing/NotifySetting.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/NotifySetting.cs
rename to src/Umbraco.Core/Models/ContentEditing/NotifySetting.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ObjectType.cs b/src/Umbraco.Core/Models/ContentEditing/ObjectType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/ObjectType.cs
rename to src/Umbraco.Core/Models/ContentEditing/ObjectType.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/Permission.cs b/src/Umbraco.Core/Models/ContentEditing/Permission.cs
similarity index 95%
rename from src/Umbraco.Abstractions/Models/ContentEditing/Permission.cs
rename to src/Umbraco.Core/Models/ContentEditing/Permission.cs
index 7b444e5959..2bb905200a 100644
--- a/src/Umbraco.Abstractions/Models/ContentEditing/Permission.cs
+++ b/src/Umbraco.Core/Models/ContentEditing/Permission.cs
@@ -22,7 +22,7 @@ namespace Umbraco.Web.Models.ContentEditing
/// We'll use this to map the categories but it wont' be returned in the json
///
[IgnoreDataMember]
- internal string Category { get; set; }
+ public string Category { get; set; }
///
/// The letter from the IAction
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/PostedFolder.cs b/src/Umbraco.Core/Models/ContentEditing/PostedFolder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/PostedFolder.cs
rename to src/Umbraco.Core/Models/ContentEditing/PostedFolder.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/PropertyEditorBasic.cs b/src/Umbraco.Core/Models/ContentEditing/PropertyEditorBasic.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/PropertyEditorBasic.cs
rename to src/Umbraco.Core/Models/ContentEditing/PropertyEditorBasic.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/PropertyGroupBasic.cs b/src/Umbraco.Core/Models/ContentEditing/PropertyGroupBasic.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/PropertyGroupBasic.cs
rename to src/Umbraco.Core/Models/ContentEditing/PropertyGroupBasic.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/PropertyTypeBasic.cs b/src/Umbraco.Core/Models/ContentEditing/PropertyTypeBasic.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/PropertyTypeBasic.cs
rename to src/Umbraco.Core/Models/ContentEditing/PropertyTypeBasic.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/PropertyTypeDisplay.cs b/src/Umbraco.Core/Models/ContentEditing/PropertyTypeDisplay.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/PropertyTypeDisplay.cs
rename to src/Umbraco.Core/Models/ContentEditing/PropertyTypeDisplay.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/PropertyTypeValidation.cs b/src/Umbraco.Core/Models/ContentEditing/PropertyTypeValidation.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/PropertyTypeValidation.cs
rename to src/Umbraco.Core/Models/ContentEditing/PropertyTypeValidation.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/RedirectUrlSearchResults.cs b/src/Umbraco.Core/Models/ContentEditing/RedirectUrlSearchResults.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/RedirectUrlSearchResults.cs
rename to src/Umbraco.Core/Models/ContentEditing/RedirectUrlSearchResults.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/RelationDisplay.cs b/src/Umbraco.Core/Models/ContentEditing/RelationDisplay.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/RelationDisplay.cs
rename to src/Umbraco.Core/Models/ContentEditing/RelationDisplay.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/RichTextEditorPlugin.cs b/src/Umbraco.Core/Models/ContentEditing/RichTextEditorPlugin.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/RichTextEditorPlugin.cs
rename to src/Umbraco.Core/Models/ContentEditing/RichTextEditorPlugin.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/RollbackVersion.cs b/src/Umbraco.Core/Models/ContentEditing/RollbackVersion.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/RollbackVersion.cs
rename to src/Umbraco.Core/Models/ContentEditing/RollbackVersion.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/SearchResult.cs b/src/Umbraco.Core/Models/ContentEditing/SearchResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/SearchResult.cs
rename to src/Umbraco.Core/Models/ContentEditing/SearchResult.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/Section.cs b/src/Umbraco.Core/Models/ContentEditing/Section.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/Section.cs
rename to src/Umbraco.Core/Models/ContentEditing/Section.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/SnippetDisplay.cs b/src/Umbraco.Core/Models/ContentEditing/SnippetDisplay.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/SnippetDisplay.cs
rename to src/Umbraco.Core/Models/ContentEditing/SnippetDisplay.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/StyleSheet.cs b/src/Umbraco.Core/Models/ContentEditing/StyleSheet.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/StyleSheet.cs
rename to src/Umbraco.Core/Models/ContentEditing/StyleSheet.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/StylesheetRule.cs b/src/Umbraco.Core/Models/ContentEditing/StylesheetRule.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/StylesheetRule.cs
rename to src/Umbraco.Core/Models/ContentEditing/StylesheetRule.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/Tab.cs b/src/Umbraco.Core/Models/ContentEditing/Tab.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/Tab.cs
rename to src/Umbraco.Core/Models/ContentEditing/Tab.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/UmbracoEntityTypes.cs b/src/Umbraco.Core/Models/ContentEditing/UmbracoEntityTypes.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/UmbracoEntityTypes.cs
rename to src/Umbraco.Core/Models/ContentEditing/UmbracoEntityTypes.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/UnpublishContent.cs b/src/Umbraco.Core/Models/ContentEditing/UnpublishContent.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/UnpublishContent.cs
rename to src/Umbraco.Core/Models/ContentEditing/UnpublishContent.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/UrlAndAnchors.cs b/src/Umbraco.Core/Models/ContentEditing/UrlAndAnchors.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentEditing/UrlAndAnchors.cs
rename to src/Umbraco.Core/Models/ContentEditing/UrlAndAnchors.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentExtensions.cs b/src/Umbraco.Core/Models/ContentExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentExtensions.cs
rename to src/Umbraco.Core/Models/ContentExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentModel.cs b/src/Umbraco.Core/Models/ContentModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentModel.cs
rename to src/Umbraco.Core/Models/ContentModel.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentModelOfTContent.cs b/src/Umbraco.Core/Models/ContentModelOfTContent.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentModelOfTContent.cs
rename to src/Umbraco.Core/Models/ContentModelOfTContent.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentRepositoryExtensions.cs b/src/Umbraco.Core/Models/ContentRepositoryExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentRepositoryExtensions.cs
rename to src/Umbraco.Core/Models/ContentRepositoryExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentSchedule.cs b/src/Umbraco.Core/Models/ContentSchedule.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentSchedule.cs
rename to src/Umbraco.Core/Models/ContentSchedule.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentScheduleAction.cs b/src/Umbraco.Core/Models/ContentScheduleAction.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentScheduleAction.cs
rename to src/Umbraco.Core/Models/ContentScheduleAction.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentScheduleCollection.cs b/src/Umbraco.Core/Models/ContentScheduleCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentScheduleCollection.cs
rename to src/Umbraco.Core/Models/ContentScheduleCollection.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentStatus.cs b/src/Umbraco.Core/Models/ContentStatus.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentStatus.cs
rename to src/Umbraco.Core/Models/ContentStatus.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentTypeAvailableCompositionsResult.cs b/src/Umbraco.Core/Models/ContentTypeAvailableCompositionsResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentTypeAvailableCompositionsResult.cs
rename to src/Umbraco.Core/Models/ContentTypeAvailableCompositionsResult.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentTypeAvailableCompositionsResults.cs b/src/Umbraco.Core/Models/ContentTypeAvailableCompositionsResults.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentTypeAvailableCompositionsResults.cs
rename to src/Umbraco.Core/Models/ContentTypeAvailableCompositionsResults.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentTypeBaseExtensions.cs b/src/Umbraco.Core/Models/ContentTypeBaseExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentTypeBaseExtensions.cs
rename to src/Umbraco.Core/Models/ContentTypeBaseExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentTypeSort.cs b/src/Umbraco.Core/Models/ContentTypeSort.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentTypeSort.cs
rename to src/Umbraco.Core/Models/ContentTypeSort.cs
diff --git a/src/Umbraco.Abstractions/Models/ContentVariation.cs b/src/Umbraco.Core/Models/ContentVariation.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ContentVariation.cs
rename to src/Umbraco.Core/Models/ContentVariation.cs
diff --git a/src/Umbraco.Abstractions/Models/CultureImpact.cs b/src/Umbraco.Core/Models/CultureImpact.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/CultureImpact.cs
rename to src/Umbraco.Core/Models/CultureImpact.cs
diff --git a/src/Umbraco.Abstractions/Models/DataTypeExtensions.cs b/src/Umbraco.Core/Models/DataTypeExtensions.cs
similarity index 96%
rename from src/Umbraco.Abstractions/Models/DataTypeExtensions.cs
rename to src/Umbraco.Core/Models/DataTypeExtensions.cs
index c2116c6c45..4f4bd4d6c3 100644
--- a/src/Umbraco.Abstractions/Models/DataTypeExtensions.cs
+++ b/src/Umbraco.Core/Models/DataTypeExtensions.cs
@@ -75,7 +75,7 @@ namespace Umbraco.Core.Models
///
/// The data type definition.
///
- internal static bool IsBuildInDataType(this IDataType dataType)
+ public static bool IsBuildInDataType(this IDataType dataType)
{
return IsBuildInDataType(dataType.Key);
}
@@ -83,7 +83,7 @@ namespace Umbraco.Core.Models
///
/// Returns true if this date type is build-in/default.
///
- internal static bool IsBuildInDataType(Guid key)
+ public static bool IsBuildInDataType(Guid key)
{
return IdsOfBuildInDataTypes.Contains(key);
}
diff --git a/src/Umbraco.Abstractions/Models/DeepCloneHelper.cs b/src/Umbraco.Core/Models/DeepCloneHelper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/DeepCloneHelper.cs
rename to src/Umbraco.Core/Models/DeepCloneHelper.cs
diff --git a/src/Umbraco.Abstractions/Models/DictionaryItem.cs b/src/Umbraco.Core/Models/DictionaryItem.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/DictionaryItem.cs
rename to src/Umbraco.Core/Models/DictionaryItem.cs
diff --git a/src/Umbraco.Abstractions/Models/DictionaryItemExtensions.cs b/src/Umbraco.Core/Models/DictionaryItemExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/DictionaryItemExtensions.cs
rename to src/Umbraco.Core/Models/DictionaryItemExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/DictionaryTranslation.cs b/src/Umbraco.Core/Models/DictionaryTranslation.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/DictionaryTranslation.cs
rename to src/Umbraco.Core/Models/DictionaryTranslation.cs
diff --git a/src/Umbraco.Abstractions/Models/DoNotCloneAttribute.cs b/src/Umbraco.Core/Models/DoNotCloneAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/DoNotCloneAttribute.cs
rename to src/Umbraco.Core/Models/DoNotCloneAttribute.cs
diff --git a/src/Umbraco.Abstractions/Models/Editors/ContentPropertyData.cs b/src/Umbraco.Core/Models/Editors/ContentPropertyData.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Editors/ContentPropertyData.cs
rename to src/Umbraco.Core/Models/Editors/ContentPropertyData.cs
diff --git a/src/Umbraco.Abstractions/Models/Editors/ContentPropertyFile.cs b/src/Umbraco.Core/Models/Editors/ContentPropertyFile.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Editors/ContentPropertyFile.cs
rename to src/Umbraco.Core/Models/Editors/ContentPropertyFile.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/BeingDirty.cs b/src/Umbraco.Core/Models/Entities/BeingDirty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/BeingDirty.cs
rename to src/Umbraco.Core/Models/Entities/BeingDirty.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/BeingDirtyBase.cs b/src/Umbraco.Core/Models/Entities/BeingDirtyBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/BeingDirtyBase.cs
rename to src/Umbraco.Core/Models/Entities/BeingDirtyBase.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/ContentEntitySlim.cs b/src/Umbraco.Core/Models/Entities/ContentEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/ContentEntitySlim.cs
rename to src/Umbraco.Core/Models/Entities/ContentEntitySlim.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/DocumentEntitySlim.cs b/src/Umbraco.Core/Models/Entities/DocumentEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/DocumentEntitySlim.cs
rename to src/Umbraco.Core/Models/Entities/DocumentEntitySlim.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/EntityBase.cs b/src/Umbraco.Core/Models/Entities/EntityBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/EntityBase.cs
rename to src/Umbraco.Core/Models/Entities/EntityBase.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/EntityExtensions.cs b/src/Umbraco.Core/Models/Entities/EntityExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/EntityExtensions.cs
rename to src/Umbraco.Core/Models/Entities/EntityExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/EntitySlim.cs b/src/Umbraco.Core/Models/Entities/EntitySlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/EntitySlim.cs
rename to src/Umbraco.Core/Models/Entities/EntitySlim.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/ICanBeDirty.cs b/src/Umbraco.Core/Models/Entities/ICanBeDirty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/ICanBeDirty.cs
rename to src/Umbraco.Core/Models/Entities/ICanBeDirty.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/IContentEntitySlim.cs b/src/Umbraco.Core/Models/Entities/IContentEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/IContentEntitySlim.cs
rename to src/Umbraco.Core/Models/Entities/IContentEntitySlim.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/IDocumentEntitySlim.cs b/src/Umbraco.Core/Models/Entities/IDocumentEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/IDocumentEntitySlim.cs
rename to src/Umbraco.Core/Models/Entities/IDocumentEntitySlim.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/IEntity.cs b/src/Umbraco.Core/Models/Entities/IEntity.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/IEntity.cs
rename to src/Umbraco.Core/Models/Entities/IEntity.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/IEntitySlim.cs b/src/Umbraco.Core/Models/Entities/IEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/IEntitySlim.cs
rename to src/Umbraco.Core/Models/Entities/IEntitySlim.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/IHaveAdditionalData.cs b/src/Umbraco.Core/Models/Entities/IHaveAdditionalData.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/IHaveAdditionalData.cs
rename to src/Umbraco.Core/Models/Entities/IHaveAdditionalData.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/IMediaEntitySlim.cs b/src/Umbraco.Core/Models/Entities/IMediaEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/IMediaEntitySlim.cs
rename to src/Umbraco.Core/Models/Entities/IMediaEntitySlim.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/IMemberEntitySlim.cs b/src/Umbraco.Core/Models/Entities/IMemberEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/IMemberEntitySlim.cs
rename to src/Umbraco.Core/Models/Entities/IMemberEntitySlim.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/IRememberBeingDirty.cs b/src/Umbraco.Core/Models/Entities/IRememberBeingDirty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/IRememberBeingDirty.cs
rename to src/Umbraco.Core/Models/Entities/IRememberBeingDirty.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/ITreeEntity.cs b/src/Umbraco.Core/Models/Entities/ITreeEntity.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/ITreeEntity.cs
rename to src/Umbraco.Core/Models/Entities/ITreeEntity.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/IUmbracoEntity.cs b/src/Umbraco.Core/Models/Entities/IUmbracoEntity.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/IUmbracoEntity.cs
rename to src/Umbraco.Core/Models/Entities/IUmbracoEntity.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/IValueObject.cs b/src/Umbraco.Core/Models/Entities/IValueObject.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/IValueObject.cs
rename to src/Umbraco.Core/Models/Entities/IValueObject.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/MediaEntitySlim.cs b/src/Umbraco.Core/Models/Entities/MediaEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/MediaEntitySlim.cs
rename to src/Umbraco.Core/Models/Entities/MediaEntitySlim.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/MemberEntitySlim.cs b/src/Umbraco.Core/Models/Entities/MemberEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/MemberEntitySlim.cs
rename to src/Umbraco.Core/Models/Entities/MemberEntitySlim.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/TreeEntityBase.cs b/src/Umbraco.Core/Models/Entities/TreeEntityBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/TreeEntityBase.cs
rename to src/Umbraco.Core/Models/Entities/TreeEntityBase.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/TreeEntityPath.cs b/src/Umbraco.Core/Models/Entities/TreeEntityPath.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Entities/TreeEntityPath.cs
rename to src/Umbraco.Core/Models/Entities/TreeEntityPath.cs
diff --git a/src/Umbraco.Abstractions/Models/EntityContainer.cs b/src/Umbraco.Core/Models/EntityContainer.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/EntityContainer.cs
rename to src/Umbraco.Core/Models/EntityContainer.cs
diff --git a/src/Umbraco.Abstractions/Models/EntityExtensions.cs b/src/Umbraco.Core/Models/EntityExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/EntityExtensions.cs
rename to src/Umbraco.Core/Models/EntityExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/File.cs b/src/Umbraco.Core/Models/File.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/File.cs
rename to src/Umbraco.Core/Models/File.cs
diff --git a/src/Umbraco.Abstractions/Models/Folder.cs b/src/Umbraco.Core/Models/Folder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Folder.cs
rename to src/Umbraco.Core/Models/Folder.cs
diff --git a/src/Umbraco.Abstractions/Models/IAuditEntry.cs b/src/Umbraco.Core/Models/IAuditEntry.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IAuditEntry.cs
rename to src/Umbraco.Core/Models/IAuditEntry.cs
diff --git a/src/Umbraco.Abstractions/Models/IAuditItem.cs b/src/Umbraco.Core/Models/IAuditItem.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IAuditItem.cs
rename to src/Umbraco.Core/Models/IAuditItem.cs
diff --git a/src/Umbraco.Abstractions/Models/IConsent.cs b/src/Umbraco.Core/Models/IConsent.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IConsent.cs
rename to src/Umbraco.Core/Models/IConsent.cs
diff --git a/src/Umbraco.Abstractions/Models/IContent.cs b/src/Umbraco.Core/Models/IContent.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IContent.cs
rename to src/Umbraco.Core/Models/IContent.cs
diff --git a/src/Umbraco.Abstractions/Models/IContentBase.cs b/src/Umbraco.Core/Models/IContentBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IContentBase.cs
rename to src/Umbraco.Core/Models/IContentBase.cs
diff --git a/src/Umbraco.Abstractions/Models/IContentModel.cs b/src/Umbraco.Core/Models/IContentModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IContentModel.cs
rename to src/Umbraco.Core/Models/IContentModel.cs
diff --git a/src/Umbraco.Abstractions/Models/IContentType.cs b/src/Umbraco.Core/Models/IContentType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IContentType.cs
rename to src/Umbraco.Core/Models/IContentType.cs
diff --git a/src/Umbraco.Abstractions/Models/IContentTypeBase.cs b/src/Umbraco.Core/Models/IContentTypeBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IContentTypeBase.cs
rename to src/Umbraco.Core/Models/IContentTypeBase.cs
diff --git a/src/Umbraco.Abstractions/Models/IContentTypeComposition.cs b/src/Umbraco.Core/Models/IContentTypeComposition.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IContentTypeComposition.cs
rename to src/Umbraco.Core/Models/IContentTypeComposition.cs
diff --git a/src/Umbraco.Abstractions/Models/IDataType.cs b/src/Umbraco.Core/Models/IDataType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IDataType.cs
rename to src/Umbraco.Core/Models/IDataType.cs
diff --git a/src/Umbraco.Abstractions/Models/IDataValueEditor.cs b/src/Umbraco.Core/Models/IDataValueEditor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IDataValueEditor.cs
rename to src/Umbraco.Core/Models/IDataValueEditor.cs
diff --git a/src/Umbraco.Abstractions/Models/IDeepCloneable.cs b/src/Umbraco.Core/Models/IDeepCloneable.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IDeepCloneable.cs
rename to src/Umbraco.Core/Models/IDeepCloneable.cs
diff --git a/src/Umbraco.Abstractions/Models/IDictionaryItem.cs b/src/Umbraco.Core/Models/IDictionaryItem.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IDictionaryItem.cs
rename to src/Umbraco.Core/Models/IDictionaryItem.cs
diff --git a/src/Umbraco.Abstractions/Models/IDictionaryTranslation.cs b/src/Umbraco.Core/Models/IDictionaryTranslation.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IDictionaryTranslation.cs
rename to src/Umbraco.Core/Models/IDictionaryTranslation.cs
diff --git a/src/Umbraco.Abstractions/Models/IDomain.cs b/src/Umbraco.Core/Models/IDomain.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IDomain.cs
rename to src/Umbraco.Core/Models/IDomain.cs
diff --git a/src/Umbraco.Abstractions/Models/IFile.cs b/src/Umbraco.Core/Models/IFile.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IFile.cs
rename to src/Umbraco.Core/Models/IFile.cs
diff --git a/src/Umbraco.Abstractions/Models/IImageUrlGenerator.cs b/src/Umbraco.Core/Models/IImageUrlGenerator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IImageUrlGenerator.cs
rename to src/Umbraco.Core/Models/IImageUrlGenerator.cs
diff --git a/src/Umbraco.Abstractions/Models/ILanguage.cs b/src/Umbraco.Core/Models/ILanguage.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ILanguage.cs
rename to src/Umbraco.Core/Models/ILanguage.cs
diff --git a/src/Umbraco.Abstractions/Models/IMacro.cs b/src/Umbraco.Core/Models/IMacro.cs
similarity index 83%
rename from src/Umbraco.Abstractions/Models/IMacro.cs
rename to src/Umbraco.Core/Models/IMacro.cs
index c3d37b0700..9d1c47154c 100644
--- a/src/Umbraco.Abstractions/Models/IMacro.cs
+++ b/src/Umbraco.Core/Models/IMacro.cs
@@ -58,22 +58,10 @@ namespace Umbraco.Core.Models
[DataMember]
string MacroSource { get; set; }
- ///
- /// Gets or set the macro type
- ///
- [DataMember]
- MacroTypes MacroType { get; set; }
-
///
/// Gets or sets a list of Macro Properties
///
[DataMember]
MacroPropertyCollection Properties { get; }
-
- /////
- ///// Returns an enum based on the properties on the Macro
- /////
- /////
- //MacroTypes MacroType();
}
}
diff --git a/src/Umbraco.Abstractions/Models/IMacroProperty.cs b/src/Umbraco.Core/Models/IMacroProperty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IMacroProperty.cs
rename to src/Umbraco.Core/Models/IMacroProperty.cs
diff --git a/src/Umbraco.Abstractions/Models/IMedia.cs b/src/Umbraco.Core/Models/IMedia.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IMedia.cs
rename to src/Umbraco.Core/Models/IMedia.cs
diff --git a/src/Umbraco.Abstractions/Models/IMediaType.cs b/src/Umbraco.Core/Models/IMediaType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IMediaType.cs
rename to src/Umbraco.Core/Models/IMediaType.cs
diff --git a/src/Umbraco.Core/Models/IMediaUrlGenerator.cs b/src/Umbraco.Core/Models/IMediaUrlGenerator.cs
new file mode 100644
index 0000000000..41e1be8d6c
--- /dev/null
+++ b/src/Umbraco.Core/Models/IMediaUrlGenerator.cs
@@ -0,0 +1,18 @@
+namespace Umbraco.Core.PropertyEditors
+{
+ ///
+ /// Used to generate paths to media items for a specified property editor alias
+ ///
+ public interface IMediaUrlGenerator
+ {
+ ///
+ /// Tries to get a media path for a given property editor alias
+ ///
+ /// The property editor alias
+ /// The value of the property
+ ///
+ /// True if a media path was returned
+ ///
+ bool TryGetMediaPath(string alias, object value, out string mediaPath);
+ }
+}
diff --git a/src/Umbraco.Abstractions/Models/IMember.cs b/src/Umbraco.Core/Models/IMember.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IMember.cs
rename to src/Umbraco.Core/Models/IMember.cs
diff --git a/src/Umbraco.Abstractions/Models/IMemberGroup.cs b/src/Umbraco.Core/Models/IMemberGroup.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IMemberGroup.cs
rename to src/Umbraco.Core/Models/IMemberGroup.cs
diff --git a/src/Umbraco.Abstractions/Models/IMemberType.cs b/src/Umbraco.Core/Models/IMemberType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IMemberType.cs
rename to src/Umbraco.Core/Models/IMemberType.cs
diff --git a/src/Umbraco.Abstractions/Models/IMigrationEntry.cs b/src/Umbraco.Core/Models/IMigrationEntry.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IMigrationEntry.cs
rename to src/Umbraco.Core/Models/IMigrationEntry.cs
diff --git a/src/Umbraco.Abstractions/Models/IPartialView.cs b/src/Umbraco.Core/Models/IPartialView.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IPartialView.cs
rename to src/Umbraco.Core/Models/IPartialView.cs
diff --git a/src/Umbraco.Abstractions/Models/IProperty.cs b/src/Umbraco.Core/Models/IProperty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IProperty.cs
rename to src/Umbraco.Core/Models/IProperty.cs
diff --git a/src/Umbraco.Abstractions/Models/IPropertyCollection.cs b/src/Umbraco.Core/Models/IPropertyCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IPropertyCollection.cs
rename to src/Umbraco.Core/Models/IPropertyCollection.cs
diff --git a/src/Umbraco.Abstractions/Models/IPropertyType.cs b/src/Umbraco.Core/Models/IPropertyType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IPropertyType.cs
rename to src/Umbraco.Core/Models/IPropertyType.cs
diff --git a/src/Umbraco.Abstractions/Models/IPropertyValue.cs b/src/Umbraco.Core/Models/IPropertyValue.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IPropertyValue.cs
rename to src/Umbraco.Core/Models/IPropertyValue.cs
diff --git a/src/Umbraco.Abstractions/Models/IRedirectUrl.cs b/src/Umbraco.Core/Models/IRedirectUrl.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IRedirectUrl.cs
rename to src/Umbraco.Core/Models/IRedirectUrl.cs
diff --git a/src/Umbraco.Abstractions/Models/IRelation.cs b/src/Umbraco.Core/Models/IRelation.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IRelation.cs
rename to src/Umbraco.Core/Models/IRelation.cs
diff --git a/src/Umbraco.Abstractions/Models/IRelationType.cs b/src/Umbraco.Core/Models/IRelationType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IRelationType.cs
rename to src/Umbraco.Core/Models/IRelationType.cs
diff --git a/src/Umbraco.Abstractions/Models/IScript.cs b/src/Umbraco.Core/Models/IScript.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IScript.cs
rename to src/Umbraco.Core/Models/IScript.cs
diff --git a/src/Umbraco.Abstractions/Models/IServerRegistration.cs b/src/Umbraco.Core/Models/IServerRegistration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IServerRegistration.cs
rename to src/Umbraco.Core/Models/IServerRegistration.cs
diff --git a/src/Umbraco.Abstractions/Models/ISimpleContentType.cs b/src/Umbraco.Core/Models/ISimpleContentType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ISimpleContentType.cs
rename to src/Umbraco.Core/Models/ISimpleContentType.cs
diff --git a/src/Umbraco.Abstractions/Models/IStylesheet.cs b/src/Umbraco.Core/Models/IStylesheet.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IStylesheet.cs
rename to src/Umbraco.Core/Models/IStylesheet.cs
diff --git a/src/Umbraco.Abstractions/Models/IStylesheetProperty.cs b/src/Umbraco.Core/Models/IStylesheetProperty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/IStylesheetProperty.cs
rename to src/Umbraco.Core/Models/IStylesheetProperty.cs
diff --git a/src/Umbraco.Abstractions/Models/ITag.cs b/src/Umbraco.Core/Models/ITag.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ITag.cs
rename to src/Umbraco.Core/Models/ITag.cs
diff --git a/src/Umbraco.Abstractions/Models/ITemplate.cs b/src/Umbraco.Core/Models/ITemplate.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ITemplate.cs
rename to src/Umbraco.Core/Models/ITemplate.cs
diff --git a/src/Umbraco.Abstractions/Models/Identity/IIdentityUserLogin.cs b/src/Umbraco.Core/Models/Identity/IIdentityUserLogin.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Identity/IIdentityUserLogin.cs
rename to src/Umbraco.Core/Models/Identity/IIdentityUserLogin.cs
diff --git a/src/Umbraco.Abstractions/Models/Identity/IUserLoginInfo.cs b/src/Umbraco.Core/Models/Identity/IUserLoginInfo.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Identity/IUserLoginInfo.cs
rename to src/Umbraco.Core/Models/Identity/IUserLoginInfo.cs
diff --git a/src/Umbraco.Abstractions/Models/Identity/IdentityUserClaim.cs b/src/Umbraco.Core/Models/Identity/IdentityUserClaim.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Identity/IdentityUserClaim.cs
rename to src/Umbraco.Core/Models/Identity/IdentityUserClaim.cs
diff --git a/src/Umbraco.Abstractions/Models/Identity/IdentityUserLogin.cs b/src/Umbraco.Core/Models/Identity/IdentityUserLogin.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Identity/IdentityUserLogin.cs
rename to src/Umbraco.Core/Models/Identity/IdentityUserLogin.cs
diff --git a/src/Umbraco.Abstractions/Models/Identity/IdentityUserRole.cs b/src/Umbraco.Core/Models/Identity/IdentityUserRole.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Identity/IdentityUserRole.cs
rename to src/Umbraco.Core/Models/Identity/IdentityUserRole.cs
diff --git a/src/Umbraco.Abstractions/Models/ImageCropAnchor.cs b/src/Umbraco.Core/Models/ImageCropAnchor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ImageCropAnchor.cs
rename to src/Umbraco.Core/Models/ImageCropAnchor.cs
diff --git a/src/Umbraco.Abstractions/Models/ImageCropMode.cs b/src/Umbraco.Core/Models/ImageCropMode.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ImageCropMode.cs
rename to src/Umbraco.Core/Models/ImageCropMode.cs
diff --git a/src/Umbraco.Abstractions/Models/ImageCropRatioMode.cs b/src/Umbraco.Core/Models/ImageCropRatioMode.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ImageCropRatioMode.cs
rename to src/Umbraco.Core/Models/ImageCropRatioMode.cs
diff --git a/src/Umbraco.Abstractions/Models/ImageUrlGenerationOptions.cs b/src/Umbraco.Core/Models/ImageUrlGenerationOptions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ImageUrlGenerationOptions.cs
rename to src/Umbraco.Core/Models/ImageUrlGenerationOptions.cs
diff --git a/src/Umbraco.Abstractions/Models/Link.cs b/src/Umbraco.Core/Models/Link.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Link.cs
rename to src/Umbraco.Core/Models/Link.cs
diff --git a/src/Umbraco.Abstractions/Models/LinkType.cs b/src/Umbraco.Core/Models/LinkType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/LinkType.cs
rename to src/Umbraco.Core/Models/LinkType.cs
diff --git a/src/Umbraco.Abstractions/Models/LoginModel.cs b/src/Umbraco.Core/Models/LoginModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/LoginModel.cs
rename to src/Umbraco.Core/Models/LoginModel.cs
diff --git a/src/Umbraco.Abstractions/Models/MacroProperty.cs b/src/Umbraco.Core/Models/MacroProperty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/MacroProperty.cs
rename to src/Umbraco.Core/Models/MacroProperty.cs
diff --git a/src/Umbraco.Abstractions/Models/MacroPropertyCollection.cs b/src/Umbraco.Core/Models/MacroPropertyCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/MacroPropertyCollection.cs
rename to src/Umbraco.Core/Models/MacroPropertyCollection.cs
diff --git a/src/Umbraco.Web/Models/Mapping/ContentPropertyBasicMapper.cs b/src/Umbraco.Core/Models/Mapping/ContentPropertyBasicMapper.cs
similarity index 100%
rename from src/Umbraco.Web/Models/Mapping/ContentPropertyBasicMapper.cs
rename to src/Umbraco.Core/Models/Mapping/ContentPropertyBasicMapper.cs
diff --git a/src/Umbraco.Web/Models/Mapping/ContentPropertyDisplayMapper.cs b/src/Umbraco.Core/Models/Mapping/ContentPropertyDisplayMapper.cs
similarity index 100%
rename from src/Umbraco.Web/Models/Mapping/ContentPropertyDisplayMapper.cs
rename to src/Umbraco.Core/Models/Mapping/ContentPropertyDisplayMapper.cs
diff --git a/src/Umbraco.Web/Models/Mapping/ContentPropertyDtoMapper.cs b/src/Umbraco.Core/Models/Mapping/ContentPropertyDtoMapper.cs
similarity index 100%
rename from src/Umbraco.Web/Models/Mapping/ContentPropertyDtoMapper.cs
rename to src/Umbraco.Core/Models/Mapping/ContentPropertyDtoMapper.cs
diff --git a/src/Umbraco.Web/Models/Mapping/ContentPropertyMapDefinition.cs b/src/Umbraco.Core/Models/Mapping/ContentPropertyMapDefinition.cs
similarity index 100%
rename from src/Umbraco.Web/Models/Mapping/ContentPropertyMapDefinition.cs
rename to src/Umbraco.Core/Models/Mapping/ContentPropertyMapDefinition.cs
diff --git a/src/Umbraco.Infrastructure/Models/Mapping/MapperContextExtensions.cs b/src/Umbraco.Core/Models/Mapping/MapperContextExtensions.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Models/Mapping/MapperContextExtensions.cs
rename to src/Umbraco.Core/Models/Mapping/MapperContextExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/MemberGroup.cs b/src/Umbraco.Core/Models/MemberGroup.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/MemberGroup.cs
rename to src/Umbraco.Core/Models/MemberGroup.cs
diff --git a/src/Umbraco.Abstractions/Models/MemberTypePropertyProfileAccess.cs b/src/Umbraco.Core/Models/MemberTypePropertyProfileAccess.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/MemberTypePropertyProfileAccess.cs
rename to src/Umbraco.Core/Models/MemberTypePropertyProfileAccess.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/ContentPermissionSet.cs b/src/Umbraco.Core/Models/Membership/ContentPermissionSet.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/ContentPermissionSet.cs
rename to src/Umbraco.Core/Models/Membership/ContentPermissionSet.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/EntityPermission.cs b/src/Umbraco.Core/Models/Membership/EntityPermission.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/EntityPermission.cs
rename to src/Umbraco.Core/Models/Membership/EntityPermission.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/EntityPermissionCollection.cs b/src/Umbraco.Core/Models/Membership/EntityPermissionCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/EntityPermissionCollection.cs
rename to src/Umbraco.Core/Models/Membership/EntityPermissionCollection.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/EntityPermissionSet.cs b/src/Umbraco.Core/Models/Membership/EntityPermissionSet.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/EntityPermissionSet.cs
rename to src/Umbraco.Core/Models/Membership/EntityPermissionSet.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/IMembershipUser.cs b/src/Umbraco.Core/Models/Membership/IMembershipUser.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/IMembershipUser.cs
rename to src/Umbraco.Core/Models/Membership/IMembershipUser.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/IProfile.cs b/src/Umbraco.Core/Models/Membership/IProfile.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/IProfile.cs
rename to src/Umbraco.Core/Models/Membership/IProfile.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/IReadOnlyUserGroup.cs b/src/Umbraco.Core/Models/Membership/IReadOnlyUserGroup.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/IReadOnlyUserGroup.cs
rename to src/Umbraco.Core/Models/Membership/IReadOnlyUserGroup.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/IUser.cs b/src/Umbraco.Core/Models/Membership/IUser.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/IUser.cs
rename to src/Umbraco.Core/Models/Membership/IUser.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/IUserGroup.cs b/src/Umbraco.Core/Models/Membership/IUserGroup.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/IUserGroup.cs
rename to src/Umbraco.Core/Models/Membership/IUserGroup.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/MemberCountType.cs b/src/Umbraco.Core/Models/Membership/MemberCountType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/MemberCountType.cs
rename to src/Umbraco.Core/Models/Membership/MemberCountType.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/MemberExportModel.cs b/src/Umbraco.Core/Models/Membership/MemberExportModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/MemberExportModel.cs
rename to src/Umbraco.Core/Models/Membership/MemberExportModel.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/MemberExportProperty.cs b/src/Umbraco.Core/Models/Membership/MemberExportProperty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/MemberExportProperty.cs
rename to src/Umbraco.Core/Models/Membership/MemberExportProperty.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/ReadOnlyUserGroup.cs b/src/Umbraco.Core/Models/Membership/ReadOnlyUserGroup.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/ReadOnlyUserGroup.cs
rename to src/Umbraco.Core/Models/Membership/ReadOnlyUserGroup.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/UserProfile.cs b/src/Umbraco.Core/Models/Membership/UserProfile.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/UserProfile.cs
rename to src/Umbraco.Core/Models/Membership/UserProfile.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/UserState.cs b/src/Umbraco.Core/Models/Membership/UserState.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Membership/UserState.cs
rename to src/Umbraco.Core/Models/Membership/UserState.cs
diff --git a/src/Umbraco.Abstractions/Models/MigrationEntry.cs b/src/Umbraco.Core/Models/MigrationEntry.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/MigrationEntry.cs
rename to src/Umbraco.Core/Models/MigrationEntry.cs
diff --git a/src/Umbraco.Abstractions/Models/Notification.cs b/src/Umbraco.Core/Models/Notification.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Notification.cs
rename to src/Umbraco.Core/Models/Notification.cs
diff --git a/src/Umbraco.Abstractions/Models/NotificationEmailBodyParams.cs b/src/Umbraco.Core/Models/NotificationEmailBodyParams.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/NotificationEmailBodyParams.cs
rename to src/Umbraco.Core/Models/NotificationEmailBodyParams.cs
diff --git a/src/Umbraco.Abstractions/Models/NotificationEmailSubjectParams.cs b/src/Umbraco.Core/Models/NotificationEmailSubjectParams.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/NotificationEmailSubjectParams.cs
rename to src/Umbraco.Core/Models/NotificationEmailSubjectParams.cs
diff --git a/src/Umbraco.Abstractions/Models/PackageInstallModel.cs b/src/Umbraco.Core/Models/PackageInstallModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PackageInstallModel.cs
rename to src/Umbraco.Core/Models/PackageInstallModel.cs
diff --git a/src/Umbraco.Abstractions/Models/PackageInstallResult.cs b/src/Umbraco.Core/Models/PackageInstallResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PackageInstallResult.cs
rename to src/Umbraco.Core/Models/PackageInstallResult.cs
diff --git a/src/Umbraco.Abstractions/Models/Packaging/ActionRunAt.cs b/src/Umbraco.Core/Models/Packaging/ActionRunAt.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Packaging/ActionRunAt.cs
rename to src/Umbraco.Core/Models/Packaging/ActionRunAt.cs
diff --git a/src/Umbraco.Abstractions/Models/Packaging/CompiledPackage.cs b/src/Umbraco.Core/Models/Packaging/CompiledPackage.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Packaging/CompiledPackage.cs
rename to src/Umbraco.Core/Models/Packaging/CompiledPackage.cs
diff --git a/src/Umbraco.Abstractions/Models/Packaging/CompiledPackageDocument.cs b/src/Umbraco.Core/Models/Packaging/CompiledPackageDocument.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Packaging/CompiledPackageDocument.cs
rename to src/Umbraco.Core/Models/Packaging/CompiledPackageDocument.cs
diff --git a/src/Umbraco.Abstractions/Models/Packaging/CompiledPackageFile.cs b/src/Umbraco.Core/Models/Packaging/CompiledPackageFile.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Packaging/CompiledPackageFile.cs
rename to src/Umbraco.Core/Models/Packaging/CompiledPackageFile.cs
diff --git a/src/Umbraco.Abstractions/Models/Packaging/IPackageInfo.cs b/src/Umbraco.Core/Models/Packaging/IPackageInfo.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Packaging/IPackageInfo.cs
rename to src/Umbraco.Core/Models/Packaging/IPackageInfo.cs
diff --git a/src/Umbraco.Abstractions/Models/Packaging/PackageAction.cs b/src/Umbraco.Core/Models/Packaging/PackageAction.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Packaging/PackageAction.cs
rename to src/Umbraco.Core/Models/Packaging/PackageAction.cs
diff --git a/src/Umbraco.Abstractions/Models/Packaging/PreInstallWarnings.cs b/src/Umbraco.Core/Models/Packaging/PreInstallWarnings.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Packaging/PreInstallWarnings.cs
rename to src/Umbraco.Core/Models/Packaging/PreInstallWarnings.cs
diff --git a/src/Umbraco.Abstractions/Models/Packaging/RequirementsType.cs b/src/Umbraco.Core/Models/Packaging/RequirementsType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Packaging/RequirementsType.cs
rename to src/Umbraco.Core/Models/Packaging/RequirementsType.cs
diff --git a/src/Umbraco.Abstractions/Models/PagedResult.cs b/src/Umbraco.Core/Models/PagedResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PagedResult.cs
rename to src/Umbraco.Core/Models/PagedResult.cs
diff --git a/src/Umbraco.Abstractions/Models/PagedResultOfT.cs b/src/Umbraco.Core/Models/PagedResultOfT.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PagedResultOfT.cs
rename to src/Umbraco.Core/Models/PagedResultOfT.cs
diff --git a/src/Umbraco.Abstractions/Models/PartialView.cs b/src/Umbraco.Core/Models/PartialView.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PartialView.cs
rename to src/Umbraco.Core/Models/PartialView.cs
diff --git a/src/Umbraco.Abstractions/Models/PartialViewMacroModel.cs b/src/Umbraco.Core/Models/PartialViewMacroModel.cs
similarity index 94%
rename from src/Umbraco.Abstractions/Models/PartialViewMacroModel.cs
rename to src/Umbraco.Core/Models/PartialViewMacroModel.cs
index 9964877cba..f3272644f4 100644
--- a/src/Umbraco.Abstractions/Models/PartialViewMacroModel.cs
+++ b/src/Umbraco.Core/Models/PartialViewMacroModel.cs
@@ -6,7 +6,7 @@ namespace Umbraco.Web.Models
///
/// The model used when rendering Partial View Macros
///
- public class PartialViewMacroModel
+ public class PartialViewMacroModel : IContentModel
{
public PartialViewMacroModel(IPublishedContent page,
diff --git a/src/Umbraco.Abstractions/Models/PartialViewMacroModelExtensions.cs b/src/Umbraco.Core/Models/PartialViewMacroModelExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PartialViewMacroModelExtensions.cs
rename to src/Umbraco.Core/Models/PartialViewMacroModelExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/PartialViewType.cs b/src/Umbraco.Core/Models/PartialViewType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PartialViewType.cs
rename to src/Umbraco.Core/Models/PartialViewType.cs
diff --git a/src/Umbraco.Abstractions/Models/PasswordChangedModel.cs b/src/Umbraco.Core/Models/PasswordChangedModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PasswordChangedModel.cs
rename to src/Umbraco.Core/Models/PasswordChangedModel.cs
diff --git a/src/Umbraco.Abstractions/Models/PostRedirectModel.cs b/src/Umbraco.Core/Models/PostRedirectModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PostRedirectModel.cs
rename to src/Umbraco.Core/Models/PostRedirectModel.cs
diff --git a/src/Umbraco.Abstractions/Models/PropertyGroup.cs b/src/Umbraco.Core/Models/PropertyGroup.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PropertyGroup.cs
rename to src/Umbraco.Core/Models/PropertyGroup.cs
diff --git a/src/Umbraco.Abstractions/Models/PropertyGroupCollection.cs b/src/Umbraco.Core/Models/PropertyGroupCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PropertyGroupCollection.cs
rename to src/Umbraco.Core/Models/PropertyGroupCollection.cs
diff --git a/src/Umbraco.Abstractions/Models/PropertyTypeCollection.cs b/src/Umbraco.Core/Models/PropertyTypeCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PropertyTypeCollection.cs
rename to src/Umbraco.Core/Models/PropertyTypeCollection.cs
diff --git a/src/Umbraco.Abstractions/Models/PublicAccessEntry.cs b/src/Umbraco.Core/Models/PublicAccessEntry.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublicAccessEntry.cs
rename to src/Umbraco.Core/Models/PublicAccessEntry.cs
diff --git a/src/Umbraco.Abstractions/Models/PublicAccessRule.cs b/src/Umbraco.Core/Models/PublicAccessRule.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublicAccessRule.cs
rename to src/Umbraco.Core/Models/PublicAccessRule.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/Fallback.cs b/src/Umbraco.Core/Models/PublishedContent/Fallback.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/Fallback.cs
rename to src/Umbraco.Core/Models/PublishedContent/Fallback.cs
diff --git a/src/Umbraco.Web/Models/PublishedContent/HttpContextVariationContextAccessor.cs b/src/Umbraco.Core/Models/PublishedContent/HttpContextVariationContextAccessor.cs
similarity index 50%
rename from src/Umbraco.Web/Models/PublishedContent/HttpContextVariationContextAccessor.cs
rename to src/Umbraco.Core/Models/PublishedContent/HttpContextVariationContextAccessor.cs
index 0007b346c5..09604281dc 100644
--- a/src/Umbraco.Web/Models/PublishedContent/HttpContextVariationContextAccessor.cs
+++ b/src/Umbraco.Core/Models/PublishedContent/HttpContextVariationContextAccessor.cs
@@ -1,4 +1,5 @@
-using Umbraco.Core.Models.PublishedContent;
+using Umbraco.Core.Cache;
+using Umbraco.Core.Models.PublishedContent;
namespace Umbraco.Web.Models.PublishedContent
{
@@ -7,22 +8,22 @@ namespace Umbraco.Web.Models.PublishedContent
///
public class HttpContextVariationContextAccessor : IVariationContextAccessor
{
- public const string ContextKey = "Umbraco.Web.Models.PublishedContent.DefaultVariationContextAccessor";
- public readonly IHttpContextAccessor HttpContextAccessor;
+ private readonly IRequestCache _requestCache;
+ private const string ContextKey = "Umbraco.Web.Models.PublishedContent.DefaultVariationContextAccessor";
///
/// Initializes a new instance of the class.
///
- public HttpContextVariationContextAccessor(IHttpContextAccessor httpContextAccessor)
+ public HttpContextVariationContextAccessor(IRequestCache requestCache)
{
- HttpContextAccessor = httpContextAccessor;
+ _requestCache = requestCache;
}
///
public VariationContext VariationContext
{
- get => (VariationContext) HttpContextAccessor.HttpContext?.Items[ContextKey];
- set => HttpContextAccessor.HttpContext.Items[ContextKey] = value;
+ get => (VariationContext) _requestCache.Get(ContextKey);
+ set => _requestCache.Set(ContextKey, value);
}
}
}
diff --git a/src/Umbraco.Web/Models/PublishedContent/HybridVariationContextAccessor.cs b/src/Umbraco.Core/Models/PublishedContent/HybridVariationContextAccessor.cs
similarity index 64%
rename from src/Umbraco.Web/Models/PublishedContent/HybridVariationContextAccessor.cs
rename to src/Umbraco.Core/Models/PublishedContent/HybridVariationContextAccessor.cs
index cb002e11b0..6f97c1dc5c 100644
--- a/src/Umbraco.Web/Models/PublishedContent/HybridVariationContextAccessor.cs
+++ b/src/Umbraco.Core/Models/PublishedContent/HybridVariationContextAccessor.cs
@@ -1,14 +1,15 @@
-using Umbraco.Core.Models.PublishedContent;
+using Umbraco.Core.Cache;
+using Umbraco.Core.Models.PublishedContent;
namespace Umbraco.Web.Models.PublishedContent
{
///
/// Implements a hybrid .
///
- internal class HybridVariationContextAccessor : HybridAccessorBase, IVariationContextAccessor
+ public class HybridVariationContextAccessor : HybridAccessorBase, IVariationContextAccessor
{
- public HybridVariationContextAccessor(IHttpContextAccessor httpContextAccessor)
- : base(httpContextAccessor)
+ public HybridVariationContextAccessor(IRequestCache requestCache)
+ : base(requestCache)
{ }
///
@@ -23,4 +24,4 @@ namespace Umbraco.Web.Models.PublishedContent
set => Value = value;
}
}
-}
\ No newline at end of file
+}
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/ILivePublishedModelFactory.cs b/src/Umbraco.Core/Models/PublishedContent/ILivePublishedModelFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/ILivePublishedModelFactory.cs
rename to src/Umbraco.Core/Models/PublishedContent/ILivePublishedModelFactory.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedContent.cs b/src/Umbraco.Core/Models/PublishedContent/IPublishedContent.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/IPublishedContent.cs
rename to src/Umbraco.Core/Models/PublishedContent/IPublishedContent.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedContentType.cs b/src/Umbraco.Core/Models/PublishedContent/IPublishedContentType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/IPublishedContentType.cs
rename to src/Umbraco.Core/Models/PublishedContent/IPublishedContentType.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedContentTypeFactory.cs b/src/Umbraco.Core/Models/PublishedContent/IPublishedContentTypeFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/IPublishedContentTypeFactory.cs
rename to src/Umbraco.Core/Models/PublishedContent/IPublishedContentTypeFactory.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedElement.cs b/src/Umbraco.Core/Models/PublishedContent/IPublishedElement.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/IPublishedElement.cs
rename to src/Umbraco.Core/Models/PublishedContent/IPublishedElement.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedModelFactory.cs b/src/Umbraco.Core/Models/PublishedContent/IPublishedModelFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/IPublishedModelFactory.cs
rename to src/Umbraco.Core/Models/PublishedContent/IPublishedModelFactory.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedProperty.cs b/src/Umbraco.Core/Models/PublishedContent/IPublishedProperty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/IPublishedProperty.cs
rename to src/Umbraco.Core/Models/PublishedContent/IPublishedProperty.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedPropertyType.cs b/src/Umbraco.Core/Models/PublishedContent/IPublishedPropertyType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/IPublishedPropertyType.cs
rename to src/Umbraco.Core/Models/PublishedContent/IPublishedPropertyType.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedValueFallback.cs b/src/Umbraco.Core/Models/PublishedContent/IPublishedValueFallback.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/IPublishedValueFallback.cs
rename to src/Umbraco.Core/Models/PublishedContent/IPublishedValueFallback.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/IVariationContextAccessor.cs b/src/Umbraco.Core/Models/PublishedContent/IVariationContextAccessor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/IVariationContextAccessor.cs
rename to src/Umbraco.Core/Models/PublishedContent/IVariationContextAccessor.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/IndexedArrayItem.cs b/src/Umbraco.Core/Models/PublishedContent/IndexedArrayItem.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/IndexedArrayItem.cs
rename to src/Umbraco.Core/Models/PublishedContent/IndexedArrayItem.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/ModelType.cs b/src/Umbraco.Core/Models/PublishedContent/ModelType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/ModelType.cs
rename to src/Umbraco.Core/Models/PublishedContent/ModelType.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/NoopPublishedModelFactory.cs b/src/Umbraco.Core/Models/PublishedContent/NoopPublishedModelFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/NoopPublishedModelFactory.cs
rename to src/Umbraco.Core/Models/PublishedContent/NoopPublishedModelFactory.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/NoopPublishedValueFallback.cs b/src/Umbraco.Core/Models/PublishedContent/NoopPublishedValueFallback.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/NoopPublishedValueFallback.cs
rename to src/Umbraco.Core/Models/PublishedContent/NoopPublishedValueFallback.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentBase.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedContentBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentBase.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedContentBase.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentType.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedContentType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentType.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedContentType.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentTypeConverter.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedContentTypeConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentTypeConverter.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedContentTypeConverter.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentWrapped.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedContentWrapped.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentWrapped.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedContentWrapped.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedCultureInfos.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedCultureInfos.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedCultureInfos.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedCultureInfos.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedDataType.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedDataType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedDataType.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedDataType.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedElementModel.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedElementModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedElementModel.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedElementModel.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedElementWrapped.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedElementWrapped.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedElementWrapped.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedElementWrapped.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedItemType.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedItemType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedItemType.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedItemType.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedModelAttribute.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedModelAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedModelAttribute.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedModelAttribute.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedPropertyBase.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedPropertyBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedPropertyBase.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedPropertyBase.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedPropertyType.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedPropertyType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedPropertyType.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedPropertyType.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/PublishedSearchResult.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedSearchResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/PublishedSearchResult.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedSearchResult.cs
diff --git a/src/Umbraco.Web/Models/PublishedContent/PublishedValueFallback.cs b/src/Umbraco.Core/Models/PublishedContent/PublishedValueFallback.cs
similarity index 97%
rename from src/Umbraco.Web/Models/PublishedContent/PublishedValueFallback.cs
rename to src/Umbraco.Core/Models/PublishedContent/PublishedValueFallback.cs
index 7b467b6d15..7c207c23c0 100644
--- a/src/Umbraco.Web/Models/PublishedContent/PublishedValueFallback.cs
+++ b/src/Umbraco.Core/Models/PublishedContent/PublishedValueFallback.cs
@@ -182,7 +182,7 @@ namespace Umbraco.Web.Models.PublishedContent
// if we found a content with the property having a value, return that property value
if (property != null && property.HasValue(culture, segment))
{
- value = property.Value(culture, segment);
+ value = property.Value(this, culture, segment);
return true;
}
@@ -216,7 +216,7 @@ namespace Umbraco.Web.Models.PublishedContent
if (property.HasValue(culture2, segment))
{
- value = property.Value(culture2, segment);
+ value = property.Value(this, culture2, segment);
return true;
}
@@ -250,7 +250,7 @@ namespace Umbraco.Web.Models.PublishedContent
if (content.HasValue(alias, culture2, segment))
{
- value = content.Value(alias, culture2, segment);
+ value = content.Value(this, alias, culture2, segment);
return true;
}
@@ -287,7 +287,7 @@ namespace Umbraco.Web.Models.PublishedContent
if (content.HasValue(alias, culture2, segment))
{
- value = content.Value(alias, culture2, segment);
+ value = content.Value(this, alias, culture2, segment);
return true;
}
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/RawValueProperty.cs b/src/Umbraco.Core/Models/PublishedContent/RawValueProperty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/RawValueProperty.cs
rename to src/Umbraco.Core/Models/PublishedContent/RawValueProperty.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/ThreadCultureVariationContextAccessor.cs b/src/Umbraco.Core/Models/PublishedContent/ThreadCultureVariationContextAccessor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/ThreadCultureVariationContextAccessor.cs
rename to src/Umbraco.Core/Models/PublishedContent/ThreadCultureVariationContextAccessor.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/UrlMode.cs b/src/Umbraco.Core/Models/PublishedContent/UrlMode.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/UrlMode.cs
rename to src/Umbraco.Core/Models/PublishedContent/UrlMode.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedContent/VariationContext.cs b/src/Umbraco.Core/Models/PublishedContent/VariationContext.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedContent/VariationContext.cs
rename to src/Umbraco.Core/Models/PublishedContent/VariationContext.cs
diff --git a/src/Umbraco.Infrastructure/Models/PublishedContent/VariationContextAccessorExtensions.cs b/src/Umbraco.Core/Models/PublishedContent/VariationContextAccessorExtensions.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Models/PublishedContent/VariationContextAccessorExtensions.cs
rename to src/Umbraco.Core/Models/PublishedContent/VariationContextAccessorExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/PublishedState.cs b/src/Umbraco.Core/Models/PublishedState.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/PublishedState.cs
rename to src/Umbraco.Core/Models/PublishedState.cs
diff --git a/src/Umbraco.Abstractions/Models/Range.cs b/src/Umbraco.Core/Models/Range.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Range.cs
rename to src/Umbraco.Core/Models/Range.cs
diff --git a/src/Umbraco.Abstractions/Models/RedirectUrl.cs b/src/Umbraco.Core/Models/RedirectUrl.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/RedirectUrl.cs
rename to src/Umbraco.Core/Models/RedirectUrl.cs
diff --git a/src/Umbraco.Abstractions/Models/Relation.cs b/src/Umbraco.Core/Models/Relation.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Relation.cs
rename to src/Umbraco.Core/Models/Relation.cs
diff --git a/src/Umbraco.Abstractions/Models/RelationType.cs b/src/Umbraco.Core/Models/RelationType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/RelationType.cs
rename to src/Umbraco.Core/Models/RelationType.cs
diff --git a/src/Umbraco.Abstractions/Models/RequestPasswordResetModel.cs b/src/Umbraco.Core/Models/RequestPasswordResetModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/RequestPasswordResetModel.cs
rename to src/Umbraco.Core/Models/RequestPasswordResetModel.cs
diff --git a/src/Umbraco.Abstractions/Models/Script.cs b/src/Umbraco.Core/Models/Script.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Script.cs
rename to src/Umbraco.Core/Models/Script.cs
diff --git a/src/Umbraco.Abstractions/Models/SendCodeViewModel.cs b/src/Umbraco.Core/Models/SendCodeViewModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/SendCodeViewModel.cs
rename to src/Umbraco.Core/Models/SendCodeViewModel.cs
diff --git a/src/Umbraco.Abstractions/Models/ServerRegistration.cs b/src/Umbraco.Core/Models/ServerRegistration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ServerRegistration.cs
rename to src/Umbraco.Core/Models/ServerRegistration.cs
diff --git a/src/Umbraco.Abstractions/Models/SetPasswordModel.cs b/src/Umbraco.Core/Models/SetPasswordModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/SetPasswordModel.cs
rename to src/Umbraco.Core/Models/SetPasswordModel.cs
diff --git a/src/Umbraco.Abstractions/Models/SimpleContentType.cs b/src/Umbraco.Core/Models/SimpleContentType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/SimpleContentType.cs
rename to src/Umbraco.Core/Models/SimpleContentType.cs
diff --git a/src/Umbraco.Abstractions/Models/Stylesheet.cs b/src/Umbraco.Core/Models/Stylesheet.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Stylesheet.cs
rename to src/Umbraco.Core/Models/Stylesheet.cs
diff --git a/src/Umbraco.Abstractions/Models/StylesheetProperty.cs b/src/Umbraco.Core/Models/StylesheetProperty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/StylesheetProperty.cs
rename to src/Umbraco.Core/Models/StylesheetProperty.cs
diff --git a/src/Umbraco.Abstractions/Models/Tag.cs b/src/Umbraco.Core/Models/Tag.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Tag.cs
rename to src/Umbraco.Core/Models/Tag.cs
diff --git a/src/Umbraco.Abstractions/Models/TagModel.cs b/src/Umbraco.Core/Models/TagModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TagModel.cs
rename to src/Umbraco.Core/Models/TagModel.cs
diff --git a/src/Umbraco.Abstractions/Models/TaggableObjectTypes.cs b/src/Umbraco.Core/Models/TaggableObjectTypes.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TaggableObjectTypes.cs
rename to src/Umbraco.Core/Models/TaggableObjectTypes.cs
diff --git a/src/Umbraco.Abstractions/Models/TaggedEntity.cs b/src/Umbraco.Core/Models/TaggedEntity.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TaggedEntity.cs
rename to src/Umbraco.Core/Models/TaggedEntity.cs
diff --git a/src/Umbraco.Abstractions/Models/TaggedProperty.cs b/src/Umbraco.Core/Models/TaggedProperty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TaggedProperty.cs
rename to src/Umbraco.Core/Models/TaggedProperty.cs
diff --git a/src/Umbraco.Abstractions/Models/TagsStorageType.cs b/src/Umbraco.Core/Models/TagsStorageType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TagsStorageType.cs
rename to src/Umbraco.Core/Models/TagsStorageType.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateNode.cs b/src/Umbraco.Core/Models/TemplateNode.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateNode.cs
rename to src/Umbraco.Core/Models/TemplateNode.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/ContentTypeModel.cs b/src/Umbraco.Core/Models/TemplateQuery/ContentTypeModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/ContentTypeModel.cs
rename to src/Umbraco.Core/Models/TemplateQuery/ContentTypeModel.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/Operator.cs b/src/Umbraco.Core/Models/TemplateQuery/Operator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/Operator.cs
rename to src/Umbraco.Core/Models/TemplateQuery/Operator.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/OperatorFactory.cs b/src/Umbraco.Core/Models/TemplateQuery/OperatorFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/OperatorFactory.cs
rename to src/Umbraco.Core/Models/TemplateQuery/OperatorFactory.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/OperatorTerm.cs b/src/Umbraco.Core/Models/TemplateQuery/OperatorTerm.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/OperatorTerm.cs
rename to src/Umbraco.Core/Models/TemplateQuery/OperatorTerm.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/PropertyModel.cs b/src/Umbraco.Core/Models/TemplateQuery/PropertyModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/PropertyModel.cs
rename to src/Umbraco.Core/Models/TemplateQuery/PropertyModel.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/QueryCondition.cs b/src/Umbraco.Core/Models/TemplateQuery/QueryCondition.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/QueryCondition.cs
rename to src/Umbraco.Core/Models/TemplateQuery/QueryCondition.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/QueryConditionExtensions.cs b/src/Umbraco.Core/Models/TemplateQuery/QueryConditionExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/QueryConditionExtensions.cs
rename to src/Umbraco.Core/Models/TemplateQuery/QueryConditionExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/QueryModel.cs b/src/Umbraco.Core/Models/TemplateQuery/QueryModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/QueryModel.cs
rename to src/Umbraco.Core/Models/TemplateQuery/QueryModel.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/QueryResultModel.cs b/src/Umbraco.Core/Models/TemplateQuery/QueryResultModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/QueryResultModel.cs
rename to src/Umbraco.Core/Models/TemplateQuery/QueryResultModel.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/SortExpression.cs b/src/Umbraco.Core/Models/TemplateQuery/SortExpression.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/SortExpression.cs
rename to src/Umbraco.Core/Models/TemplateQuery/SortExpression.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/SourceModel.cs b/src/Umbraco.Core/Models/TemplateQuery/SourceModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/SourceModel.cs
rename to src/Umbraco.Core/Models/TemplateQuery/SourceModel.cs
diff --git a/src/Umbraco.Abstractions/Models/TemplateQuery/TemplateQueryResult.cs b/src/Umbraco.Core/Models/TemplateQuery/TemplateQueryResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/TemplateQuery/TemplateQueryResult.cs
rename to src/Umbraco.Core/Models/TemplateQuery/TemplateQueryResult.cs
diff --git a/src/Umbraco.Abstractions/Models/Trees/ActionMenuItem.cs b/src/Umbraco.Core/Models/Trees/ActionMenuItem.cs
similarity index 96%
rename from src/Umbraco.Abstractions/Models/Trees/ActionMenuItem.cs
rename to src/Umbraco.Core/Models/Trees/ActionMenuItem.cs
index 9354417155..fe760fb94d 100644
--- a/src/Umbraco.Abstractions/Models/Trees/ActionMenuItem.cs
+++ b/src/Umbraco.Core/Models/Trees/ActionMenuItem.cs
@@ -1,6 +1,4 @@
-using System;
-using System.Diagnostics.CodeAnalysis;
-using Umbraco.Core;
+using Umbraco.Core;
using Umbraco.Core.Services;
namespace Umbraco.Web.Models.Trees
diff --git a/src/Umbraco.Web/Models/Trees/CreateChildEntity.cs b/src/Umbraco.Core/Models/Trees/CreateChildEntity.cs
similarity index 100%
rename from src/Umbraco.Web/Models/Trees/CreateChildEntity.cs
rename to src/Umbraco.Core/Models/Trees/CreateChildEntity.cs
diff --git a/src/Umbraco.Web/Models/Trees/ExportMember.cs b/src/Umbraco.Core/Models/Trees/ExportMember.cs
similarity index 100%
rename from src/Umbraco.Web/Models/Trees/ExportMember.cs
rename to src/Umbraco.Core/Models/Trees/ExportMember.cs
diff --git a/src/Umbraco.Abstractions/Models/Trees/MenuItem.cs b/src/Umbraco.Core/Models/Trees/MenuItem.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Trees/MenuItem.cs
rename to src/Umbraco.Core/Models/Trees/MenuItem.cs
diff --git a/src/Umbraco.Abstractions/Models/Trees/RefreshNode.cs b/src/Umbraco.Core/Models/Trees/RefreshNode.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Trees/RefreshNode.cs
rename to src/Umbraco.Core/Models/Trees/RefreshNode.cs
diff --git a/src/Umbraco.Abstractions/Models/UmbracoDomain.cs b/src/Umbraco.Core/Models/UmbracoDomain.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/UmbracoDomain.cs
rename to src/Umbraco.Core/Models/UmbracoDomain.cs
diff --git a/src/Umbraco.Abstractions/Models/UmbracoObjectTypes.cs b/src/Umbraco.Core/Models/UmbracoObjectTypes.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/UmbracoObjectTypes.cs
rename to src/Umbraco.Core/Models/UmbracoObjectTypes.cs
diff --git a/src/Umbraco.Abstractions/Models/UmbracoProperty.cs b/src/Umbraco.Core/Models/UmbracoProperty.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/UmbracoProperty.cs
rename to src/Umbraco.Core/Models/UmbracoProperty.cs
diff --git a/src/Umbraco.Abstractions/Models/UmbracoUserExtensions.cs b/src/Umbraco.Core/Models/UmbracoUserExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/UmbracoUserExtensions.cs
rename to src/Umbraco.Core/Models/UmbracoUserExtensions.cs
diff --git a/src/Umbraco.Abstractions/Models/UnLinkLoginModel.cs b/src/Umbraco.Core/Models/UnLinkLoginModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/UnLinkLoginModel.cs
rename to src/Umbraco.Core/Models/UnLinkLoginModel.cs
diff --git a/src/Umbraco.Abstractions/Models/UpgradeCheckResponse.cs b/src/Umbraco.Core/Models/UpgradeCheckResponse.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/UpgradeCheckResponse.cs
rename to src/Umbraco.Core/Models/UpgradeCheckResponse.cs
diff --git a/src/Umbraco.Abstractions/Models/UserTourStatus.cs b/src/Umbraco.Core/Models/UserTourStatus.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/UserTourStatus.cs
rename to src/Umbraco.Core/Models/UserTourStatus.cs
diff --git a/src/Umbraco.Abstractions/Models/ValidatePasswordResetCodeModel.cs b/src/Umbraco.Core/Models/ValidatePasswordResetCodeModel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ValidatePasswordResetCodeModel.cs
rename to src/Umbraco.Core/Models/ValidatePasswordResetCodeModel.cs
diff --git a/src/Umbraco.Abstractions/Models/Validation/RequiredForPersistenceAttribute.cs b/src/Umbraco.Core/Models/Validation/RequiredForPersistenceAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/Validation/RequiredForPersistenceAttribute.cs
rename to src/Umbraco.Core/Models/Validation/RequiredForPersistenceAttribute.cs
diff --git a/src/Umbraco.Abstractions/Models/ValueStorageType.cs b/src/Umbraco.Core/Models/ValueStorageType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Models/ValueStorageType.cs
rename to src/Umbraco.Core/Models/ValueStorageType.cs
diff --git a/src/Umbraco.Abstractions/MonitorLock.cs b/src/Umbraco.Core/MonitorLock.cs
similarity index 100%
rename from src/Umbraco.Abstractions/MonitorLock.cs
rename to src/Umbraco.Core/MonitorLock.cs
diff --git a/src/Umbraco.Abstractions/NameValueCollectionExtensions.cs b/src/Umbraco.Core/NameValueCollectionExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/NameValueCollectionExtensions.cs
rename to src/Umbraco.Core/NameValueCollectionExtensions.cs
diff --git a/src/Umbraco.Abstractions/NamedUdiRange.cs b/src/Umbraco.Core/NamedUdiRange.cs
similarity index 100%
rename from src/Umbraco.Abstractions/NamedUdiRange.cs
rename to src/Umbraco.Core/NamedUdiRange.cs
diff --git a/src/Umbraco.Abstractions/Net/IIpResolver.cs b/src/Umbraco.Core/Net/IIpResolver.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Net/IIpResolver.cs
rename to src/Umbraco.Core/Net/IIpResolver.cs
diff --git a/src/Umbraco.Abstractions/Net/ISessionIdResolver.cs b/src/Umbraco.Core/Net/ISessionIdResolver.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Net/ISessionIdResolver.cs
rename to src/Umbraco.Core/Net/ISessionIdResolver.cs
diff --git a/src/Umbraco.Core/Net/IUmbracoApplicationLifetime.cs b/src/Umbraco.Core/Net/IUmbracoApplicationLifetime.cs
new file mode 100644
index 0000000000..10d5b10955
--- /dev/null
+++ b/src/Umbraco.Core/Net/IUmbracoApplicationLifetime.cs
@@ -0,0 +1,14 @@
+namespace Umbraco.Net
+{
+ public interface IUmbracoApplicationLifetime
+ {
+ ///
+ /// A value indicating whether the application is restarting after the current request.
+ ///
+ bool IsRestarting { get; }
+ ///
+ /// Terminates the current application. The application restarts the next time a request is received for it.
+ ///
+ void Restart();
+ }
+}
diff --git a/src/Umbraco.Core/Net/IUserAgentProvider.cs b/src/Umbraco.Core/Net/IUserAgentProvider.cs
new file mode 100644
index 0000000000..14246ea99e
--- /dev/null
+++ b/src/Umbraco.Core/Net/IUserAgentProvider.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Net
+{
+ public interface IUserAgentProvider
+ {
+ string GetUserAgent();
+ }
+}
diff --git a/src/Umbraco.Abstractions/NetworkHelper.cs b/src/Umbraco.Core/NetworkHelper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/NetworkHelper.cs
rename to src/Umbraco.Core/NetworkHelper.cs
diff --git a/src/Umbraco.Abstractions/ObjectExtensions.cs b/src/Umbraco.Core/ObjectExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ObjectExtensions.cs
rename to src/Umbraco.Core/ObjectExtensions.cs
diff --git a/src/Umbraco.Abstractions/PackageActions/AllowDoctype.cs b/src/Umbraco.Core/PackageActions/AllowDoctype.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PackageActions/AllowDoctype.cs
rename to src/Umbraco.Core/PackageActions/AllowDoctype.cs
diff --git a/src/Umbraco.Abstractions/PackageActions/IPackageAction.cs b/src/Umbraco.Core/PackageActions/IPackageAction.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PackageActions/IPackageAction.cs
rename to src/Umbraco.Core/PackageActions/IPackageAction.cs
diff --git a/src/Umbraco.Abstractions/PackageActions/PackageActionCollection.cs b/src/Umbraco.Core/PackageActions/PackageActionCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PackageActions/PackageActionCollection.cs
rename to src/Umbraco.Core/PackageActions/PackageActionCollection.cs
diff --git a/src/Umbraco.Abstractions/PackageActions/PackageActionCollectionBuilder.cs b/src/Umbraco.Core/PackageActions/PackageActionCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PackageActions/PackageActionCollectionBuilder.cs
rename to src/Umbraco.Core/PackageActions/PackageActionCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/PackageActions/PublishRootDocument.cs b/src/Umbraco.Core/PackageActions/PublishRootDocument.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PackageActions/PublishRootDocument.cs
rename to src/Umbraco.Core/PackageActions/PublishRootDocument.cs
diff --git a/src/Umbraco.Abstractions/Packaging/CompiledPackageXmlParser.cs b/src/Umbraco.Core/Packaging/CompiledPackageXmlParser.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/CompiledPackageXmlParser.cs
rename to src/Umbraco.Core/Packaging/CompiledPackageXmlParser.cs
diff --git a/src/Umbraco.Abstractions/Packaging/ConflictingPackageData.cs b/src/Umbraco.Core/Packaging/ConflictingPackageData.cs
similarity index 97%
rename from src/Umbraco.Abstractions/Packaging/ConflictingPackageData.cs
rename to src/Umbraco.Core/Packaging/ConflictingPackageData.cs
index 7425f64727..9a976bea41 100644
--- a/src/Umbraco.Abstractions/Packaging/ConflictingPackageData.cs
+++ b/src/Umbraco.Core/Packaging/ConflictingPackageData.cs
@@ -7,7 +7,7 @@ using Umbraco.Core.Services;
namespace Umbraco.Core.Packaging
{
- public class ConflictingPackageData
+ public class ConflictingPackageData
{
private readonly IMacroService _macroService;
private readonly IFileService _fileService;
@@ -23,7 +23,7 @@ namespace Umbraco.Core.Packaging
return stylesheetNodes
.Select(n =>
{
- var xElement = n.Element("Name") ?? n.Element("name"); ;
+ var xElement = n.Element("Name") ?? n.Element("name");
if (xElement == null)
throw new FormatException("Missing \"Name\" element");
diff --git a/src/Umbraco.Abstractions/Packaging/ICreatedPackagesRepository.cs b/src/Umbraco.Core/Packaging/ICreatedPackagesRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/ICreatedPackagesRepository.cs
rename to src/Umbraco.Core/Packaging/ICreatedPackagesRepository.cs
diff --git a/src/Umbraco.Abstractions/Packaging/IInstalledPackagesRepository.cs b/src/Umbraco.Core/Packaging/IInstalledPackagesRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/IInstalledPackagesRepository.cs
rename to src/Umbraco.Core/Packaging/IInstalledPackagesRepository.cs
diff --git a/src/Umbraco.Abstractions/Packaging/IPackageActionRunner.cs b/src/Umbraco.Core/Packaging/IPackageActionRunner.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/IPackageActionRunner.cs
rename to src/Umbraco.Core/Packaging/IPackageActionRunner.cs
diff --git a/src/Umbraco.Abstractions/Packaging/IPackageDefinitionRepository.cs b/src/Umbraco.Core/Packaging/IPackageDefinitionRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/IPackageDefinitionRepository.cs
rename to src/Umbraco.Core/Packaging/IPackageDefinitionRepository.cs
diff --git a/src/Umbraco.Abstractions/Packaging/IPackageInstallation.cs b/src/Umbraco.Core/Packaging/IPackageInstallation.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/IPackageInstallation.cs
rename to src/Umbraco.Core/Packaging/IPackageInstallation.cs
diff --git a/src/Umbraco.Abstractions/Packaging/InstallationSummary.cs b/src/Umbraco.Core/Packaging/InstallationSummary.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/InstallationSummary.cs
rename to src/Umbraco.Core/Packaging/InstallationSummary.cs
diff --git a/src/Umbraco.Abstractions/Packaging/PackageActionRunner.cs b/src/Umbraco.Core/Packaging/PackageActionRunner.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/PackageActionRunner.cs
rename to src/Umbraco.Core/Packaging/PackageActionRunner.cs
diff --git a/src/Umbraco.Abstractions/Packaging/PackageDefinition.cs b/src/Umbraco.Core/Packaging/PackageDefinition.cs
similarity index 98%
rename from src/Umbraco.Abstractions/Packaging/PackageDefinition.cs
rename to src/Umbraco.Core/Packaging/PackageDefinition.cs
index 11bf26c579..29a1919a2b 100644
--- a/src/Umbraco.Abstractions/Packaging/PackageDefinition.cs
+++ b/src/Umbraco.Core/Packaging/PackageDefinition.cs
@@ -19,7 +19,7 @@ namespace Umbraco.Core.Models.Packaging
///
/// This is used only for conversions and will not 'get' a PackageDefinition from the repository with a valid ID
///
- internal static PackageDefinition FromCompiledPackage(CompiledPackage compiled)
+ public static PackageDefinition FromCompiledPackage(CompiledPackage compiled)
{
return new PackageDefinition
{
diff --git a/src/Umbraco.Abstractions/Packaging/PackageDefinitionXmlParser.cs b/src/Umbraco.Core/Packaging/PackageDefinitionXmlParser.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/PackageDefinitionXmlParser.cs
rename to src/Umbraco.Core/Packaging/PackageDefinitionXmlParser.cs
diff --git a/src/Umbraco.Abstractions/Packaging/PackageExtraction.cs b/src/Umbraco.Core/Packaging/PackageExtraction.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/PackageExtraction.cs
rename to src/Umbraco.Core/Packaging/PackageExtraction.cs
diff --git a/src/Umbraco.Abstractions/Packaging/PackageFileInstallation.cs b/src/Umbraco.Core/Packaging/PackageFileInstallation.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/PackageFileInstallation.cs
rename to src/Umbraco.Core/Packaging/PackageFileInstallation.cs
diff --git a/src/Umbraco.Abstractions/Packaging/PackageInstallType.cs b/src/Umbraco.Core/Packaging/PackageInstallType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/PackageInstallType.cs
rename to src/Umbraco.Core/Packaging/PackageInstallType.cs
diff --git a/src/Umbraco.Abstractions/Packaging/PackagesRepository.cs b/src/Umbraco.Core/Packaging/PackagesRepository.cs
similarity index 99%
rename from src/Umbraco.Abstractions/Packaging/PackagesRepository.cs
rename to src/Umbraco.Core/Packaging/PackagesRepository.cs
index a2a30f3a06..2c5b964518 100644
--- a/src/Umbraco.Abstractions/Packaging/PackagesRepository.cs
+++ b/src/Umbraco.Core/Packaging/PackagesRepository.cs
@@ -90,7 +90,7 @@ namespace Umbraco.Core.Packaging
{
var packagesXml = EnsureStorage(out _);
if (packagesXml?.Root == null)
- yield break;;
+ yield break;
foreach (var packageXml in packagesXml.Root.Elements("package"))
yield return _parser.ToPackageDefinition(packageXml);
@@ -518,7 +518,6 @@ namespace Umbraco.Core.Packaging
private XElement GetStylesheetXml(string name, bool includeProperties)
{
if (string.IsNullOrWhiteSpace(name)) throw new ArgumentException("Value cannot be null or whitespace.", nameof(name));
-;
var sts = _fileService.GetStylesheetByName(name);
if (sts == null) return null;
var stylesheetXml = new XElement("Stylesheet");
diff --git a/src/Umbraco.Abstractions/Packaging/UninstallationSummary.cs b/src/Umbraco.Core/Packaging/UninstallationSummary.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Packaging/UninstallationSummary.cs
rename to src/Umbraco.Core/Packaging/UninstallationSummary.cs
diff --git a/src/Umbraco.Web/PasswordConfigurationExtensions.cs b/src/Umbraco.Core/PasswordConfigurationExtensions.cs
similarity index 96%
rename from src/Umbraco.Web/PasswordConfigurationExtensions.cs
rename to src/Umbraco.Core/PasswordConfigurationExtensions.cs
index 1105fc31a7..be13b574ed 100644
--- a/src/Umbraco.Web/PasswordConfigurationExtensions.cs
+++ b/src/Umbraco.Core/PasswordConfigurationExtensions.cs
@@ -5,7 +5,7 @@ using Umbraco.Core.Services;
namespace Umbraco.Web
{
- internal static class PasswordConfigurationExtensions
+ public static class PasswordConfigurationExtensions
{
///
/// Returns the configuration of the membership provider used to configure change password editors
diff --git a/src/Umbraco.Abstractions/Persistence/Constants-DatabaseSchema.cs b/src/Umbraco.Core/Persistence/Constants-DatabaseSchema.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Constants-DatabaseSchema.cs
rename to src/Umbraco.Core/Persistence/Constants-DatabaseSchema.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Constants-DbProviderNames.cs b/src/Umbraco.Core/Persistence/Constants-DbProviderNames.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Constants-DbProviderNames.cs
rename to src/Umbraco.Core/Persistence/Constants-DbProviderNames.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Constants-Locks.cs b/src/Umbraco.Core/Persistence/Constants-Locks.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Constants-Locks.cs
rename to src/Umbraco.Core/Persistence/Constants-Locks.cs
diff --git a/src/Umbraco.Abstractions/Persistence/IQueryRepository.cs b/src/Umbraco.Core/Persistence/IQueryRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/IQueryRepository.cs
rename to src/Umbraco.Core/Persistence/IQueryRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/IReadRepository.cs b/src/Umbraco.Core/Persistence/IReadRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/IReadRepository.cs
rename to src/Umbraco.Core/Persistence/IReadRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/IReadWriteQueryRepository.cs b/src/Umbraco.Core/Persistence/IReadWriteQueryRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/IReadWriteQueryRepository.cs
rename to src/Umbraco.Core/Persistence/IReadWriteQueryRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/IRepository.cs b/src/Umbraco.Core/Persistence/IRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/IRepository.cs
rename to src/Umbraco.Core/Persistence/IRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/IWriteRepository.cs b/src/Umbraco.Core/Persistence/IWriteRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/IWriteRepository.cs
rename to src/Umbraco.Core/Persistence/IWriteRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Querying/IQuery.cs b/src/Umbraco.Core/Persistence/Querying/IQuery.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Querying/IQuery.cs
rename to src/Umbraco.Core/Persistence/Querying/IQuery.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Querying/StringPropertyMatchType.cs b/src/Umbraco.Core/Persistence/Querying/StringPropertyMatchType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Querying/StringPropertyMatchType.cs
rename to src/Umbraco.Core/Persistence/Querying/StringPropertyMatchType.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Querying/ValuePropertyMatchType.cs b/src/Umbraco.Core/Persistence/Querying/ValuePropertyMatchType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Querying/ValuePropertyMatchType.cs
rename to src/Umbraco.Core/Persistence/Querying/ValuePropertyMatchType.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IAuditEntryRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IAuditEntryRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IAuditEntryRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IAuditEntryRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IAuditRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IAuditRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IAuditRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IAuditRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IConsentRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IConsentRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IConsentRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IConsentRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IContentTypeCommonRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IContentTypeCommonRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IContentTypeCommonRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IContentTypeCommonRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IDataTypeContainerRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IDataTypeContainerRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IDataTypeContainerRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IDataTypeContainerRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IDictionaryRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IDictionaryRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IDictionaryRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IDictionaryRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IDocumentTypeContainerRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IDocumentTypeContainerRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IDocumentTypeContainerRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IDocumentTypeContainerRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IDomainRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IDomainRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IDomainRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IDomainRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IEntityContainerRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IEntityContainerRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IEntityContainerRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IEntityContainerRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IExternalLoginRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IExternalLoginRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IExternalLoginRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IExternalLoginRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/IInstallationRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IInstallationRepository.cs
new file mode 100644
index 0000000000..fbc7d2cfbc
--- /dev/null
+++ b/src/Umbraco.Core/Persistence/Repositories/IInstallationRepository.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Threading.Tasks;
+using Umbraco.Core.Models;
+
+namespace Umbraco.Core.Persistence.Repositories
+{
+ public interface IInstallationRepository
+ {
+ Task SaveInstallLogAsync(InstallLog installLog);
+ }
+}
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/ILanguageRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ILanguageRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/ILanguageRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/ILanguageRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IMacroRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IMacroRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IMacroRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IMacroRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IMediaTypeContainerRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IMediaTypeContainerRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IMediaTypeContainerRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IMediaTypeContainerRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IMemberGroupRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IMemberGroupRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IMemberGroupRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IMemberGroupRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/INotificationsRepository.cs b/src/Umbraco.Core/Persistence/Repositories/INotificationsRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/INotificationsRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/INotificationsRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IPartialViewMacroRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IPartialViewMacroRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IPartialViewMacroRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IPartialViewMacroRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IPartialViewRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IPartialViewRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IPartialViewRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IPartialViewRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IRedirectUrlRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IRedirectUrlRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IRedirectUrlRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IRedirectUrlRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IRelationRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IRelationRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IRelationRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IRelationRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IRelationTypeRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IRelationTypeRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IRelationTypeRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IRelationTypeRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IScriptRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IScriptRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IScriptRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IScriptRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IServerRegistrationRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IServerRegistrationRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IServerRegistrationRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IServerRegistrationRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IStylesheetRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IStylesheetRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IStylesheetRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IStylesheetRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/ITagRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ITagRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/ITagRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/ITagRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/ITemplateRepository.cs b/src/Umbraco.Core/Persistence/Repositories/ITemplateRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/ITemplateRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/ITemplateRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/IUpgradeCheckRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IUpgradeCheckRepository.cs
new file mode 100644
index 0000000000..6d56994781
--- /dev/null
+++ b/src/Umbraco.Core/Persistence/Repositories/IUpgradeCheckRepository.cs
@@ -0,0 +1,11 @@
+using System.Threading.Tasks;
+using Semver;
+using Umbraco.Core.Models;
+
+namespace Umbraco.Core.Persistence.Repositories
+{
+ public interface IUpgradeCheckRepository
+ {
+ Task CheckUpgradeAsync(SemVersion version);
+ }
+}
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IUserGroupRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IUserGroupRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IUserGroupRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IUserGroupRepository.cs
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/IUserRepository.cs b/src/Umbraco.Core/Persistence/Repositories/IUserRepository.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/IUserRepository.cs
rename to src/Umbraco.Core/Persistence/Repositories/IUserRepository.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/InstallationRepository.cs b/src/Umbraco.Core/Persistence/Repositories/InstallationRepository.cs
new file mode 100644
index 0000000000..01c91fe051
--- /dev/null
+++ b/src/Umbraco.Core/Persistence/Repositories/InstallationRepository.cs
@@ -0,0 +1,36 @@
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+using Umbraco.Core.Models;
+using Umbraco.Core.Serialization;
+
+namespace Umbraco.Core.Persistence.Repositories.Implement
+{
+ public class InstallationRepository : IInstallationRepository
+ {
+ private readonly IJsonSerializer _jsonSerializer;
+ private static HttpClient _httpClient;
+ private const string RestApiInstallUrl = "https://our.umbraco.com/umbraco/api/Installation/Install";
+
+ public InstallationRepository(IJsonSerializer jsonSerializer)
+ {
+ _jsonSerializer = jsonSerializer;
+ }
+
+ public async Task SaveInstallLogAsync(InstallLog installLog)
+ {
+ try
+ {
+ if (_httpClient == null)
+ _httpClient = new HttpClient();
+
+ var content = new StringContent(_jsonSerializer.Serialize(installLog), Encoding.UTF8, "application/json");
+
+ await _httpClient.PostAsync(RestApiInstallUrl, content);
+ }
+ // this occurs if the server for Our is down or cannot be reached
+ catch (HttpRequestException)
+ { }
+ }
+ }
+}
diff --git a/src/Umbraco.Abstractions/Persistence/Repositories/RepositoryCacheKeys.cs b/src/Umbraco.Core/Persistence/Repositories/RepositoryCacheKeys.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/Repositories/RepositoryCacheKeys.cs
rename to src/Umbraco.Core/Persistence/Repositories/RepositoryCacheKeys.cs
diff --git a/src/Umbraco.Core/Persistence/Repositories/UpgradeCheckRepository.cs b/src/Umbraco.Core/Persistence/Repositories/UpgradeCheckRepository.cs
new file mode 100644
index 0000000000..b20c6d26b9
--- /dev/null
+++ b/src/Umbraco.Core/Persistence/Repositories/UpgradeCheckRepository.cs
@@ -0,0 +1,58 @@
+using System.Net.Http;
+using System.Text;
+using System.Threading.Tasks;
+using Semver;
+using Umbraco.Core.Models;
+using Umbraco.Core.Serialization;
+
+namespace Umbraco.Core.Persistence.Repositories.Implement
+{
+ public class UpgradeCheckRepository : IUpgradeCheckRepository
+ {
+ private readonly IJsonSerializer _jsonSerializer;
+ private static HttpClient _httpClient;
+ private const string RestApiUpgradeChecklUrl = "https://our.umbraco.com/umbraco/api/UpgradeCheck/CheckUpgrade";
+
+ public UpgradeCheckRepository(IJsonSerializer jsonSerializer)
+ {
+ _jsonSerializer = jsonSerializer;
+ }
+
+ public async Task CheckUpgradeAsync(SemVersion version)
+ {
+ try
+ {
+ if (_httpClient == null)
+ _httpClient = new HttpClient();
+
+ var content = new StringContent(_jsonSerializer.Serialize(new CheckUpgradeDto(version)), Encoding.UTF8, "application/json");
+
+ var task = await _httpClient.PostAsync(RestApiUpgradeChecklUrl,content);
+ var json = await task.Content.ReadAsStringAsync();
+ var result = _jsonSerializer.Deserialize(json);
+
+ return result ?? new UpgradeResult("None", "", "");
+ }
+ catch (HttpRequestException)
+ {
+ // this occurs if the server for Our is down or cannot be reached
+ return new UpgradeResult("None", "", "");
+ }
+ }
+ private class CheckUpgradeDto
+ {
+ public CheckUpgradeDto(SemVersion version)
+ {
+ VersionMajor = version.Major;
+ VersionMinor = version.Minor;
+ VersionPatch = version.Patch;
+ VersionComment = version.Prerelease;
+ }
+
+ public int VersionMajor { get; }
+ public int VersionMinor { get; }
+ public int VersionPatch { get; }
+ public string VersionComment { get; }
+ }
+ }
+}
diff --git a/src/Umbraco.Abstractions/Persistence/SqlExtensionsStatics.cs b/src/Umbraco.Core/Persistence/SqlExtensionsStatics.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Persistence/SqlExtensionsStatics.cs
rename to src/Umbraco.Core/Persistence/SqlExtensionsStatics.cs
diff --git a/src/Umbraco.Abstractions/Properties/AssemblyInfo.cs b/src/Umbraco.Core/Properties/AssemblyInfo.cs
similarity index 96%
rename from src/Umbraco.Abstractions/Properties/AssemblyInfo.cs
rename to src/Umbraco.Core/Properties/AssemblyInfo.cs
index 6d5520f975..f129ca7731 100644
--- a/src/Umbraco.Abstractions/Properties/AssemblyInfo.cs
+++ b/src/Umbraco.Core/Properties/AssemblyInfo.cs
@@ -8,7 +8,6 @@ using System.Runtime.InteropServices;
// Umbraco Cms
[assembly: InternalsVisibleTo("Umbraco.Web")]
[assembly: InternalsVisibleTo("Umbraco.Web.UI")]
-[assembly: InternalsVisibleTo("Umbraco.Examine")]
[assembly: InternalsVisibleTo("Umbraco.ModelsBuilder.Embedded")]
[assembly: InternalsVisibleTo("Umbraco.Tests")]
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ColorPickerConfiguration.cs b/src/Umbraco.Core/PropertyEditors/ColorPickerConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ColorPickerConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/ColorPickerConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ConfigurationField.cs b/src/Umbraco.Core/PropertyEditors/ConfigurationField.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ConfigurationField.cs
rename to src/Umbraco.Core/PropertyEditors/ConfigurationField.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ConfigurationFieldAttribute.cs b/src/Umbraco.Core/PropertyEditors/ConfigurationFieldAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ConfigurationFieldAttribute.cs
rename to src/Umbraco.Core/PropertyEditors/ConfigurationFieldAttribute.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ContentPickerConfiguration.cs b/src/Umbraco.Core/PropertyEditors/ContentPickerConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ContentPickerConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/ContentPickerConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/DataEditorAttribute.cs b/src/Umbraco.Core/PropertyEditors/DataEditorAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/DataEditorAttribute.cs
rename to src/Umbraco.Core/PropertyEditors/DataEditorAttribute.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/DataEditorCollection.cs b/src/Umbraco.Core/PropertyEditors/DataEditorCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/DataEditorCollection.cs
rename to src/Umbraco.Core/PropertyEditors/DataEditorCollection.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/DataEditorCollectionBuilder.cs b/src/Umbraco.Core/PropertyEditors/DataEditorCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/DataEditorCollectionBuilder.cs
rename to src/Umbraco.Core/PropertyEditors/DataEditorCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/DateTimeConfiguration.cs b/src/Umbraco.Core/PropertyEditors/DateTimeConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/DateTimeConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/DateTimeConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/DefaultPropertyIndexValueFactory.cs b/src/Umbraco.Core/PropertyEditors/DefaultPropertyIndexValueFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/DefaultPropertyIndexValueFactory.cs
rename to src/Umbraco.Core/PropertyEditors/DefaultPropertyIndexValueFactory.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/DefaultPropertyValueConverterAttribute.cs b/src/Umbraco.Core/PropertyEditors/DefaultPropertyValueConverterAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/DefaultPropertyValueConverterAttribute.cs
rename to src/Umbraco.Core/PropertyEditors/DefaultPropertyValueConverterAttribute.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/DropDownFlexibleConfiguration.cs b/src/Umbraco.Core/PropertyEditors/DropDownFlexibleConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/DropDownFlexibleConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/DropDownFlexibleConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/EditorType.cs b/src/Umbraco.Core/PropertyEditors/EditorType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/EditorType.cs
rename to src/Umbraco.Core/PropertyEditors/EditorType.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/EmailAddressConfiguration.cs b/src/Umbraco.Core/PropertyEditors/EmailAddressConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/EmailAddressConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/EmailAddressConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/GridEditor.cs b/src/Umbraco.Core/PropertyEditors/GridEditor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/GridEditor.cs
rename to src/Umbraco.Core/PropertyEditors/GridEditor.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/IConfigurationEditor.cs b/src/Umbraco.Core/PropertyEditors/IConfigurationEditor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/IConfigurationEditor.cs
rename to src/Umbraco.Core/PropertyEditors/IConfigurationEditor.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/IConfigureValueType.cs b/src/Umbraco.Core/PropertyEditors/IConfigureValueType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/IConfigureValueType.cs
rename to src/Umbraco.Core/PropertyEditors/IConfigureValueType.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/IDataEditor.cs b/src/Umbraco.Core/PropertyEditors/IDataEditor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/IDataEditor.cs
rename to src/Umbraco.Core/PropertyEditors/IDataEditor.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/IIgnoreUserStartNodesConfig.cs b/src/Umbraco.Core/PropertyEditors/IIgnoreUserStartNodesConfig.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/IIgnoreUserStartNodesConfig.cs
rename to src/Umbraco.Core/PropertyEditors/IIgnoreUserStartNodesConfig.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/IManifestValueValidator.cs b/src/Umbraco.Core/PropertyEditors/IManifestValueValidator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/IManifestValueValidator.cs
rename to src/Umbraco.Core/PropertyEditors/IManifestValueValidator.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/IPropertyIndexValueFactory.cs b/src/Umbraco.Core/PropertyEditors/IPropertyIndexValueFactory.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/IPropertyIndexValueFactory.cs
rename to src/Umbraco.Core/PropertyEditors/IPropertyIndexValueFactory.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/IPropertyValueConverter.cs b/src/Umbraco.Core/PropertyEditors/IPropertyValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/IPropertyValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/IPropertyValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/IValueFormatValidator.cs b/src/Umbraco.Core/PropertyEditors/IValueFormatValidator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/IValueFormatValidator.cs
rename to src/Umbraco.Core/PropertyEditors/IValueFormatValidator.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/IValueRequiredValidator.cs b/src/Umbraco.Core/PropertyEditors/IValueRequiredValidator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/IValueRequiredValidator.cs
rename to src/Umbraco.Core/PropertyEditors/IValueRequiredValidator.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/IValueValidator.cs b/src/Umbraco.Core/PropertyEditors/IValueValidator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/IValueValidator.cs
rename to src/Umbraco.Core/PropertyEditors/IValueValidator.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ImageCropperConfiguration.cs b/src/Umbraco.Core/PropertyEditors/ImageCropperConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ImageCropperConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/ImageCropperConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/LabelConfiguration.cs b/src/Umbraco.Core/PropertyEditors/LabelConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/LabelConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/LabelConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ManifestValueValidatorCollection.cs b/src/Umbraco.Core/PropertyEditors/ManifestValueValidatorCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ManifestValueValidatorCollection.cs
rename to src/Umbraco.Core/PropertyEditors/ManifestValueValidatorCollection.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ManifestValueValidatorCollectionBuilder.cs b/src/Umbraco.Core/PropertyEditors/ManifestValueValidatorCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ManifestValueValidatorCollectionBuilder.cs
rename to src/Umbraco.Core/PropertyEditors/ManifestValueValidatorCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/MarkdownConfiguration.cs b/src/Umbraco.Core/PropertyEditors/MarkdownConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/MarkdownConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/MarkdownConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/MediaPickerConfiguration.cs b/src/Umbraco.Core/PropertyEditors/MediaPickerConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/MediaPickerConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/MediaPickerConfiguration.cs
diff --git a/src/Umbraco.Core/PropertyEditors/MediaUrlGeneratorCollection.cs b/src/Umbraco.Core/PropertyEditors/MediaUrlGeneratorCollection.cs
new file mode 100644
index 0000000000..0374ca5cd2
--- /dev/null
+++ b/src/Umbraco.Core/PropertyEditors/MediaUrlGeneratorCollection.cs
@@ -0,0 +1,28 @@
+using System.Collections.Generic;
+using Umbraco.Core.Composing;
+
+namespace Umbraco.Core.PropertyEditors
+{
+ public class MediaUrlGeneratorCollection : BuilderCollectionBase
+ {
+ public MediaUrlGeneratorCollection(IEnumerable items) : base(items)
+ {
+ }
+
+ public bool TryGetMediaPath(string alias, object value, out string mediaPath)
+ {
+ foreach(var generator in this)
+ {
+ if (generator.TryGetMediaPath(alias, value, out var mp))
+ {
+ mediaPath = mp;
+ return true;
+ }
+ }
+ mediaPath = null;
+ return false;
+ }
+
+
+ }
+}
diff --git a/src/Umbraco.Core/PropertyEditors/MediaUrlGeneratorCollectionBuilder.cs b/src/Umbraco.Core/PropertyEditors/MediaUrlGeneratorCollectionBuilder.cs
new file mode 100644
index 0000000000..40a68fd4e3
--- /dev/null
+++ b/src/Umbraco.Core/PropertyEditors/MediaUrlGeneratorCollectionBuilder.cs
@@ -0,0 +1,9 @@
+using Umbraco.Core.Composing;
+
+namespace Umbraco.Core.PropertyEditors
+{
+ public class MediaUrlGeneratorCollectionBuilder : LazyCollectionBuilderBase
+ {
+ protected override MediaUrlGeneratorCollectionBuilder This => this;
+ }
+}
diff --git a/src/Umbraco.Abstractions/PropertyEditors/MultiUrlPickerConfiguration.cs b/src/Umbraco.Core/PropertyEditors/MultiUrlPickerConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/MultiUrlPickerConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/MultiUrlPickerConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/MultipleTextStringConfiguration.cs b/src/Umbraco.Core/PropertyEditors/MultipleTextStringConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/MultipleTextStringConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/MultipleTextStringConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ParameterEditorCollection.cs b/src/Umbraco.Core/PropertyEditors/ParameterEditorCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ParameterEditorCollection.cs
rename to src/Umbraco.Core/PropertyEditors/ParameterEditorCollection.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/PropertyCacheLevel.cs b/src/Umbraco.Core/PropertyEditors/PropertyCacheLevel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/PropertyCacheLevel.cs
rename to src/Umbraco.Core/PropertyEditors/PropertyCacheLevel.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/PropertyEditorCollection.cs b/src/Umbraco.Core/PropertyEditors/PropertyEditorCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/PropertyEditorCollection.cs
rename to src/Umbraco.Core/PropertyEditors/PropertyEditorCollection.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/PropertyEditorTagsExtensions.cs b/src/Umbraco.Core/PropertyEditors/PropertyEditorTagsExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/PropertyEditorTagsExtensions.cs
rename to src/Umbraco.Core/PropertyEditors/PropertyEditorTagsExtensions.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/PropertyValueConverterBase.cs b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/PropertyValueConverterBase.cs
rename to src/Umbraco.Core/PropertyEditors/PropertyValueConverterBase.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/PropertyValueConverterCollection.cs b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/PropertyValueConverterCollection.cs
rename to src/Umbraco.Core/PropertyEditors/PropertyValueConverterCollection.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/PropertyValueConverterCollectionBuilder.cs b/src/Umbraco.Core/PropertyEditors/PropertyValueConverterCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/PropertyValueConverterCollectionBuilder.cs
rename to src/Umbraco.Core/PropertyEditors/PropertyValueConverterCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/PropertyValueLevel.cs b/src/Umbraco.Core/PropertyEditors/PropertyValueLevel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/PropertyValueLevel.cs
rename to src/Umbraco.Core/PropertyEditors/PropertyValueLevel.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/SliderConfiguration.cs b/src/Umbraco.Core/PropertyEditors/SliderConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/SliderConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/SliderConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/TagConfiguration.cs b/src/Umbraco.Core/PropertyEditors/TagConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/TagConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/TagConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/TagsPropertyEditorAttribute.cs b/src/Umbraco.Core/PropertyEditors/TagsPropertyEditorAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/TagsPropertyEditorAttribute.cs
rename to src/Umbraco.Core/PropertyEditors/TagsPropertyEditorAttribute.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/TextAreaConfiguration.cs b/src/Umbraco.Core/PropertyEditors/TextAreaConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/TextAreaConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/TextAreaConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/TextboxConfiguration.cs b/src/Umbraco.Core/PropertyEditors/TextboxConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/TextboxConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/TextboxConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/TrueFalseConfiguration.cs b/src/Umbraco.Core/PropertyEditors/TrueFalseConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/TrueFalseConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/TrueFalseConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/Validators/DateTimeValidator.cs b/src/Umbraco.Core/PropertyEditors/Validators/DateTimeValidator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/Validators/DateTimeValidator.cs
rename to src/Umbraco.Core/PropertyEditors/Validators/DateTimeValidator.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/Validators/DecimalValidator.cs b/src/Umbraco.Core/PropertyEditors/Validators/DecimalValidator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/Validators/DecimalValidator.cs
rename to src/Umbraco.Core/PropertyEditors/Validators/DecimalValidator.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/Validators/DelimitedValueValidator.cs b/src/Umbraco.Core/PropertyEditors/Validators/DelimitedValueValidator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/Validators/DelimitedValueValidator.cs
rename to src/Umbraco.Core/PropertyEditors/Validators/DelimitedValueValidator.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/Validators/EmailValidator.cs b/src/Umbraco.Core/PropertyEditors/Validators/EmailValidator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/Validators/EmailValidator.cs
rename to src/Umbraco.Core/PropertyEditors/Validators/EmailValidator.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/Validators/IntegerValidator.cs b/src/Umbraco.Core/PropertyEditors/Validators/IntegerValidator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/Validators/IntegerValidator.cs
rename to src/Umbraco.Core/PropertyEditors/Validators/IntegerValidator.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/Validators/RegexValidator.cs b/src/Umbraco.Core/PropertyEditors/Validators/RegexValidator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/Validators/RegexValidator.cs
rename to src/Umbraco.Core/PropertyEditors/Validators/RegexValidator.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/Validators/RequiredValidator.cs b/src/Umbraco.Core/PropertyEditors/Validators/RequiredValidator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/Validators/RequiredValidator.cs
rename to src/Umbraco.Core/PropertyEditors/Validators/RequiredValidator.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/CheckboxListValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/CheckboxListValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/CheckboxListValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/CheckboxListValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/DatePickerValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/DatePickerValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/DatePickerValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/DatePickerValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/DecimalValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/DecimalValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/DecimalValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/DecimalValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/EmailAddressValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/EmailAddressValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/EmailAddressValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/EmailAddressValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/IntegerValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/IntegerValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/IntegerValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/IntegerValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/MemberGroupPickerValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/MemberGroupPickerValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/MemberGroupPickerValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/MemberGroupPickerValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/MultipleTextStringValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/MultipleTextStringValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/MultipleTextStringValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/MultipleTextStringValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/MustBeStringValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/MustBeStringValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/MustBeStringValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/MustBeStringValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/RadioButtonListValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/RadioButtonListValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/RadioButtonListValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/RadioButtonListValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/SliderValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/SliderValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/SliderValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/SliderValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/TagsValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/TagsValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/TagsValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/TagsValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/TextStringValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/TextStringValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/TextStringValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/TextStringValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/UploadPropertyConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/UploadPropertyConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/UploadPropertyConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/UploadPropertyConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueConverters/YesNoValueConverter.cs b/src/Umbraco.Core/PropertyEditors/ValueConverters/YesNoValueConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueConverters/YesNoValueConverter.cs
rename to src/Umbraco.Core/PropertyEditors/ValueConverters/YesNoValueConverter.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueListConfiguration.cs b/src/Umbraco.Core/PropertyEditors/ValueListConfiguration.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueListConfiguration.cs
rename to src/Umbraco.Core/PropertyEditors/ValueListConfiguration.cs
diff --git a/src/Umbraco.Abstractions/PropertyEditors/ValueTypes.cs b/src/Umbraco.Core/PropertyEditors/ValueTypes.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PropertyEditors/ValueTypes.cs
rename to src/Umbraco.Core/PropertyEditors/ValueTypes.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/DefaultCultureAccessor.cs b/src/Umbraco.Core/PublishedCache/DefaultCultureAccessor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/DefaultCultureAccessor.cs
rename to src/Umbraco.Core/PublishedCache/DefaultCultureAccessor.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/IDefaultCultureAccessor.cs b/src/Umbraco.Core/PublishedCache/IDefaultCultureAccessor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/IDefaultCultureAccessor.cs
rename to src/Umbraco.Core/PublishedCache/IDefaultCultureAccessor.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/IDomainCache.cs b/src/Umbraco.Core/PublishedCache/IDomainCache.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/IDomainCache.cs
rename to src/Umbraco.Core/PublishedCache/IDomainCache.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/IPublishedCache.cs b/src/Umbraco.Core/PublishedCache/IPublishedCache.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/IPublishedCache.cs
rename to src/Umbraco.Core/PublishedCache/IPublishedCache.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/IPublishedContentCache.cs b/src/Umbraco.Core/PublishedCache/IPublishedContentCache.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/IPublishedContentCache.cs
rename to src/Umbraco.Core/PublishedCache/IPublishedContentCache.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/IPublishedMediaCache.cs b/src/Umbraco.Core/PublishedCache/IPublishedMediaCache.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/IPublishedMediaCache.cs
rename to src/Umbraco.Core/PublishedCache/IPublishedMediaCache.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/IPublishedMemberCache.cs b/src/Umbraco.Core/PublishedCache/IPublishedMemberCache.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/IPublishedMemberCache.cs
rename to src/Umbraco.Core/PublishedCache/IPublishedMemberCache.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/IPublishedSnapshot.cs b/src/Umbraco.Core/PublishedCache/IPublishedSnapshot.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/IPublishedSnapshot.cs
rename to src/Umbraco.Core/PublishedCache/IPublishedSnapshot.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/IPublishedSnapshotAccessor.cs b/src/Umbraco.Core/PublishedCache/IPublishedSnapshotAccessor.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/IPublishedSnapshotAccessor.cs
rename to src/Umbraco.Core/PublishedCache/IPublishedSnapshotAccessor.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/IPublishedSnapshotService.cs b/src/Umbraco.Core/PublishedCache/IPublishedSnapshotService.cs
similarity index 99%
rename from src/Umbraco.Abstractions/PublishedCache/IPublishedSnapshotService.cs
rename to src/Umbraco.Core/PublishedCache/IPublishedSnapshotService.cs
index a1894c902c..b23c8ae10f 100644
--- a/src/Umbraco.Abstractions/PublishedCache/IPublishedSnapshotService.cs
+++ b/src/Umbraco.Core/PublishedCache/IPublishedSnapshotService.cs
@@ -167,7 +167,7 @@ namespace Umbraco.Web.PublishedCache
string StatusUrl { get; }
- #endregion
+ #endregion
void Collect();
}
diff --git a/src/Umbraco.Abstractions/PublishedCache/PublishedCacheBase.cs b/src/Umbraco.Core/PublishedCache/PublishedCacheBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/PublishedCacheBase.cs
rename to src/Umbraco.Core/PublishedCache/PublishedCacheBase.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/PublishedElement.cs b/src/Umbraco.Core/PublishedCache/PublishedElement.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/PublishedElement.cs
rename to src/Umbraco.Core/PublishedCache/PublishedElement.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/PublishedElementPropertyBase.cs b/src/Umbraco.Core/PublishedCache/PublishedElementPropertyBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/PublishedElementPropertyBase.cs
rename to src/Umbraco.Core/PublishedCache/PublishedElementPropertyBase.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/PublishedMember.cs b/src/Umbraco.Core/PublishedCache/PublishedMember.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/PublishedMember.cs
rename to src/Umbraco.Core/PublishedCache/PublishedMember.cs
diff --git a/src/Umbraco.Abstractions/PublishedCache/PublishedSnapshotServiceBase.cs b/src/Umbraco.Core/PublishedCache/PublishedSnapshotServiceBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedCache/PublishedSnapshotServiceBase.cs
rename to src/Umbraco.Core/PublishedCache/PublishedSnapshotServiceBase.cs
diff --git a/src/Umbraco.Web/PublishedCache/UmbracoContextPublishedSnapshotAccessor.cs b/src/Umbraco.Core/PublishedCache/UmbracoContextPublishedSnapshotAccessor.cs
similarity index 99%
rename from src/Umbraco.Web/PublishedCache/UmbracoContextPublishedSnapshotAccessor.cs
rename to src/Umbraco.Core/PublishedCache/UmbracoContextPublishedSnapshotAccessor.cs
index 76936dd2cb..7e0ebc6f13 100644
--- a/src/Umbraco.Web/PublishedCache/UmbracoContextPublishedSnapshotAccessor.cs
+++ b/src/Umbraco.Core/PublishedCache/UmbracoContextPublishedSnapshotAccessor.cs
@@ -1,5 +1,4 @@
using System;
-
namespace Umbraco.Web.PublishedCache
{
public class UmbracoContextPublishedSnapshotAccessor : IPublishedSnapshotAccessor
diff --git a/src/Umbraco.Abstractions/PublishedContentExtensions.cs b/src/Umbraco.Core/PublishedContentExtensions.cs
similarity index 96%
rename from src/Umbraco.Abstractions/PublishedContentExtensions.cs
rename to src/Umbraco.Core/PublishedContentExtensions.cs
index aa432459dd..84ee8c314b 100644
--- a/src/Umbraco.Abstractions/PublishedContentExtensions.cs
+++ b/src/Umbraco.Core/PublishedContentExtensions.cs
@@ -1,9 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
+using Umbraco.Composing;
+using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.Services;
+using Umbraco.Web;
using Umbraco.Web.PublishedCache;
+using Umbraco.Web.Routing;
namespace Umbraco.Core
{
@@ -144,6 +148,14 @@ namespace Umbraco.Core
return template == null ? string.Empty : template.Alias;
}
+ public static bool IsAllowedTemplate(this IPublishedContent content, IContentTypeService contentTypeService,
+ IUmbracoSettingsSection umbracoSettingsSection, int templateId)
+ {
+ return content.IsAllowedTemplate(contentTypeService,
+ umbracoSettingsSection.WebRouting.DisableAlternativeTemplates,
+ umbracoSettingsSection.WebRouting.ValidateAlternativeTemplates, templateId);
+ }
+
public static bool IsAllowedTemplate(this IPublishedContent content, IContentTypeService contentTypeService, bool disableAlternativeTemplates, bool validateAlternativeTemplates, int templateId)
{
if (disableAlternativeTemplates)
@@ -1075,5 +1087,39 @@ namespace Umbraco.Core
}
#endregion
+
+ #region Url
+
+ ///
+ /// Gets the url of the content item.
+ ///
+ ///
+ /// If the content item is a document, then this method returns the url of the
+ /// document. If it is a media, then this methods return the media url for the
+ /// 'umbracoFile' property. Use the MediaUrl() method to get the media url for other
+ /// properties.
+ /// The value of this property is contextual. It depends on the 'current' request uri,
+ /// if any. In addition, when the content type is multi-lingual, this is the url for the
+ /// specified culture. Otherwise, it is the invariant url.
+ ///
+ public static string Url(this IPublishedContent content, IPublishedUrlProvider publishedUrlProvider, string culture = null, UrlMode mode = UrlMode.Default)
+ {
+ if (publishedUrlProvider == null)
+ throw new InvalidOperationException("Cannot resolve a Url when Current.UmbracoContext.UrlProvider is null.");
+
+ switch (content.ContentType.ItemType)
+ {
+ case PublishedItemType.Content:
+ return publishedUrlProvider.GetUrl(content, mode, culture);
+
+ case PublishedItemType.Media:
+ return publishedUrlProvider.GetMediaUrl(content, mode, culture, Constants.Conventions.Media.File);
+
+ default:
+ throw new NotSupportedException();
+ }
+ }
+
+ #endregion
}
}
diff --git a/src/Umbraco.Abstractions/PublishedElementExtensions.cs b/src/Umbraco.Core/PublishedElementExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedElementExtensions.cs
rename to src/Umbraco.Core/PublishedElementExtensions.cs
diff --git a/src/Umbraco.Abstractions/PublishedModelFactoryExtensions.cs b/src/Umbraco.Core/PublishedModelFactoryExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedModelFactoryExtensions.cs
rename to src/Umbraco.Core/PublishedModelFactoryExtensions.cs
diff --git a/src/Umbraco.Abstractions/PublishedPropertyExtension.cs b/src/Umbraco.Core/PublishedPropertyExtension.cs
similarity index 100%
rename from src/Umbraco.Abstractions/PublishedPropertyExtension.cs
rename to src/Umbraco.Core/PublishedPropertyExtension.cs
diff --git a/src/Umbraco.Abstractions/ReadLock.cs b/src/Umbraco.Core/ReadLock.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ReadLock.cs
rename to src/Umbraco.Core/ReadLock.cs
diff --git a/src/Umbraco.Abstractions/ReflectionUtilities.cs b/src/Umbraco.Core/ReflectionUtilities.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ReflectionUtilities.cs
rename to src/Umbraco.Core/ReflectionUtilities.cs
diff --git a/src/Umbraco.Abstractions/RegisterExtensions.cs b/src/Umbraco.Core/RegisterExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/RegisterExtensions.cs
rename to src/Umbraco.Core/RegisterExtensions.cs
diff --git a/src/Umbraco.Core/Request/IRequestAccessor.cs b/src/Umbraco.Core/Request/IRequestAccessor.cs
new file mode 100644
index 0000000000..63a8de6b1e
--- /dev/null
+++ b/src/Umbraco.Core/Request/IRequestAccessor.cs
@@ -0,0 +1,13 @@
+using System;
+using Umbraco.Web.Routing;
+
+namespace Umbraco.Core.Request
+{
+ public interface IRequestAccessor
+ {
+ string GetRequestValue(string name);
+ string GetQueryStringValue(string culture);
+ event EventHandler EndRequest;
+ event EventHandler RouteAttempt;
+ }
+}
diff --git a/src/Umbraco.Web/Routing/AliasUrlProvider.cs b/src/Umbraco.Core/Routing/AliasUrlProvider.cs
similarity index 79%
rename from src/Umbraco.Web/Routing/AliasUrlProvider.cs
rename to src/Umbraco.Core/Routing/AliasUrlProvider.cs
index f84ac608d2..c9cc3d5156 100644
--- a/src/Umbraco.Web/Routing/AliasUrlProvider.cs
+++ b/src/Umbraco.Core/Routing/AliasUrlProvider.cs
@@ -16,12 +16,18 @@ namespace Umbraco.Web.Routing
private readonly IGlobalSettings _globalSettings;
private readonly IRequestHandlerSection _requestConfig;
private readonly ISiteDomainHelper _siteDomainHelper;
+ private readonly IUmbracoContextAccessor _umbracoContextAccessor;
+ private readonly UriUtility _uriUtility;
+ private readonly IPublishedValueFallback _publishedValueFallback;
- public AliasUrlProvider(IGlobalSettings globalSettings, IRequestHandlerSection requestConfig, ISiteDomainHelper siteDomainHelper)
+ public AliasUrlProvider(IGlobalSettings globalSettings, IRequestHandlerSection requestConfig, ISiteDomainHelper siteDomainHelper, UriUtility uriUtility, IPublishedValueFallback publishedValueFallback, IUmbracoContextAccessor umbracoContextAccessor)
{
_globalSettings = globalSettings;
_requestConfig = requestConfig;
_siteDomainHelper = siteDomainHelper;
+ _uriUtility = uriUtility;
+ _publishedValueFallback = publishedValueFallback;
+ _umbracoContextAccessor = umbracoContextAccessor;
}
// note - at the moment we seem to accept pretty much anything as an alias
@@ -31,7 +37,7 @@ namespace Umbraco.Web.Routing
#region GetUrl
///
- public UrlInfo GetUrl(UmbracoContext umbracoContext, IPublishedContent content, UrlMode mode, string culture, Uri current)
+ public UrlInfo GetUrl(IPublishedContent content, UrlMode mode, string culture, Uri current)
{
return null; // we have nothing to say
}
@@ -51,8 +57,9 @@ namespace Umbraco.Web.Routing
/// Other urls are those that GetUrl would not return in the current context, but would be valid
/// urls for the node in other contexts (different domain for current request, umbracoUrlAlias...).
///
- public IEnumerable GetOtherUrls(UmbracoContext umbracoContext, int id, Uri current)
+ public IEnumerable GetOtherUrls(int id, Uri current)
{
+ var umbracoContext = _umbracoContextAccessor.UmbracoContext;
var node = umbracoContext.Content.GetById(id);
if (node == null)
yield break;
@@ -83,7 +90,7 @@ namespace Umbraco.Web.Routing
if (varies)
yield break;
- var umbracoUrlName = node.Value(Constants.Conventions.Content.UrlAlias);
+ var umbracoUrlName = node.Value(_publishedValueFallback, Constants.Conventions.Content.UrlAlias);
var aliases = umbracoUrlName?.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
if (aliases == null || aliases.Any() == false)
@@ -93,7 +100,7 @@ namespace Umbraco.Web.Routing
{
var path = "/" + alias;
var uri = new Uri(path, UriKind.Relative);
- yield return UrlInfo.Url(UriUtility.UriFromUmbraco(uri, _globalSettings, _requestConfig).ToString());
+ yield return UrlInfo.Url(_uriUtility.UriFromUmbraco(uri, _globalSettings, _requestConfig).ToString());
}
}
else
@@ -108,8 +115,8 @@ namespace Umbraco.Web.Routing
if (varies && !node.HasCulture(domainUri.Culture.Name)) continue;
var umbracoUrlName = varies
- ? node.Value(Constants.Conventions.Content.UrlAlias, culture: domainUri.Culture.Name)
- : node.Value(Constants.Conventions.Content.UrlAlias);
+ ? node.Value(_publishedValueFallback,Constants.Conventions.Content.UrlAlias, culture: domainUri.Culture.Name)
+ : node.Value(_publishedValueFallback, Constants.Conventions.Content.UrlAlias);
var aliases = umbracoUrlName?.Split(new [] {','}, StringSplitOptions.RemoveEmptyEntries);
@@ -120,7 +127,7 @@ namespace Umbraco.Web.Routing
{
var path = "/" + alias;
var uri = new Uri(CombinePaths(domainUri.Uri.GetLeftPart(UriPartial.Path), path));
- yield return UrlInfo.Url(UriUtility.UriFromUmbraco(uri, _globalSettings, _requestConfig).ToString(), domainUri.Culture.Name);
+ yield return UrlInfo.Url(_uriUtility.UriFromUmbraco(uri, _globalSettings, _requestConfig).ToString(), domainUri.Culture.Name);
}
}
}
diff --git a/src/Umbraco.Web/Routing/ContentFinderByIdPath.cs b/src/Umbraco.Core/Routing/ContentFinderByIdPath.cs
similarity index 86%
rename from src/Umbraco.Web/Routing/ContentFinderByIdPath.cs
rename to src/Umbraco.Core/Routing/ContentFinderByIdPath.cs
index b339198928..c4bfd5a697 100644
--- a/src/Umbraco.Web/Routing/ContentFinderByIdPath.cs
+++ b/src/Umbraco.Core/Routing/ContentFinderByIdPath.cs
@@ -4,6 +4,7 @@ using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Models.PublishedContent;
using System.Globalization;
+using Umbraco.Core.Request;
namespace Umbraco.Web.Routing
{
@@ -16,12 +17,14 @@ namespace Umbraco.Web.Routing
public class ContentFinderByIdPath : IContentFinder
{
private readonly ILogger _logger;
+ private readonly IRequestAccessor _requestAccessor;
private readonly IWebRoutingSection _webRoutingSection;
-
- public ContentFinderByIdPath(IWebRoutingSection webRoutingSection, ILogger logger)
+
+ public ContentFinderByIdPath(IWebRoutingSection webRoutingSection, ILogger logger, IRequestAccessor requestAccessor)
{
_webRoutingSection = webRoutingSection ?? throw new System.ArgumentNullException(nameof(webRoutingSection));
_logger = logger ?? throw new System.ArgumentNullException(nameof(logger));
+ _requestAccessor = requestAccessor;
}
///
@@ -29,7 +32,7 @@ namespace Umbraco.Web.Routing
///
/// The PublishedRequest.
/// A value indicating whether an Umbraco document was found and assigned.
- public bool TryFindContent(PublishedRequest frequest)
+ public bool TryFindContent(IPublishedRequest frequest)
{
if (frequest.UmbracoContext != null && frequest.UmbracoContext.InPreviewMode == false
@@ -54,11 +57,14 @@ namespace Umbraco.Web.Routing
if (node != null)
{
+
+ var cultureFromQuerystring = _requestAccessor.GetQueryStringValue("culture");
+
//if we have a node, check if we have a culture in the query string
- if (frequest.UmbracoContext.HttpContext.Request.QueryString.ContainsKey("culture"))
+ if (!string.IsNullOrEmpty(cultureFromQuerystring))
{
//we're assuming it will match a culture, if an invalid one is passed in, an exception will throw (there is no TryGetCultureInfo method), i think this is ok though
- frequest.Culture = CultureInfo.GetCultureInfo(frequest.UmbracoContext.HttpContext.Request.QueryString["culture"]);
+ frequest.Culture = CultureInfo.GetCultureInfo(cultureFromQuerystring);
}
frequest.PublishedContent = node;
diff --git a/src/Umbraco.Web/Routing/ContentFinderByPageIdQuery.cs b/src/Umbraco.Core/Routing/ContentFinderByPageIdQuery.cs
similarity index 62%
rename from src/Umbraco.Web/Routing/ContentFinderByPageIdQuery.cs
rename to src/Umbraco.Core/Routing/ContentFinderByPageIdQuery.cs
index 70a920f6f0..6a9adda5f8 100644
--- a/src/Umbraco.Web/Routing/ContentFinderByPageIdQuery.cs
+++ b/src/Umbraco.Core/Routing/ContentFinderByPageIdQuery.cs
@@ -1,4 +1,6 @@
-namespace Umbraco.Web.Routing
+using Umbraco.Core.Request;
+
+namespace Umbraco.Web.Routing
{
///
/// This looks up a document by checking for the umbPageId of a request/query string
@@ -9,10 +11,17 @@
///
public class ContentFinderByPageIdQuery : IContentFinder
{
- public bool TryFindContent(PublishedRequest frequest)
+ private readonly IRequestAccessor _requestAccessor;
+
+ public ContentFinderByPageIdQuery(IRequestAccessor requestAccessor)
+ {
+ _requestAccessor = requestAccessor;
+ }
+
+ public bool TryFindContent(IPublishedRequest frequest)
{
int pageId;
- if (int.TryParse(frequest.UmbracoContext.HttpContext.Request["umbPageID"], out pageId))
+ if (int.TryParse(_requestAccessor.GetRequestValue("umbPageID"), out pageId))
{
var doc = frequest.UmbracoContext.Content.GetById(pageId);
diff --git a/src/Umbraco.Web/Routing/ContentFinderByRedirectUrl.cs b/src/Umbraco.Core/Routing/ContentFinderByRedirectUrl.cs
similarity index 86%
rename from src/Umbraco.Web/Routing/ContentFinderByRedirectUrl.cs
rename to src/Umbraco.Core/Routing/ContentFinderByRedirectUrl.cs
index 46e44dc5a3..5b3e0a5d99 100644
--- a/src/Umbraco.Web/Routing/ContentFinderByRedirectUrl.cs
+++ b/src/Umbraco.Core/Routing/ContentFinderByRedirectUrl.cs
@@ -17,11 +17,13 @@ namespace Umbraco.Web.Routing
{
private readonly IRedirectUrlService _redirectUrlService;
private readonly ILogger _logger;
+ private readonly IPublishedUrlProvider _publishedUrlProvider;
- public ContentFinderByRedirectUrl(IRedirectUrlService redirectUrlService, ILogger logger)
+ public ContentFinderByRedirectUrl(IRedirectUrlService redirectUrlService, ILogger logger, IPublishedUrlProvider publishedUrlProvider)
{
_redirectUrlService = redirectUrlService;
_logger = logger;
+ _publishedUrlProvider = publishedUrlProvider;
}
///
@@ -30,7 +32,7 @@ namespace Umbraco.Web.Routing
/// The PublishedRequest.
/// A value indicating whether an Umbraco document was found and assigned.
/// Optionally, can also assign the template or anything else on the document request, although that is not required.
- public bool TryFindContent(PublishedRequest frequest)
+ public bool TryFindContent(IPublishedRequest frequest)
{
var route = frequest.HasDomain
? frequest.Domain.ContentId + DomainUtilities.PathRelativeToDomain(frequest.Domain.Uri, frequest.Uri.GetAbsolutePathDecoded())
@@ -45,7 +47,7 @@ namespace Umbraco.Web.Routing
}
var content = frequest.UmbracoContext.Content.GetById(redirectUrl.ContentId);
- var url = content == null ? "#" : content.Url(redirectUrl.Culture);
+ var url = content == null ? "#" : content.Url(_publishedUrlProvider, redirectUrl.Culture);
if (url.StartsWith("#"))
{
_logger.Debug("Route {Route} matches content {ContentId} which has no url.", route, redirectUrl.ContentId);
@@ -63,7 +65,8 @@ namespace Umbraco.Web.Routing
// See http://issues.umbraco.org/issue/U4-8361#comment=67-30532
// Setting automatic 301 redirects to not be cached because browsers cache these very aggressively which then leads
// to problems if you rename a page back to it's original name or create a new page with the original name
- frequest.Cacheability = HttpCacheability.NoCache;
+ //frequest.Cacheability = HttpCacheability.NoCache;
+ frequest.CacheabilityNoCache = true;
frequest.CacheExtensions = new List { "no-store, must-revalidate" };
frequest.Headers = new Dictionary { { "Pragma", "no-cache" }, { "Expires", "0" } };
diff --git a/src/Umbraco.Web/Routing/ContentFinderByUrl.cs b/src/Umbraco.Core/Routing/ContentFinderByUrl.cs
similarity index 93%
rename from src/Umbraco.Web/Routing/ContentFinderByUrl.cs
rename to src/Umbraco.Core/Routing/ContentFinderByUrl.cs
index 0a14dc97fe..3fcffff842 100644
--- a/src/Umbraco.Web/Routing/ContentFinderByUrl.cs
+++ b/src/Umbraco.Core/Routing/ContentFinderByUrl.cs
@@ -24,7 +24,7 @@ namespace Umbraco.Web.Routing
///
/// The PublishedRequest.
/// A value indicating whether an Umbraco document was found and assigned.
- public virtual bool TryFindContent(PublishedRequest frequest)
+ public virtual bool TryFindContent(IPublishedRequest frequest)
{
string route;
if (frequest.HasDomain)
@@ -42,7 +42,7 @@ namespace Umbraco.Web.Routing
/// The document request.
/// The route.
/// The document node, or null.
- protected IPublishedContent FindContent(PublishedRequest docreq, string route)
+ protected IPublishedContent FindContent(IPublishedRequest docreq, string route)
{
if (docreq == null) throw new System.ArgumentNullException(nameof(docreq));
diff --git a/src/Umbraco.Web/Routing/ContentFinderByUrlAlias.cs b/src/Umbraco.Core/Routing/ContentFinderByUrlAlias.cs
similarity index 79%
rename from src/Umbraco.Web/Routing/ContentFinderByUrlAlias.cs
rename to src/Umbraco.Core/Routing/ContentFinderByUrlAlias.cs
index cf71611047..6bc1b329ed 100644
--- a/src/Umbraco.Web/Routing/ContentFinderByUrlAlias.cs
+++ b/src/Umbraco.Core/Routing/ContentFinderByUrlAlias.cs
@@ -18,10 +18,14 @@ namespace Umbraco.Web.Routing
///
public class ContentFinderByUrlAlias : IContentFinder
{
+ private readonly IPublishedValueFallback _publishedValueFallback;
+ private readonly IVariationContextAccessor _variationContextAccessor;
protected ILogger Logger { get; }
- public ContentFinderByUrlAlias(ILogger logger)
+ public ContentFinderByUrlAlias(ILogger logger, IPublishedValueFallback publishedValueFallback, IVariationContextAccessor variationContextAccessor)
{
+ _publishedValueFallback = publishedValueFallback;
+ _variationContextAccessor = variationContextAccessor;
Logger = logger;
}
@@ -30,7 +34,7 @@ namespace Umbraco.Web.Routing
///
/// The PublishedRequest.
/// A value indicating whether an Umbraco document was found and assigned.
- public bool TryFindContent(PublishedRequest frequest)
+ public bool TryFindContent(IPublishedRequest frequest)
{
IPublishedContent node = null;
@@ -51,7 +55,7 @@ namespace Umbraco.Web.Routing
return node != null;
}
- private static IPublishedContent FindContentByAlias(IPublishedContentCache cache, int rootNodeId, string culture, string alias)
+ private IPublishedContent FindContentByAlias(IPublishedContentCache cache, int rootNodeId, string culture, string alias)
{
if (alias == null) throw new ArgumentNullException(nameof(alias));
@@ -84,11 +88,11 @@ namespace Umbraco.Web.Routing
if (varies)
{
if (!c.HasCulture(culture)) return false;
- v = c.Value(propertyAlias, culture);
+ v = c.Value(_publishedValueFallback, propertyAlias, culture);
}
else
{
- v = c.Value(propertyAlias);
+ v = c.Value(_publishedValueFallback, propertyAlias);
}
if (string.IsNullOrWhiteSpace(v)) return false;
v = "," + v.Replace(" ", "") + ",";
@@ -101,12 +105,12 @@ namespace Umbraco.Web.Routing
if (rootNodeId > 0)
{
var rootNode = cache.GetById(rootNodeId);
- return rootNode?.Descendants().FirstOrDefault(x => IsMatch(x, test1, test2));
+ return rootNode?.Descendants(_variationContextAccessor).FirstOrDefault(x => IsMatch(x, test1, test2));
}
foreach (var rootContent in cache.GetAtRoot())
{
- var c = rootContent.DescendantsOrSelf().FirstOrDefault(x => IsMatch(x, test1, test2));
+ var c = rootContent.DescendantsOrSelf(_variationContextAccessor).FirstOrDefault(x => IsMatch(x, test1, test2));
if (c != null) return c;
}
diff --git a/src/Umbraco.Web/Routing/ContentFinderByUrlAndTemplate.cs b/src/Umbraco.Core/Routing/ContentFinderByUrlAndTemplate.cs
similarity index 85%
rename from src/Umbraco.Web/Routing/ContentFinderByUrlAndTemplate.cs
rename to src/Umbraco.Core/Routing/ContentFinderByUrlAndTemplate.cs
index 16dfa63596..933ab47150 100644
--- a/src/Umbraco.Web/Routing/ContentFinderByUrlAndTemplate.cs
+++ b/src/Umbraco.Core/Routing/ContentFinderByUrlAndTemplate.cs
@@ -1,9 +1,7 @@
using Umbraco.Core.Logging;
-using Umbraco.Core.Models;
using Umbraco.Core;
-using Umbraco.Core.Configuration;
+using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Models.PublishedContent;
-using Umbraco.Web.Composing;
using Umbraco.Core.Services;
namespace Umbraco.Web.Routing
@@ -19,11 +17,15 @@ namespace Umbraco.Web.Routing
public class ContentFinderByUrlAndTemplate : ContentFinderByUrl
{
private readonly IFileService _fileService;
+ private readonly IUmbracoSettingsSection _umbracoSettingsSection;
+ private readonly IContentTypeService _contentTypeService;
- public ContentFinderByUrlAndTemplate(ILogger logger, IFileService fileService)
+ public ContentFinderByUrlAndTemplate(ILogger logger, IFileService fileService, IUmbracoSettingsSection umbracoSettingsSection, IContentTypeService contentTypeService)
: base(logger)
{
_fileService = fileService;
+ _umbracoSettingsSection = umbracoSettingsSection;
+ _contentTypeService = contentTypeService;
}
///
@@ -32,7 +34,7 @@ namespace Umbraco.Web.Routing
/// The PublishedRequest.
/// A value indicating whether an Umbraco document was found and assigned.
/// If successful, also assigns the template.
- public override bool TryFindContent(PublishedRequest frequest)
+ public override bool TryFindContent(IPublishedRequest frequest)
{
IPublishedContent node = null;
var path = frequest.Uri.GetAbsolutePathDecoded();
@@ -73,7 +75,7 @@ namespace Umbraco.Web.Routing
}
// IsAllowedTemplate deals both with DisableAlternativeTemplates and ValidateAlternativeTemplates settings
- if (!node.IsAllowedTemplate(template.Id))
+ if (!node.IsAllowedTemplate(_contentTypeService, _umbracoSettingsSection, template.Id))
{
Logger.Warn("Alternative template '{TemplateAlias}' is not allowed on node {NodeId}.", template.Alias, node.Id);
frequest.PublishedContent = null; // clear
diff --git a/src/Umbraco.Web/Routing/ContentFinderCollection.cs b/src/Umbraco.Core/Routing/ContentFinderCollection.cs
similarity index 100%
rename from src/Umbraco.Web/Routing/ContentFinderCollection.cs
rename to src/Umbraco.Core/Routing/ContentFinderCollection.cs
diff --git a/src/Umbraco.Web/Routing/ContentFinderCollectionBuilder.cs b/src/Umbraco.Core/Routing/ContentFinderCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Web/Routing/ContentFinderCollectionBuilder.cs
rename to src/Umbraco.Core/Routing/ContentFinderCollectionBuilder.cs
diff --git a/src/Umbraco.Web/Routing/DefaultMediaUrlProvider.cs b/src/Umbraco.Core/Routing/DefaultMediaUrlProvider.cs
similarity index 61%
rename from src/Umbraco.Web/Routing/DefaultMediaUrlProvider.cs
rename to src/Umbraco.Core/Routing/DefaultMediaUrlProvider.cs
index beaf5f5864..3e6413ff90 100644
--- a/src/Umbraco.Web/Routing/DefaultMediaUrlProvider.cs
+++ b/src/Umbraco.Core/Routing/DefaultMediaUrlProvider.cs
@@ -1,5 +1,4 @@
using System;
-using Umbraco.Core.Composing;
using Umbraco.Core.Models.PublishedContent;
using Umbraco.Core.PropertyEditors;
@@ -10,15 +9,17 @@ namespace Umbraco.Web.Routing
///
public class DefaultMediaUrlProvider : IMediaUrlProvider
{
- private readonly PropertyEditorCollection _propertyEditors;
+ private readonly UriUtility _uriUtility;
+ private readonly MediaUrlGeneratorCollection _mediaPathGenerators;
- public DefaultMediaUrlProvider(PropertyEditorCollection propertyEditors)
+ public DefaultMediaUrlProvider(MediaUrlGeneratorCollection mediaPathGenerators, UriUtility uriUtility)
{
- _propertyEditors = propertyEditors ?? throw new ArgumentNullException(nameof(propertyEditors));
+ _mediaPathGenerators = mediaPathGenerators ?? throw new ArgumentNullException(nameof(mediaPathGenerators));
+ _uriUtility = uriUtility;
}
///
- public virtual UrlInfo GetMediaUrl(UmbracoContext umbracoContext, IPublishedContent content,
+ public virtual UrlInfo GetMediaUrl(IPublishedContent content,
string propertyAlias, UrlMode mode, string culture, Uri current)
{
var prop = content.GetProperty(propertyAlias);
@@ -31,25 +32,23 @@ namespace Umbraco.Web.Routing
}
var propType = prop.PropertyType;
- string path = null;
- if (_propertyEditors.TryGet(propType.EditorAlias, out var editor)
- && editor is IDataEditorWithMediaPath dataEditor)
+ if (_mediaPathGenerators.TryGetMediaPath(propType.EditorAlias, value, out var path))
{
- path = dataEditor.GetMediaPath(value);
+ var url = AssembleUrl(path, current, mode);
+ return UrlInfo.Url(url.ToString(), culture);
}
- var url = AssembleUrl(path, current, mode);
- return url == null ? null : UrlInfo.Url(url.ToString(), culture);
+ return null;
}
private Uri AssembleUrl(string path, Uri current, UrlMode mode)
{
- if (string.IsNullOrEmpty(path))
- return null;
+ if (string.IsNullOrWhiteSpace(path))
+ throw new ArgumentException($"{nameof(path)} cannot be null or whitespace", nameof(path));
// the stored path is absolute so we just return it as is
- if(Uri.IsWellFormedUriString(path, UriKind.Absolute))
+ if (Uri.IsWellFormedUriString(path, UriKind.Absolute))
return new Uri(path);
Uri uri;
@@ -70,7 +69,7 @@ namespace Umbraco.Web.Routing
throw new ArgumentOutOfRangeException(nameof(mode));
}
- return UriUtility.MediaUriFromUmbraco(uri);
+ return _uriUtility.MediaUriFromUmbraco(uri);
}
}
}
diff --git a/src/Umbraco.Web/Routing/DefaultUrlProvider.cs b/src/Umbraco.Core/Routing/DefaultUrlProvider.cs
similarity index 86%
rename from src/Umbraco.Web/Routing/DefaultUrlProvider.cs
rename to src/Umbraco.Core/Routing/DefaultUrlProvider.cs
index 4092538481..81102810e8 100644
--- a/src/Umbraco.Web/Routing/DefaultUrlProvider.cs
+++ b/src/Umbraco.Core/Routing/DefaultUrlProvider.cs
@@ -1,6 +1,5 @@
using System;
using System.Collections.Generic;
-using System.Linq;
using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Logging;
@@ -17,29 +16,34 @@ namespace Umbraco.Web.Routing
private readonly ILogger _logger;
private readonly IGlobalSettings _globalSettings;
private readonly ISiteDomainHelper _siteDomainHelper;
+ private readonly IUmbracoContextAccessor _umbracoContextAccessor;
+ private readonly UriUtility _uriUtility;
- public DefaultUrlProvider(IRequestHandlerSection requestSettings, ILogger logger, IGlobalSettings globalSettings, ISiteDomainHelper siteDomainHelper)
+ public DefaultUrlProvider(IRequestHandlerSection requestSettings, ILogger logger, IGlobalSettings globalSettings, ISiteDomainHelper siteDomainHelper, IUmbracoContextAccessor umbracoContextAccessor, UriUtility uriUtility)
{
_requestSettings = requestSettings;
_logger = logger;
_globalSettings = globalSettings;
_siteDomainHelper = siteDomainHelper;
+ _uriUtility = uriUtility;
+ _umbracoContextAccessor = umbracoContextAccessor;
}
#region GetUrl
///
- public virtual UrlInfo GetUrl(UmbracoContext umbracoContext, IPublishedContent content, UrlMode mode, string culture, Uri current)
+ public virtual UrlInfo GetUrl(IPublishedContent content, UrlMode mode, string culture, Uri current)
{
if (!current.IsAbsoluteUri) throw new ArgumentException("Current url must be absolute.", nameof(current));
+ var umbracoContext = _umbracoContextAccessor.UmbracoContext;
// will not use cache if previewing
var route = umbracoContext.Content.GetRouteById(content.Id, culture);
return GetUrlFromRoute(route, umbracoContext, content.Id, current, mode, culture);
}
- internal UrlInfo GetUrlFromRoute(string route, UmbracoContext umbracoContext, int id, Uri current, UrlMode mode, string culture)
+ internal UrlInfo GetUrlFromRoute(string route, IUmbracoContext umbracoContext, int id, Uri current, UrlMode mode, string culture)
{
if (string.IsNullOrWhiteSpace(route))
{
@@ -68,7 +72,7 @@ namespace Umbraco.Web.Routing
///
/// Gets the other urls of a published content.
///
- /// The Umbraco context.
+ /// The Umbraco context.
/// The published content id.
/// The current absolute url.
/// The other urls for the published content.
@@ -76,8 +80,9 @@ namespace Umbraco.Web.Routing
/// Other urls are those that GetUrl would not return in the current context, but would be valid
/// urls for the node in other contexts (different domain for current request, umbracoUrlAlias...).
///
- public virtual IEnumerable GetOtherUrls(UmbracoContext umbracoContext, int id, Uri current)
+ public virtual IEnumerable GetOtherUrls(int id, Uri current)
{
+ var umbracoContext = _umbracoContextAccessor.UmbracoContext;
var node = umbracoContext.Content.GetById(id);
if (node == null)
yield break;
@@ -108,7 +113,7 @@ namespace Umbraco.Web.Routing
var path = pos == 0 ? route : route.Substring(pos);
var uri = new Uri(CombinePaths(d.Uri.GetLeftPart(UriPartial.Path), path));
- uri = UriUtility.UriFromUmbraco(uri, _globalSettings, _requestSettings);
+ uri = _uriUtility.UriFromUmbraco(uri, _globalSettings, _requestSettings);
yield return UrlInfo.Url(uri.ToString(), culture);
}
}
@@ -167,7 +172,7 @@ namespace Umbraco.Web.Routing
// UriFromUmbraco will handle vdir
// meaning it will add vdir into domain urls too!
- return UriUtility.UriFromUmbraco(uri, _globalSettings, _requestSettings);
+ return _uriUtility.UriFromUmbraco(uri, _globalSettings, _requestSettings);
}
string CombinePaths(string path1, string path2)
diff --git a/src/Umbraco.Abstractions/Routing/Domain.cs b/src/Umbraco.Core/Routing/Domain.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Routing/Domain.cs
rename to src/Umbraco.Core/Routing/Domain.cs
diff --git a/src/Umbraco.Web/Routing/DomainAndUri.cs b/src/Umbraco.Core/Routing/DomainAndUri.cs
similarity index 100%
rename from src/Umbraco.Web/Routing/DomainAndUri.cs
rename to src/Umbraco.Core/Routing/DomainAndUri.cs
diff --git a/src/Umbraco.Web/Routing/DomainUtilities.cs b/src/Umbraco.Core/Routing/DomainUtilities.cs
similarity index 98%
rename from src/Umbraco.Web/Routing/DomainUtilities.cs
rename to src/Umbraco.Core/Routing/DomainUtilities.cs
index fb0c56b28d..c459ae4d14 100644
--- a/src/Umbraco.Web/Routing/DomainUtilities.cs
+++ b/src/Umbraco.Core/Routing/DomainUtilities.cs
@@ -27,7 +27,7 @@ namespace Umbraco.Web.Routing
/// one document per culture), and domains, withing the context of a current Uri, assign
/// a culture to that document.
///
- internal static string GetCultureFromDomains(int contentId, string contentPath, Uri current, UmbracoContext umbracoContext, ISiteDomainHelper siteDomainHelper)
+ internal static string GetCultureFromDomains(int contentId, string contentPath, Uri current, IUmbracoContext umbracoContext, ISiteDomainHelper siteDomainHelper)
{
if (umbracoContext == null)
throw new InvalidOperationException("A current UmbracoContext is required.");
@@ -295,7 +295,7 @@ namespace Umbraco.Web.Routing
? currentUri.GetLeftPart(UriPartial.Authority) + domainName
: domainName;
var scheme = currentUri?.Scheme ?? Uri.UriSchemeHttp;
- return new Uri(UriUtility.TrimPathEndSlash(UriUtility.StartWithScheme(name, scheme)));
+ return new Uri(UriUtilityCore.TrimPathEndSlash(UriUtilityCore.StartWithScheme(name, scheme)));
}
#endregion
@@ -344,7 +344,7 @@ namespace Umbraco.Web.Routing
/// The current domain root node identifier, or null.
/// The deepest wildcard Domain in the path, or null.
/// Looks _under_ rootNodeId but not _at_ rootNodeId.
- internal static Domain FindWildcardDomainInPath(IEnumerable domains, string path, int? rootNodeId)
+ public static Domain FindWildcardDomainInPath(IEnumerable domains, string path, int? rootNodeId)
{
var stopNodeId = rootNodeId ?? -1;
diff --git a/src/Umbraco.Web/Routing/EnsureRoutableOutcome.cs b/src/Umbraco.Core/Routing/EnsureRoutableOutcome.cs
similarity index 100%
rename from src/Umbraco.Web/Routing/EnsureRoutableOutcome.cs
rename to src/Umbraco.Core/Routing/EnsureRoutableOutcome.cs
diff --git a/src/Umbraco.Web/Routing/IContentFinder.cs b/src/Umbraco.Core/Routing/IContentFinder.cs
similarity index 92%
rename from src/Umbraco.Web/Routing/IContentFinder.cs
rename to src/Umbraco.Core/Routing/IContentFinder.cs
index 2e388c4814..39d31741a6 100644
--- a/src/Umbraco.Web/Routing/IContentFinder.cs
+++ b/src/Umbraco.Core/Routing/IContentFinder.cs
@@ -11,6 +11,6 @@ namespace Umbraco.Web.Routing
/// The PublishedRequest.
/// A value indicating whether an Umbraco document was found and assigned.
/// Optionally, can also assign the template or anything else on the document request, although that is not required.
- bool TryFindContent(PublishedRequest request);
+ bool TryFindContent(IPublishedRequest request);
}
}
diff --git a/src/Umbraco.Web/Routing/IContentLastChanceFinder.cs b/src/Umbraco.Core/Routing/IContentLastChanceFinder.cs
similarity index 100%
rename from src/Umbraco.Web/Routing/IContentLastChanceFinder.cs
rename to src/Umbraco.Core/Routing/IContentLastChanceFinder.cs
diff --git a/src/Umbraco.Web/Routing/IMediaUrlProvider.cs b/src/Umbraco.Core/Routing/IMediaUrlProvider.cs
similarity index 85%
rename from src/Umbraco.Web/Routing/IMediaUrlProvider.cs
rename to src/Umbraco.Core/Routing/IMediaUrlProvider.cs
index 8a81b27415..1b966c6fdd 100644
--- a/src/Umbraco.Web/Routing/IMediaUrlProvider.cs
+++ b/src/Umbraco.Core/Routing/IMediaUrlProvider.cs
@@ -1,6 +1,7 @@
using System;
using Umbraco.Core.Models.PublishedContent;
+
namespace Umbraco.Web.Routing
{
///
@@ -11,7 +12,6 @@ namespace Umbraco.Web.Routing
///
/// Gets the url of a media item.
///
- /// The Umbraco context.
/// The published content.
/// The property alias to resolve the url from.
/// The url mode.
@@ -26,6 +26,6 @@ namespace Umbraco.Web.Routing
/// e.g. a cdn url provider will most likely always return an absolute url.
/// If the provider is unable to provide a url, it returns null.
///
- UrlInfo GetMediaUrl(UmbracoContext umbracoContext, IPublishedContent content, string propertyAlias, UrlMode mode, string culture, Uri current);
+ UrlInfo GetMediaUrl(IPublishedContent content, string propertyAlias, UrlMode mode, string culture, Uri current);
}
}
diff --git a/src/Umbraco.Core/Routing/IPublishedRequest.cs b/src/Umbraco.Core/Routing/IPublishedRequest.cs
new file mode 100644
index 0000000000..f357108a4e
--- /dev/null
+++ b/src/Umbraco.Core/Routing/IPublishedRequest.cs
@@ -0,0 +1,224 @@
+using System;
+using System.Collections.Generic;
+using System.Globalization;
+using Umbraco.Core.Models;
+using Umbraco.Core.Models.PublishedContent;
+
+namespace Umbraco.Web.Routing
+{
+ public interface IPublishedRequest
+ {
+ ///
+ /// Gets the UmbracoContext.
+ ///
+ IUmbracoContext UmbracoContext { get; }
+
+ ///
+ /// Gets or sets the cleaned up Uri used for routing.
+ ///
+ /// The cleaned up Uri has no virtual directory, no trailing slash, no .aspx extension, etc.
+ Uri Uri { get; set; }
+
+ ///
+ /// Gets or sets a value indicating whether the Umbraco Backoffice should ignore a collision for this request.
+ ///
+ bool IgnorePublishedContentCollisions { get; set; }
+
+ ///
+ /// Gets or sets the requested content.
+ ///
+ /// Setting the requested content clears Template.
+ IPublishedContent PublishedContent { get; set; }
+
+ ///
+ /// Gets the initial requested content.
+ ///
+ /// The initial requested content is the content that was found by the finders,
+ /// before anything such as 404, redirect... took place.
+ IPublishedContent InitialPublishedContent { get; }
+
+ ///
+ /// Gets value indicating whether the current published content is the initial one.
+ ///
+ bool IsInitialPublishedContent { get; }
+
+ ///
+ /// Gets or sets a value indicating whether the current published content has been obtained
+ /// from the initial published content following internal redirections exclusively.
+ ///
+ /// Used by PublishedContentRequestEngine.FindTemplate() to figure out whether to
+ /// apply the internal redirect or not, when content is not the initial content.
+ bool IsInternalRedirectPublishedContent { get; }
+
+ ///
+ /// Gets a value indicating whether the content request has a content.
+ ///
+ bool HasPublishedContent { get; }
+
+ ITemplate TemplateModel { get; set; }
+
+ ///
+ /// Gets the alias of the template to use to display the requested content.
+ ///
+ string TemplateAlias { get; }
+
+ ///
+ /// Gets a value indicating whether the content request has a template.
+ ///
+ bool HasTemplate { get; }
+
+ void UpdateToNotFound();
+
+ ///
+ /// Gets or sets the content request's domain.
+ ///
+ /// Is a DomainAndUri object ie a standard Domain plus the fully qualified uri. For example,
+ /// the Domain may contain "example.com" whereas the Uri will be fully qualified eg "http://example.com/".
+ DomainAndUri Domain { get; set; }
+
+ ///
+ /// Gets a value indicating whether the content request has a domain.
+ ///
+ bool HasDomain { get; }
+
+ ///
+ /// Gets or sets the content request's culture.
+ ///
+ CultureInfo Culture { get; set; }
+
+ ///
+ /// Gets or sets a value indicating whether the requested content could not be found.
+ ///
+ /// This is set in the PublishedContentRequestBuilder and can also be used in
+ /// custom content finders or Prepared event handlers, where we want to allow developers
+ /// to indicate a request is 404 but not to cancel it.
+ bool Is404 { get; set; }
+
+ ///
+ /// Gets a value indicating whether the content request triggers a redirect (permanent or not).
+ ///
+ bool IsRedirect { get; }
+
+ ///
+ /// Gets or sets a value indicating whether the redirect is permanent.
+ ///
+ bool IsRedirectPermanent { get; }
+
+ ///
+ /// Gets or sets the url to redirect to, when the content request triggers a redirect.
+ ///
+ string RedirectUrl { get; }
+
+ ///
+ /// Gets or sets the content request http response status code.
+ ///
+ /// Does not actually set the http response status code, only registers that the response
+ /// should use the specified code. The code will or will not be used, in due time.
+ int ResponseStatusCode { get; }
+
+ ///
+ /// Gets or sets the content request http response status description.
+ ///
+ /// Does not actually set the http response status description, only registers that the response
+ /// should use the specified description. The description will or will not be used, in due time.
+ string ResponseStatusDescription { get; }
+
+ ///
+ /// Gets or sets a list of Extensions to append to the Response.Cache object.
+ ///
+ List CacheExtensions { get; set; }
+
+ ///
+ /// Gets or sets a dictionary of Headers to append to the Response object.
+ ///
+ Dictionary Headers { get; set; }
+
+ bool CacheabilityNoCache { get; set; }
+
+ ///
+ /// Prepares the request.
+ ///
+ void Prepare();
+
+ ///
+ /// Triggers the Preparing event.
+ ///
+ void OnPreparing();
+
+ ///
+ /// Triggers the Prepared event.
+ ///
+ void OnPrepared();
+
+ ///
+ /// Sets the requested content, following an internal redirect.
+ ///
+ /// The requested content.
+ /// Depending on UmbracoSettings.InternalRedirectPreservesTemplate, will
+ /// preserve or reset the template, if any.
+ void SetInternalRedirectPublishedContent(IPublishedContent content);
+
+ ///
+ /// Indicates that the current PublishedContent is the initial one.
+ ///
+ void SetIsInitialPublishedContent();
+
+ ///
+ /// Tries to set the template to use to display the requested content.
+ ///
+ /// The alias of the template.
+ /// A value indicating whether a valid template with the specified alias was found.
+ ///
+ /// Successfully setting the template does refresh RenderingEngine.
+ /// If setting the template fails, then the previous template (if any) remains in place.
+ ///
+ bool TrySetTemplate(string alias);
+
+ ///
+ /// Sets the template to use to display the requested content.
+ ///
+ /// The template.
+ /// Setting the template does refresh RenderingEngine.
+ void SetTemplate(ITemplate template);
+
+ ///
+ /// Resets the template.
+ ///
+ void ResetTemplate();
+
+ ///
+ /// Indicates that the content request should trigger a redirect (302).
+ ///
+ /// The url to redirect to.
+ /// Does not actually perform a redirect, only registers that the response should
+ /// redirect. Redirect will or will not take place in due time.
+ void SetRedirect(string url);
+
+ ///
+ /// Indicates that the content request should trigger a permanent redirect (301).
+ ///
+ /// The url to redirect to.
+ /// Does not actually perform a redirect, only registers that the response should
+ /// redirect. Redirect will or will not take place in due time.
+ void SetRedirectPermanent(string url);
+
+ ///
+ /// Indicates that the content request should trigger a redirect, with a specified status code.
+ ///
+ /// The url to redirect to.
+ /// The status code (300-308).
+ /// Does not actually perform a redirect, only registers that the response should
+ /// redirect. Redirect will or will not take place in due time.
+ void SetRedirect(string url, int status);
+
+ ///
+ /// Sets the http response status code, along with an optional associated description.
+ ///
+ /// The http status code.
+ /// The description.
+ /// Does not actually set the http response status code and description, only registers that
+ /// the response should use the specified code and description. The code and description will or will
+ /// not be used, in due time.
+ void SetResponseStatus(int code, string description = null);
+ }
+}
diff --git a/src/Umbraco.Web/Routing/IPublishedRouter.cs b/src/Umbraco.Core/Routing/IPublishedRouter.cs
similarity index 86%
rename from src/Umbraco.Web/Routing/IPublishedRouter.cs
rename to src/Umbraco.Core/Routing/IPublishedRouter.cs
index df06e42e55..db9d69df20 100644
--- a/src/Umbraco.Web/Routing/IPublishedRouter.cs
+++ b/src/Umbraco.Core/Routing/IPublishedRouter.cs
@@ -17,21 +17,21 @@ namespace Umbraco.Web.Routing
/// The current Umbraco context.
/// The (optional) request Uri.
/// A published request.
- PublishedRequest CreateRequest(UmbracoContext umbracoContext, Uri uri = null);
+ IPublishedRequest CreateRequest(IUmbracoContext umbracoContext, Uri uri = null);
///
/// Prepares a request for rendering.
///
/// The request.
/// A value indicating whether the request was successfully prepared and can be rendered.
- bool PrepareRequest(PublishedRequest request);
+ bool PrepareRequest(IPublishedRequest request);
///
/// Tries to route a request.
///
/// The request.
/// A value indicating whether the request can be routed to a document.
- bool TryRouteRequest(PublishedRequest request);
+ bool TryRouteRequest(IPublishedRequest request);
///
/// Gets a template.
@@ -49,6 +49,6 @@ namespace Umbraco.Web.Routing
/// the request, for whatever reason, and wants to force it to be re-routed
/// and rendered as if no document were found (404).
///
- void UpdateRequestToNotFound(PublishedRequest request);
+ void UpdateRequestToNotFound(IPublishedRequest request);
}
}
diff --git a/src/Umbraco.Core/Routing/IPublishedUrlProvider.cs b/src/Umbraco.Core/Routing/IPublishedUrlProvider.cs
new file mode 100644
index 0000000000..45faf76772
--- /dev/null
+++ b/src/Umbraco.Core/Routing/IPublishedUrlProvider.cs
@@ -0,0 +1,105 @@
+using System;
+using System.Collections.Generic;
+using Umbraco.Core;
+using Umbraco.Core.Models.PublishedContent;
+
+namespace Umbraco.Web.Routing
+{
+ public interface IPublishedUrlProvider
+ {
+ ///
+ /// Gets or sets the provider url mode.
+ ///
+ UrlMode Mode { get; set; }
+
+ ///
+ /// Gets the url of a published content.
+ ///
+ /// The published content identifier.
+ /// The url mode.
+ /// A culture.
+ /// The current absolute url.
+ /// The url for the published content.
+ string GetUrl(Guid id, UrlMode mode = UrlMode.Default, string culture = null, Uri current = null);
+
+ ///
+ /// Gets the url of a published content.
+ ///
+ /// The published content identifier.
+ /// The url mode.
+ /// A culture.
+ /// The current absolute url.
+ /// The url for the published content.
+ string GetUrl(int id, UrlMode mode = UrlMode.Default, string culture = null, Uri current = null);
+
+ ///
+ /// Gets the url of a published content.
+ ///
+ /// The published content.
+ /// The url mode.
+ /// A culture.
+ /// The current absolute url.
+ /// The url for the published content.
+ ///
+ /// The url is absolute or relative depending on mode and on current.
+ /// If the published content is multi-lingual, gets the url for the specified culture or,
+ /// when no culture is specified, the current culture.
+ /// If the provider is unable to provide a url, it returns "#".
+ ///
+ string GetUrl(IPublishedContent content, UrlMode mode = UrlMode.Default, string culture = null, Uri current = null);
+
+ string GetUrlFromRoute(int id, string route, string culture);
+
+ ///
+ /// Gets the other urls of a published content.
+ ///
+ /// The published content id.
+ /// The other urls for the published content.
+ ///
+ /// Other urls are those that GetUrl would not return in the current context, but would be valid
+ /// urls for the node in other contexts (different domain for current request, umbracoUrlAlias...).
+ /// The results depend on the current url.
+ ///
+ IEnumerable GetOtherUrls(int id);
+
+ ///
+ /// Gets the other urls of a published content.
+ ///
+ /// The published content id.
+ /// The current absolute url.
+ /// The other urls for the published content.
+ ///
+ /// Other urls are those that GetUrl would not return in the current context, but would be valid
+ /// urls for the node in other contexts (different domain for current request, umbracoUrlAlias...).
+ ///
+ IEnumerable GetOtherUrls(int id, Uri current);
+
+ ///
+ /// Gets the url of a media item.
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ string GetMediaUrl(Guid id, UrlMode mode = UrlMode.Default, string culture = null, string propertyAlias = Constants.Conventions.Media.File, Uri current = null);
+
+ ///
+ /// Gets the url of a media item.
+ ///
+ /// The published content.
+ /// The property alias to resolve the url from.
+ /// The url mode.
+ /// The variation language.
+ /// The current absolute url.
+ /// The url for the media.
+ ///
+ /// The url is absolute or relative depending on mode and on current.
+ /// If the media is multi-lingual, gets the url for the specified culture or,
+ /// when no culture is specified, the current culture.
+ /// If the provider is unable to provide a url, it returns .
+ ///
+ string GetMediaUrl(IPublishedContent content, UrlMode mode = UrlMode.Default, string culture = null, string propertyAlias = Constants.Conventions.Media.File, Uri current = null);
+ }
+}
diff --git a/src/Umbraco.Web/Routing/ISiteDomainHelper.cs b/src/Umbraco.Core/Routing/ISiteDomainHelper.cs
similarity index 100%
rename from src/Umbraco.Web/Routing/ISiteDomainHelper.cs
rename to src/Umbraco.Core/Routing/ISiteDomainHelper.cs
diff --git a/src/Umbraco.Web/Routing/IUrlProvider.cs b/src/Umbraco.Core/Routing/IUrlProvider.cs
similarity index 82%
rename from src/Umbraco.Web/Routing/IUrlProvider.cs
rename to src/Umbraco.Core/Routing/IUrlProvider.cs
index c0ce1fef39..ba1d48a113 100644
--- a/src/Umbraco.Web/Routing/IUrlProvider.cs
+++ b/src/Umbraco.Core/Routing/IUrlProvider.cs
@@ -12,7 +12,6 @@ namespace Umbraco.Web.Routing
///
/// Gets the url of a published content.
///
- /// The Umbraco context.
/// The published content.
/// The url mode.
/// A culture.
@@ -24,12 +23,11 @@ namespace Umbraco.Web.Routing
/// when no culture is specified, the current culture.
/// If the provider is unable to provide a url, it should return null.
///
- UrlInfo GetUrl(UmbracoContext umbracoContext, IPublishedContent content, UrlMode mode, string culture, Uri current);
+ UrlInfo GetUrl(IPublishedContent content, UrlMode mode, string culture, Uri current);
///
/// Gets the other urls of a published content.
///
- /// The Umbraco context.
/// The published content id.
/// The current absolute url.
/// The other urls for the published content.
@@ -37,6 +35,6 @@ namespace Umbraco.Web.Routing
/// Other urls are those that GetUrl would not return in the current context, but would be valid
/// urls for the node in other contexts (different domain for current request, umbracoUrlAlias...).
///
- IEnumerable GetOtherUrls(UmbracoContext umbracoContext, int id, Uri current);
+ IEnumerable GetOtherUrls(int id, Uri current);
}
}
diff --git a/src/Umbraco.Web/Routing/MediaUrlProviderCollection.cs b/src/Umbraco.Core/Routing/MediaUrlProviderCollection.cs
similarity index 100%
rename from src/Umbraco.Web/Routing/MediaUrlProviderCollection.cs
rename to src/Umbraco.Core/Routing/MediaUrlProviderCollection.cs
diff --git a/src/Umbraco.Web/Routing/MediaUrlProviderCollectionBuilder.cs b/src/Umbraco.Core/Routing/MediaUrlProviderCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Web/Routing/MediaUrlProviderCollectionBuilder.cs
rename to src/Umbraco.Core/Routing/MediaUrlProviderCollectionBuilder.cs
diff --git a/src/Umbraco.Web/Routing/PublishedRequest.cs b/src/Umbraco.Core/Routing/PublishedRequest.cs
similarity index 93%
rename from src/Umbraco.Web/Routing/PublishedRequest.cs
rename to src/Umbraco.Core/Routing/PublishedRequest.cs
index 37a58ad375..9b00e59deb 100644
--- a/src/Umbraco.Web/Routing/PublishedRequest.cs
+++ b/src/Umbraco.Core/Routing/PublishedRequest.cs
@@ -2,21 +2,18 @@ using System;
using System.Collections.Generic;
using System.Globalization;
using System.Threading;
-using System.Web;
-using Umbraco.Core;
-using Umbraco.Web.Composing;
using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
-using Umbraco.Web.Macros;
using Umbraco.Core.Configuration.UmbracoSettings;
namespace Umbraco.Web.Routing
{
+
///
/// Represents a request for one specified Umbraco IPublishedContent to be rendered
/// by one specified template, using one specified Culture and RenderingEngine.
///
- public class PublishedRequest
+ public class PublishedRequest : IPublishedRequest
{
private readonly IPublishedRouter _publishedRouter;
private readonly IUmbracoSettingsSection _umbracoSettingsSection;
@@ -29,15 +26,14 @@ namespace Umbraco.Web.Routing
private CultureInfo _culture;
private IPublishedContent _publishedContent;
private IPublishedContent _initialPublishedContent; // found by finders before 404, redirects, etc
- private PublishedContentHashtableConverter _umbracoPage; // legacy
///
- /// Initializes a new instance of the class.
+ /// Initializes a new instance of the class.
///
/// The published router.
/// The Umbraco context.
/// The request Uri.
- internal PublishedRequest(IPublishedRouter publishedRouter, UmbracoContext umbracoContext, IUmbracoSettingsSection umbracoSettingsSection, Uri uri = null)
+ internal PublishedRequest(IPublishedRouter publishedRouter, IUmbracoContext umbracoContext, IUmbracoSettingsSection umbracoSettingsSection, Uri uri = null)
{
UmbracoContext = umbracoContext ?? throw new ArgumentNullException(nameof(umbracoContext));
_publishedRouter = publishedRouter ?? throw new ArgumentNullException(nameof(publishedRouter));
@@ -48,7 +44,7 @@ namespace Umbraco.Web.Routing
///
/// Gets the UmbracoContext.
///
- public UmbracoContext UmbracoContext { get; }
+ public IUmbracoContext UmbracoContext { get; }
///
/// Gets or sets the cleaned up Uri used for routing.
@@ -66,12 +62,14 @@ namespace Umbraco.Web.Routing
}
// utility for ensuring it is ok to set some properties
- private void EnsureWriteable()
+ public void EnsureWriteable()
{
if (_readonly)
throw new InvalidOperationException("Cannot modify a PublishedRequest once it is read-only.");
}
+ public bool CacheabilityNoCache { get; set; }
+
///
/// Prepares the request.
///
@@ -106,7 +104,7 @@ namespace Umbraco.Web.Routing
///
/// Triggers the Preparing event.
///
- internal void OnPreparing()
+ public void OnPreparing()
{
Preparing?.Invoke(this, EventArgs.Empty);
_readonlyUri = true;
@@ -115,7 +113,7 @@ namespace Umbraco.Web.Routing
///
/// Triggers the Prepared event.
///
- internal void OnPrepared()
+ public void OnPrepared()
{
Prepared?.Invoke(this, EventArgs.Empty);
@@ -231,7 +229,7 @@ namespace Umbraco.Web.Routing
///
/// Gets or sets the template model to use to display the requested content.
///
- internal ITemplate TemplateModel { get; set; }
+ public ITemplate TemplateModel { get; set; }
///
/// Gets the alias of the template to use to display the requested content.
@@ -293,7 +291,7 @@ namespace Umbraco.Web.Routing
///
public bool HasTemplate => TemplateModel != null;
- internal void UpdateToNotFound()
+ public void UpdateToNotFound()
{
var __readonly = _readonly;
_readonly = false;
@@ -464,7 +462,7 @@ namespace Umbraco.Web.Routing
// Note: we used to set a default value here but that would then be the default
// for ALL requests, we shouldn't overwrite it though if people are using [OutputCache] for example
// see: https://our.umbraco.com/forum/using-umbraco-and-getting-started/79715-output-cache-in-umbraco-752
- public HttpCacheability Cacheability { get; set; }
+ //public HttpCacheability Cacheability { get; set; }
///
/// Gets or sets a list of Extensions to append to the Response.Cache object.
@@ -477,23 +475,5 @@ namespace Umbraco.Web.Routing
public Dictionary Headers { get; set; } = new Dictionary();
#endregion
-
- #region Legacy
-
- // for legacy/webforms/macro code -
- // TODO: get rid of it eventually
- internal PublishedContentHashtableConverter LegacyContentHashTable
- {
- get
- {
- if (_umbracoPage == null)
- throw new InvalidOperationException("The UmbracoPage object has not been initialized yet.");
-
- return _umbracoPage;
- }
- set => _umbracoPage = value;
- }
-
- #endregion
}
}
diff --git a/src/Umbraco.Web/Routing/PublishedRouter.cs b/src/Umbraco.Core/Routing/PublishedRouter.cs
similarity index 82%
rename from src/Umbraco.Web/Routing/PublishedRouter.cs
rename to src/Umbraco.Core/Routing/PublishedRouter.cs
index 9148ce2e31..f521c3a95a 100644
--- a/src/Umbraco.Web/Routing/PublishedRouter.cs
+++ b/src/Umbraco.Core/Routing/PublishedRouter.cs
@@ -4,13 +4,12 @@ using System.Threading;
using System.Globalization;
using System.IO;
using Umbraco.Core;
-using Umbraco.Web.Composing;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core.Logging;
using Umbraco.Core.Models;
using Umbraco.Core.Models.PublishedContent;
+using Umbraco.Core.Request;
using Umbraco.Core.Services;
-using Umbraco.Web.Macros;
using Umbraco.Web.Security;
namespace Umbraco.Web.Routing
@@ -23,12 +22,17 @@ namespace Umbraco.Web.Routing
private readonly IWebRoutingSection _webRoutingSection;
private readonly ContentFinderCollection _contentFinders;
private readonly IContentLastChanceFinder _contentLastChanceFinder;
- private readonly ServiceContext _services;
private readonly IProfilingLogger _profilingLogger;
private readonly IVariationContextAccessor _variationContextAccessor;
private readonly ILogger _logger;
private readonly IUmbracoSettingsSection _umbracoSettingsSection;
- private readonly IUserService _userService;
+ private readonly IPublishedUrlProvider _publishedUrlProvider;
+ private readonly IRequestAccessor _requestAccessor;
+ private readonly IPublishedValueFallback _publishedValueFallback;
+ private readonly IPublicAccessChecker _publicAccessChecker;
+ private readonly IFileService _fileService;
+ private readonly IContentTypeService _contentTypeService;
+ private readonly IPublicAccessService _publicAccessService;
///
/// Initializes a new instance of the class.
@@ -38,24 +42,34 @@ namespace Umbraco.Web.Routing
ContentFinderCollection contentFinders,
IContentLastChanceFinder contentLastChanceFinder,
IVariationContextAccessor variationContextAccessor,
- ServiceContext services,
IProfilingLogger proflog,
IUmbracoSettingsSection umbracoSettingsSection,
- IUserService userService)
+ IPublishedUrlProvider publishedUrlProvider,
+ IRequestAccessor requestAccessor,
+ IPublishedValueFallback publishedValueFallback,
+ IPublicAccessChecker publicAccessChecker,
+ IFileService fileService,
+ IContentTypeService contentTypeService,
+ IPublicAccessService publicAccessService)
{
_webRoutingSection = webRoutingSection ?? throw new ArgumentNullException(nameof(webRoutingSection));
_contentFinders = contentFinders ?? throw new ArgumentNullException(nameof(contentFinders));
_contentLastChanceFinder = contentLastChanceFinder ?? throw new ArgumentNullException(nameof(contentLastChanceFinder));
- _services = services ?? throw new ArgumentNullException(nameof(services));
_profilingLogger = proflog ?? throw new ArgumentNullException(nameof(proflog));
_variationContextAccessor = variationContextAccessor ?? throw new ArgumentNullException(nameof(variationContextAccessor));
_logger = proflog;
_umbracoSettingsSection = umbracoSettingsSection ?? throw new ArgumentNullException(nameof(umbracoSettingsSection));
- _userService = userService ?? throw new ArgumentNullException(nameof(userService));
+ _publishedUrlProvider = publishedUrlProvider;
+ _requestAccessor = requestAccessor;
+ _publishedValueFallback = publishedValueFallback;
+ _publicAccessChecker = publicAccessChecker;
+ _fileService = fileService;
+ _contentTypeService = contentTypeService;
+ _publicAccessService = publicAccessService;
}
///
- public PublishedRequest CreateRequest(UmbracoContext umbracoContext, Uri uri = null)
+ public IPublishedRequest CreateRequest(IUmbracoContext umbracoContext, Uri uri = null)
{
return new PublishedRequest(this, umbracoContext, _umbracoSettingsSection, uri ?? umbracoContext.CleanedUmbracoUrl);
}
@@ -63,7 +77,7 @@ namespace Umbraco.Web.Routing
#region Request
///
- public bool TryRouteRequest(PublishedRequest request)
+ public bool TryRouteRequest(IPublishedRequest request)
{
// disabled - is it going to change the routing?
//_pcr.OnPreparing();
@@ -94,7 +108,7 @@ namespace Umbraco.Web.Routing
}
///
- public bool PrepareRequest(PublishedRequest request)
+ public bool PrepareRequest(IPublishedRequest request)
{
// note - at that point the original legacy module did something do handle IIS custom 404 errors
// ie pages looking like /anything.aspx?404;/path/to/document - I guess the reason was to support
@@ -165,7 +179,7 @@ namespace Umbraco.Web.Routing
/// This method logic has been put into it's own method in case developers have created a custom PCR or are assigning their own values
/// but need to finalize it themselves.
///
- public bool ConfigureRequest(PublishedRequest frequest)
+ public bool ConfigureRequest(IPublishedRequest frequest)
{
if (frequest.HasPublishedContent == false)
{
@@ -188,22 +202,11 @@ namespace Umbraco.Web.Routing
// can't go beyond that point without a PublishedContent to render
// it's ok not to have a template, in order to give MVC a chance to hijack routes
- // note - the page() ctor below will cause the "page" to get the value of all its
- // "elements" ie of all the IPublishedContent property. If we use the object value,
- // that will trigger macro execution - which can't happen because macro execution
- // requires that _pcr.UmbracoPage is already initialized = catch-22. The "legacy"
- // pipeline did _not_ evaluate the macros, ie it is using the data value, and we
- // have to keep doing it because of that catch-22.
-
- // assign the legacy page back to the request
- // handlers like default.aspx will want it and most macros currently need it
- frequest.LegacyContentHashTable = new PublishedContentHashtableConverter(frequest, _userService);
-
return true;
}
///
- public void UpdateRequestToNotFound(PublishedRequest request)
+ public void UpdateRequestToNotFound(IPublishedRequest request)
{
// clear content
var content = request.PublishedContent;
@@ -232,12 +235,6 @@ namespace Umbraco.Web.Routing
// to Mvc since Mvc can't do much either
return;
}
-
- // see note in PrepareRequest()
-
- // assign the legacy page back to the docrequest
- // handlers like default.aspx will want it and most macros currently need it
- request.LegacyContentHashTable = new PublishedContentHashtableConverter(request, _userService);
}
#endregion
@@ -248,7 +245,7 @@ namespace Umbraco.Web.Routing
/// Finds the site root (if any) matching the http request, and updates the PublishedRequest accordingly.
///
/// A value indicating whether a domain was found.
- internal bool FindDomain(PublishedRequest request)
+ internal bool FindDomain(IPublishedRequest request)
{
const string tracePrefix = "FindDomain: ";
@@ -319,7 +316,7 @@ namespace Umbraco.Web.Routing
///
/// Looks for wildcard domains in the path and updates Culture accordingly.
///
- internal void HandleWildcardDomains(PublishedRequest request)
+ internal void HandleWildcardDomains(IPublishedRequest request)
{
const string tracePrefix = "HandleWildcardDomains: ";
@@ -372,14 +369,14 @@ namespace Umbraco.Web.Routing
///
public ITemplate GetTemplate(string alias)
{
- return _services.FileService.GetTemplate(alias);
+ return _fileService.GetTemplate(alias);
}
///
/// Finds the Umbraco document (if any) matching the request, and updates the PublishedRequest accordingly.
///
/// A value indicating whether a document and template were found.
- private void FindPublishedContentAndTemplate(PublishedRequest request)
+ private void FindPublishedContentAndTemplate(IPublishedRequest request)
{
_logger.Debug("FindPublishedContentAndTemplate: Path={UriAbsolutePath}", request.Uri.AbsolutePath);
@@ -409,7 +406,7 @@ namespace Umbraco.Web.Routing
/// Tries to find the document matching the request, by running the IPublishedContentFinder instances.
///
/// There is no finder collection.
- internal void FindPublishedContent(PublishedRequest request)
+ internal void FindPublishedContent(IPublishedRequest request)
{
const string tracePrefix = "FindPublishedContent: ";
@@ -441,7 +438,7 @@ namespace Umbraco.Web.Routing
/// Handles "not found", internal redirects, access validation...
/// things that must be handled in one place because they can create loops
///
- private void HandlePublishedContent(PublishedRequest request)
+ private void HandlePublishedContent(IPublishedRequest request)
{
// because these might loop, we have to have some sort of infinite loop detection
int i = 0, j = 0;
@@ -500,7 +497,7 @@ namespace Umbraco.Web.Routing
/// Redirecting to a different site root and/or culture will not pick the new site root nor the new culture.
/// As per legacy, if the redirect does not work, we just ignore it.
///
- private bool FollowInternalRedirects(PublishedRequest request)
+ private bool FollowInternalRedirects(IPublishedRequest request)
{
if (request.PublishedContent == null)
throw new InvalidOperationException("There is no PublishedContent.");
@@ -512,7 +509,7 @@ namespace Umbraco.Web.Routing
var redirect = false;
var valid = false;
IPublishedContent internalRedirectNode = null;
- var internalRedirectId = request.PublishedContent.Value(Constants.Conventions.Content.InternalRedirectId, defaultValue: -1);
+ var internalRedirectId = request.PublishedContent.Value(_publishedValueFallback, Constants.Conventions.Content.InternalRedirectId, defaultValue: -1);
if (internalRedirectId > 0)
{
@@ -522,7 +519,7 @@ namespace Umbraco.Web.Routing
}
else
{
- var udiInternalRedirectId = request.PublishedContent.Value(Constants.Conventions.Content.InternalRedirectId);
+ var udiInternalRedirectId = request.PublishedContent.Value(_publishedValueFallback, Constants.Conventions.Content.InternalRedirectId);
if (udiInternalRedirectId != null)
{
// try and get the redirect node from a UDI Guid
@@ -562,65 +559,41 @@ namespace Umbraco.Web.Routing
/// Ensures that access to current node is permitted.
///
/// Redirecting to a different site root and/or culture will not pick the new site root nor the new culture.
- private void EnsurePublishedContentAccess(PublishedRequest request)
+ private void EnsurePublishedContentAccess(IPublishedRequest request)
{
if (request.PublishedContent == null)
throw new InvalidOperationException("There is no PublishedContent.");
var path = request.PublishedContent.Path;
- var publicAccessAttempt = _services.PublicAccessService.IsProtected(path);
+ var publicAccessAttempt = _publicAccessService.IsProtected(path);
if (publicAccessAttempt)
{
_logger.Debug("EnsurePublishedContentAccess: Page is protected, check for access");
- var membershipHelper = Current.Factory.GetInstance();
-
- if (membershipHelper.IsLoggedIn() == false)
+ var status = _publicAccessChecker.HasMemberAccessToContent(request.PublishedContent.Id);
+ switch (status)
{
- _logger.Debug("EnsurePublishedContentAccess: Not logged in, redirect to login page");
-
- var loginPageId = publicAccessAttempt.Result.LoginNodeId;
-
- if (loginPageId != request.PublishedContent.Id)
- request.PublishedContent = request.UmbracoContext.PublishedSnapshot.Content.GetById(loginPageId);
- }
- else if (_services.PublicAccessService.HasAccess(request.PublishedContent.Id, _services.ContentService, membershipHelper.CurrentUserName, membershipHelper.GetCurrentUserRoles()) == false)
- {
- _logger.Debug("EnsurePublishedContentAccess: Current member has not access, redirect to error page");
- var errorPageId = publicAccessAttempt.Result.NoAccessNodeId;
- if (errorPageId != request.PublishedContent.Id)
- request.PublishedContent = request.UmbracoContext.PublishedSnapshot.Content.GetById(errorPageId);
- }
- else
- {
- // grab the current member
- var member = membershipHelper.GetCurrentMember();
- // if the member has the "approved" and/or "locked out" properties, make sure they're correctly set before allowing access
- var memberIsActive = true;
- if (member != null)
- {
- if (member.HasProperty(Constants.Conventions.Member.IsApproved) == false)
- memberIsActive = member.Value(Constants.Conventions.Member.IsApproved);
-
- if (member.HasProperty(Constants.Conventions.Member.IsLockedOut) == false)
- memberIsActive = member.Value(Constants.Conventions.Member.IsLockedOut) == false;
- }
-
- if (memberIsActive == false)
- {
- _logger.Debug(
- "Current member is either unapproved or locked out, redirect to error page");
- var errorPageId = publicAccessAttempt.Result.NoAccessNodeId;
- if (errorPageId != request.PublishedContent.Id)
- request.PublishedContent =
- request.UmbracoContext.PublishedSnapshot.Content.GetById(errorPageId);
- }
- else
- {
+ case PublicAccessStatus.NotLoggedIn:
+ _logger.Debug("EnsurePublishedContentAccess: Not logged in, redirect to login page");
+ SetPublishedContentAsOtherPage(request, publicAccessAttempt.Result.LoginNodeId);
+ break;
+ case PublicAccessStatus.AccessDenied:
+ _logger.Debug("EnsurePublishedContentAccess: Current member has not access, redirect to error page");
+ SetPublishedContentAsOtherPage(request, publicAccessAttempt.Result.NoAccessNodeId);
+ break;
+ case PublicAccessStatus.LockedOut:
+ _logger.Debug("Current member is locked out, redirect to error page");
+ SetPublishedContentAsOtherPage(request, publicAccessAttempt.Result.NoAccessNodeId);
+ break;
+ case PublicAccessStatus.NotApproved:
+ _logger.Debug("Current member is unapproved, redirect to error page");
+ SetPublishedContentAsOtherPage(request, publicAccessAttempt.Result.NoAccessNodeId);
+ break;
+ case PublicAccessStatus.AccessAccepted:
_logger.Debug("Current member has access");
- }
+ break;
}
}
else
@@ -629,10 +602,16 @@ namespace Umbraco.Web.Routing
}
}
+ private static void SetPublishedContentAsOtherPage(IPublishedRequest request, int errorPageId)
+ {
+ if (errorPageId != request.PublishedContent.Id)
+ request.PublishedContent = request.UmbracoContext.PublishedSnapshot.Content.GetById(errorPageId);
+ }
+
///
/// Finds a template for the current node, if any.
///
- private void FindTemplate(PublishedRequest request)
+ private void FindTemplate(IPublishedRequest request)
{
// NOTE: at the moment there is only 1 way to find a template, and then ppl must
// use the Prepared event to change the template if they wish. Should we also
@@ -651,7 +630,7 @@ namespace Umbraco.Web.Routing
var useAltTemplate = request.IsInitialPublishedContent
|| (_webRoutingSection.InternalRedirectPreservesTemplate && request.IsInternalRedirectPublishedContent);
var altTemplate = useAltTemplate
- ? request.UmbracoContext.HttpContext.Request[Constants.Conventions.Url.AltTemplate]
+ ? _requestAccessor.GetRequestValue(Constants.Conventions.Url.AltTemplate)
: null;
if (string.IsNullOrWhiteSpace(altTemplate))
@@ -662,7 +641,7 @@ namespace Umbraco.Web.Routing
if (request.HasTemplate)
{
- _logger.Debug("FindTemplate: Has a template already, and no alternate template.");
+ _logger.Debug("FindTemplate: Has a template already, and no alternate template.");
return;
}
@@ -688,10 +667,15 @@ namespace Umbraco.Web.Routing
_logger.Debug("FindTemplate: Look for alternative template alias={AltTemplate}", altTemplate);
// IsAllowedTemplate deals both with DisableAlternativeTemplates and ValidateAlternativeTemplates settings
- if (request.PublishedContent.IsAllowedTemplate(altTemplate))
+ if (request.PublishedContent.IsAllowedTemplate(
+ _fileService,
+ _contentTypeService,
+ _umbracoSettingsSection.WebRouting.DisableAlternativeTemplates,
+ _umbracoSettingsSection.WebRouting.ValidateAlternativeTemplates,
+ altTemplate))
{
// allowed, use
- var template = _services.FileService.GetTemplate(altTemplate);
+ var template = _fileService.GetTemplate(altTemplate);
if (template != null)
{
@@ -745,7 +729,7 @@ namespace Umbraco.Web.Routing
if (templateId == null)
throw new InvalidOperationException("The template is not set, the page cannot render.");
- var template = _services.FileService.GetTemplate(templateId.Value);
+ var template = _fileService.GetTemplate(templateId.Value);
if (template == null)
throw new InvalidOperationException("The template with Id " + templateId + " does not exist, the page cannot render.");
_logger.Debug("GetTemplateModel: Got template id={TemplateId} alias={TemplateAlias}", template.Id, template.Alias);
@@ -756,7 +740,7 @@ namespace Umbraco.Web.Routing
/// Follows external redirection through umbracoRedirect document property.
///
/// As per legacy, if the redirect does not work, we just ignore it.
- private void FollowExternalRedirect(PublishedRequest request)
+ private void FollowExternalRedirect(IPublishedRequest request)
{
if (request.HasPublishedContent == false) return;
@@ -764,18 +748,18 @@ namespace Umbraco.Web.Routing
if (request.PublishedContent.HasProperty(Constants.Conventions.Content.Redirect) == false)
return;
- var redirectId = request.PublishedContent.Value(Constants.Conventions.Content.Redirect, defaultValue: -1);
+ var redirectId = request.PublishedContent.Value(_publishedValueFallback, Constants.Conventions.Content.Redirect, defaultValue: -1);
var redirectUrl = "#";
if (redirectId > 0)
{
- redirectUrl = request.UmbracoContext.UrlProvider.GetUrl(redirectId);
+ redirectUrl = _publishedUrlProvider.GetUrl(redirectId);
}
else
{
// might be a UDI instead of an int Id
- var redirectUdi = request.PublishedContent.Value(Constants.Conventions.Content.Redirect);
+ var redirectUdi = request.PublishedContent.Value(_publishedValueFallback, Constants.Conventions.Content.Redirect);
if (redirectUdi != null)
- redirectUrl = request.UmbracoContext.UrlProvider.GetUrl(redirectUdi.Guid);
+ redirectUrl = _publishedUrlProvider.GetUrl(redirectUdi.Guid);
}
if (redirectUrl != "#")
request.SetRedirect(redirectUrl);
diff --git a/src/Umbraco.Web/Routing/RoutableAttemptEventArgs.cs b/src/Umbraco.Core/Routing/RoutableAttemptEventArgs.cs
similarity index 80%
rename from src/Umbraco.Web/Routing/RoutableAttemptEventArgs.cs
rename to src/Umbraco.Core/Routing/RoutableAttemptEventArgs.cs
index 96b377b103..54ea98b3a4 100644
--- a/src/Umbraco.Web/Routing/RoutableAttemptEventArgs.cs
+++ b/src/Umbraco.Core/Routing/RoutableAttemptEventArgs.cs
@@ -9,8 +9,8 @@ namespace Umbraco.Web.Routing
{
public EnsureRoutableOutcome Outcome { get; private set; }
- public RoutableAttemptEventArgs(EnsureRoutableOutcome reason, UmbracoContext umbracoContext, HttpContextBase httpContext)
- : base(umbracoContext, httpContext)
+ public RoutableAttemptEventArgs(EnsureRoutableOutcome reason, IUmbracoContext umbracoContext)
+ : base(umbracoContext)
{
Outcome = reason;
}
diff --git a/src/Umbraco.Web/Routing/SiteDomainHelper.cs b/src/Umbraco.Core/Routing/SiteDomainHelper.cs
similarity index 99%
rename from src/Umbraco.Web/Routing/SiteDomainHelper.cs
rename to src/Umbraco.Core/Routing/SiteDomainHelper.cs
index 6173dfb43c..35475ae292 100644
--- a/src/Umbraco.Web/Routing/SiteDomainHelper.cs
+++ b/src/Umbraco.Core/Routing/SiteDomainHelper.cs
@@ -266,7 +266,7 @@ namespace Umbraco.Web.Routing
return _qualifiedSites[current.Scheme] = _sites
.ToDictionary(
kvp => kvp.Key,
- kvp => kvp.Value.Select(d => new Uri(UriUtility.StartWithScheme(d, current.Scheme)).GetLeftPart(UriPartial.Authority)).ToArray()
+ kvp => kvp.Value.Select(d => new Uri(UriUtilityCore.StartWithScheme(d, current.Scheme)).GetLeftPart(UriPartial.Authority)).ToArray()
);
// .ToDictionary will evaluate and create the dictionary immediately
diff --git a/src/Umbraco.Web/Routing/UmbracoRequestEventArgs.cs b/src/Umbraco.Core/Routing/UmbracoRequestEventArgs.cs
similarity index 54%
rename from src/Umbraco.Web/Routing/UmbracoRequestEventArgs.cs
rename to src/Umbraco.Core/Routing/UmbracoRequestEventArgs.cs
index 5b2be178fd..4430d9689f 100644
--- a/src/Umbraco.Web/Routing/UmbracoRequestEventArgs.cs
+++ b/src/Umbraco.Core/Routing/UmbracoRequestEventArgs.cs
@@ -8,13 +8,11 @@ namespace Umbraco.Web.Routing
///
public class UmbracoRequestEventArgs : EventArgs
{
- public UmbracoContext UmbracoContext { get; private set; }
- public HttpContextBase HttpContext { get; private set; }
+ public IUmbracoContext UmbracoContext { get; private set; }
- public UmbracoRequestEventArgs(UmbracoContext umbracoContext, HttpContextBase httpContext)
+ public UmbracoRequestEventArgs(IUmbracoContext umbracoContext)
{
UmbracoContext = umbracoContext;
- HttpContext = httpContext;
}
}
}
diff --git a/src/Umbraco.Web/UriUtility.cs b/src/Umbraco.Core/Routing/UriUtility.cs
similarity index 71%
rename from src/Umbraco.Web/UriUtility.cs
rename to src/Umbraco.Core/Routing/UriUtility.cs
index 9e94a4a20a..11bb1dabfb 100644
--- a/src/Umbraco.Web/UriUtility.cs
+++ b/src/Umbraco.Core/Routing/UriUtility.cs
@@ -4,21 +4,22 @@ using System.Web;
using Umbraco.Core;
using Umbraco.Core.Configuration;
using Umbraco.Core.Configuration.UmbracoSettings;
+using Umbraco.Core.Hosting;
namespace Umbraco.Web
{
- public static class UriUtility
+ public sealed class UriUtility
{
static string _appPath;
static string _appPathPrefix;
- static UriUtility()
+ public UriUtility(IHostingEnvironment hostingEnvironment)
{
- ResetAppDomainAppVirtualPath();
+ ResetAppDomainAppVirtualPath(hostingEnvironment);
}
// internal for unit testing only
- internal static void SetAppDomainAppVirtualPath(string appPath)
+ internal void SetAppDomainAppVirtualPath(string appPath)
{
_appPath = appPath ?? "/";
_appPathPrefix = _appPath;
@@ -26,20 +27,20 @@ namespace Umbraco.Web
_appPathPrefix = String.Empty;
}
- internal static void ResetAppDomainAppVirtualPath()
+ internal void ResetAppDomainAppVirtualPath(IHostingEnvironment hostingEnvironment)
{
- SetAppDomainAppVirtualPath(HttpRuntime.AppDomainAppVirtualPath);
+ SetAppDomainAppVirtualPath(hostingEnvironment.ApplicationVirtualPath);
}
// will be "/" or "/foo"
- public static string AppPath => _appPath;
+ public string AppPath => _appPath;
// will be "" or "/foo"
- public static string AppPathPrefix => _appPathPrefix;
+ public string AppPathPrefix => _appPathPrefix;
// adds the virtual directory if any
// see also VirtualPathUtility.ToAbsolute
- public static string ToAbsolute(string url)
+ public string ToAbsolute(string url)
{
//return ResolveUrl(url);
url = url.TrimStart('~');
@@ -48,7 +49,7 @@ namespace Umbraco.Web
// strips the virtual directory if any
// see also VirtualPathUtility.ToAppRelative
- public static string ToAppRelative(string virtualPath)
+ public string ToAppRelative(string virtualPath)
{
if (virtualPath.InvariantStartsWith(_appPathPrefix)
&& (virtualPath.Length == _appPathPrefix.Length || virtualPath[_appPathPrefix.Length] == '/'))
@@ -60,7 +61,7 @@ namespace Umbraco.Web
// maps an internal umbraco uri to a public uri
// ie with virtual directory, .aspx if required...
- public static Uri UriFromUmbraco(Uri uri, IGlobalSettings globalSettings, IRequestHandlerSection requestConfig)
+ public Uri UriFromUmbraco(Uri uri, IGlobalSettings globalSettings, IRequestHandlerSection requestConfig)
{
var path = uri.GetSafeAbsolutePath();
@@ -74,7 +75,7 @@ namespace Umbraco.Web
// maps a media umbraco uri to a public uri
// ie with virtual directory - that is all for media
- public static Uri MediaUriFromUmbraco(Uri uri)
+ public Uri MediaUriFromUmbraco(Uri uri)
{
var path = uri.GetSafeAbsolutePath();
path = ToAbsolute(path);
@@ -83,7 +84,7 @@ namespace Umbraco.Web
// maps a public uri to an internal umbraco uri
// ie no virtual directory, no .aspx, lowercase...
- public static Uri UriToUmbraco(Uri uri)
+ public Uri UriToUmbraco(Uri uri)
{
// note: no need to decode uri here because we're returning a uri
// so it will be re-encoded anyway
@@ -120,7 +121,7 @@ namespace Umbraco.Web
// ResolveUrl("page2.aspx") returns "/page2.aspx"
// Page.ResolveUrl("page2.aspx") returns "/sub/page2.aspx" (relative...)
//
- public static string ResolveUrl(string relativeUrl)
+ public string ResolveUrl(string relativeUrl)
{
if (relativeUrl == null) throw new ArgumentNullException("relativeUrl");
@@ -177,74 +178,27 @@ namespace Umbraco.Web
#endregion
- #region Uri string utilities
-
- public static bool HasScheme(string uri)
- {
- return uri.IndexOf("://") > 0;
- }
-
- public static string StartWithScheme(string uri)
- {
- return StartWithScheme(uri, null);
- }
-
- public static string StartWithScheme(string uri, string scheme)
- {
- return HasScheme(uri) ? uri : String.Format("{0}://{1}", scheme ?? Uri.UriSchemeHttp, uri);
- }
-
- public static string EndPathWithSlash(string uri)
- {
- var pos1 = Math.Max(0, uri.IndexOf('?'));
- var pos2 = Math.Max(0, uri.IndexOf('#'));
- var pos = Math.Min(pos1, pos2);
-
- var path = pos > 0 ? uri.Substring(0, pos) : uri;
- path = path.EnsureEndsWith('/');
-
- if (pos > 0)
- path += uri.Substring(pos);
-
- return path;
- }
-
- public static string TrimPathEndSlash(string uri)
- {
- var pos1 = Math.Max(0, uri.IndexOf('?'));
- var pos2 = Math.Max(0, uri.IndexOf('#'));
- var pos = Math.Min(pos1, pos2);
-
- var path = pos > 0 ? uri.Substring(0, pos) : uri;
- path = path.TrimEnd('/');
-
- if (pos > 0)
- path += uri.Substring(pos);
-
- return path;
- }
-
- #endregion
///
/// Returns an full url with the host, port, etc...
///
/// An absolute path (i.e. starts with a '/' )
- ///
+ ///
///
///
/// Based on http://stackoverflow.com/questions/3681052/get-absolute-url-from-relative-path-refactored-method
///
- internal static Uri ToFullUrl(string absolutePath, HttpContextBase httpContext)
+ internal Uri ToFullUrl(string absolutePath, Uri curentRequestUrl)
{
- if (httpContext == null) throw new ArgumentNullException("httpContext");
if (string.IsNullOrEmpty(absolutePath))
- throw new ArgumentNullException("absolutePath");
+ throw new ArgumentNullException(nameof(absolutePath));
if (!absolutePath.StartsWith("/"))
throw new FormatException("The absolutePath specified does not start with a '/'");
- return new Uri(absolutePath, UriKind.Relative).MakeAbsolute(httpContext.Request.Url);
+ return new Uri(absolutePath, UriKind.Relative).MakeAbsolute(curentRequestUrl);
}
+
+
}
}
diff --git a/src/Umbraco.Infrastructure/Routing/UrlInfo.cs b/src/Umbraco.Core/Routing/UrlInfo.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Routing/UrlInfo.cs
rename to src/Umbraco.Core/Routing/UrlInfo.cs
diff --git a/src/Umbraco.Web/Routing/UrlProvider.cs b/src/Umbraco.Core/Routing/UrlProvider.cs
similarity index 79%
rename from src/Umbraco.Web/Routing/UrlProvider.cs
rename to src/Umbraco.Core/Routing/UrlProvider.cs
index d42639b781..80169e54e2 100644
--- a/src/Umbraco.Web/Routing/UrlProvider.cs
+++ b/src/Umbraco.Core/Routing/UrlProvider.cs
@@ -4,30 +4,31 @@ using System.Linq;
using Umbraco.Core.Configuration.UmbracoSettings;
using Umbraco.Core;
using Umbraco.Core.Models.PublishedContent;
-using Umbraco.Web.Composing;
namespace Umbraco.Web.Routing
{
+
///
/// Provides urls.
///
- public class UrlProvider
+ public class UrlProvider : IPublishedUrlProvider
{
#region Ctor and configuration
///
/// Initializes a new instance of the class with an Umbraco context and a list of url providers.
///
- /// The Umbraco context.
+ /// The Umbraco context accessor.
/// Routing settings.
/// The list of url providers.
/// The list of media url providers.
/// The current variation accessor.
- public UrlProvider(UmbracoContext umbracoContext, IWebRoutingSection routingSettings, IEnumerable urlProviders, IEnumerable mediaUrlProviders, IVariationContextAccessor variationContextAccessor)
+ ///
+ public UrlProvider(IUmbracoContextAccessor umbracoContextAccessor, IWebRoutingSection routingSettings, UrlProviderCollection urlProviders, MediaUrlProviderCollection mediaUrlProviders, IVariationContextAccessor variationContextAccessor)
{
if (routingSettings == null) throw new ArgumentNullException(nameof(routingSettings));
- _umbracoContext = umbracoContext ?? throw new ArgumentNullException(nameof(umbracoContext));
+ _umbracoContextAccessor = umbracoContextAccessor ?? throw new ArgumentNullException(nameof(umbracoContextAccessor));
_urlProviders = urlProviders;
_mediaUrlProviders = mediaUrlProviders;
_variationContextAccessor = variationContextAccessor ?? throw new ArgumentNullException(nameof(variationContextAccessor));
@@ -40,25 +41,8 @@ namespace Umbraco.Web.Routing
}
}
- ///
- /// Initializes a new instance of the class with an Umbraco context and a list of url providers.
- ///
- /// The Umbraco context.
- /// The list of url providers.
- /// The list of media url providers
- /// The current variation accessor.
- /// An optional provider mode.
- public UrlProvider(UmbracoContext umbracoContext, IEnumerable urlProviders, IEnumerable mediaUrlProviders, IVariationContextAccessor variationContextAccessor, UrlMode mode = UrlMode.Auto)
- {
- _umbracoContext = umbracoContext ?? throw new ArgumentNullException(nameof(umbracoContext));
- _urlProviders = urlProviders;
- _mediaUrlProviders = mediaUrlProviders;
- _variationContextAccessor = variationContextAccessor;
- Mode = mode;
- }
-
- private readonly UmbracoContext _umbracoContext;
+ private readonly IUmbracoContextAccessor _umbracoContextAccessor;
private readonly IEnumerable _urlProviders;
private readonly IEnumerable _mediaUrlProviders;
private readonly IVariationContextAccessor _variationContextAccessor;
@@ -72,10 +56,9 @@ namespace Umbraco.Web.Routing
#region GetUrl
- private UrlMode GetMode(bool absolute) => absolute ? UrlMode.Absolute : Mode;
- private IPublishedContent GetDocument(int id) => _umbracoContext.Content.GetById(id);
- private IPublishedContent GetDocument(Guid id) => _umbracoContext.Content.GetById(id);
- private IPublishedContent GetMedia(Guid id) => _umbracoContext.Media.GetById(id);
+ private IPublishedContent GetDocument(int id) => _umbracoContextAccessor.UmbracoContext.Content.GetById(id);
+ private IPublishedContent GetDocument(Guid id) => _umbracoContextAccessor.UmbracoContext.Content.GetById(id);
+ private IPublishedContent GetMedia(Guid id) => _umbracoContextAccessor.UmbracoContext.Media.GetById(id);
///
/// Gets the url of a published content.
@@ -131,19 +114,19 @@ namespace Umbraco.Web.Routing
}
if (current == null)
- current = _umbracoContext.CleanedUmbracoUrl;
+ current = _umbracoContextAccessor.UmbracoContext.CleanedUmbracoUrl;
- var url = _urlProviders.Select(provider => provider.GetUrl(_umbracoContext, content, mode, culture, current))
+ var url = _urlProviders.Select(provider => provider.GetUrl(content, mode, culture, current))
.FirstOrDefault(u => u != null);
return url?.Text ?? "#"; // legacy wants this
}
- internal string GetUrlFromRoute(int id, string route, string culture)
+ public string GetUrlFromRoute(int id, string route, string culture)
{
var provider = _urlProviders.OfType().FirstOrDefault();
var url = provider == null
? route // what else?
- : provider.GetUrlFromRoute(route, Current.UmbracoContext, id, _umbracoContext.CleanedUmbracoUrl, Mode, culture)?.Text;
+ : provider.GetUrlFromRoute(route, _umbracoContextAccessor.UmbracoContext, id, _umbracoContextAccessor.UmbracoContext.CleanedUmbracoUrl, Mode, culture)?.Text;
return url ?? "#";
}
@@ -163,7 +146,7 @@ namespace Umbraco.Web.Routing
///
public IEnumerable GetOtherUrls(int id)
{
- return GetOtherUrls(id, _umbracoContext.CleanedUmbracoUrl);
+ return GetOtherUrls(id, _umbracoContextAccessor.UmbracoContext.CleanedUmbracoUrl);
}
///
@@ -178,7 +161,7 @@ namespace Umbraco.Web.Routing
///
public IEnumerable GetOtherUrls(int id, Uri current)
{
- return _urlProviders.SelectMany(provider => provider.GetOtherUrls(_umbracoContext, id, current) ?? Enumerable.Empty());
+ return _urlProviders.SelectMany(provider => provider.GetOtherUrls(id, current) ?? Enumerable.Empty());
}
#endregion
@@ -232,10 +215,10 @@ namespace Umbraco.Web.Routing
}
if (current == null)
- current = _umbracoContext.CleanedUmbracoUrl;
+ current = _umbracoContextAccessor.UmbracoContext.CleanedUmbracoUrl;
var url = _mediaUrlProviders.Select(provider =>
- provider.GetMediaUrl(_umbracoContext, content, propertyAlias, mode, culture, current))
+ provider.GetMediaUrl(content, propertyAlias, mode, culture, current))
.FirstOrDefault(u => u != null);
return url?.Text ?? "";
diff --git a/src/Umbraco.Web/Routing/UrlProviderCollection.cs b/src/Umbraco.Core/Routing/UrlProviderCollection.cs
similarity index 100%
rename from src/Umbraco.Web/Routing/UrlProviderCollection.cs
rename to src/Umbraco.Core/Routing/UrlProviderCollection.cs
diff --git a/src/Umbraco.Web/Routing/UrlProviderCollectionBuilder.cs b/src/Umbraco.Core/Routing/UrlProviderCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Web/Routing/UrlProviderCollectionBuilder.cs
rename to src/Umbraco.Core/Routing/UrlProviderCollectionBuilder.cs
diff --git a/src/Umbraco.Web/Routing/UrlProviderExtensions.cs b/src/Umbraco.Core/Routing/UrlProviderExtensions.cs
similarity index 88%
rename from src/Umbraco.Web/Routing/UrlProviderExtensions.cs
rename to src/Umbraco.Core/Routing/UrlProviderExtensions.cs
index 9a0579daa1..a7f8a97c6d 100644
--- a/src/Umbraco.Web/Routing/UrlProviderExtensions.cs
+++ b/src/Umbraco.Core/Routing/UrlProviderExtensions.cs
@@ -20,12 +20,14 @@ namespace Umbraco.Web.Routing
///
public static IEnumerable GetContentUrls(this IContent content,
IPublishedRouter publishedRouter,
- UmbracoContext umbracoContext,
+ IUmbracoContext umbracoContext,
ILocalizationService localizationService,
ILocalizedTextService textService,
IContentService contentService,
IVariationContextAccessor variationContextAccessor,
- ILogger logger)
+ ILogger logger,
+ UriUtility uriUtility,
+ IPublishedUrlProvider publishedUrlProvider)
{
if (content == null) throw new ArgumentNullException(nameof(content));
if (publishedRouter == null) throw new ArgumentNullException(nameof(publishedRouter));
@@ -34,6 +36,8 @@ namespace Umbraco.Web.Routing
if (textService == null) throw new ArgumentNullException(nameof(textService));
if (contentService == null) throw new ArgumentNullException(nameof(contentService));
if (logger == null) throw new ArgumentNullException(nameof(logger));
+ if (publishedUrlProvider == null) throw new ArgumentNullException(nameof(publishedUrlProvider));
+ if (uriUtility == null) throw new ArgumentNullException(nameof(uriUtility));
if (variationContextAccessor == null) throw new ArgumentNullException(nameof(variationContextAccessor));
if (content.Published == false)
@@ -59,7 +63,7 @@ namespace Umbraco.Web.Routing
//get all URLs for all cultures
//in a HashSet, so de-duplicates too
- foreach (var cultureUrl in GetContentUrlsByCulture(content, cultures, publishedRouter, umbracoContext, contentService, textService, variationContextAccessor, logger))
+ foreach (var cultureUrl in GetContentUrlsByCulture(content, cultures, publishedRouter, umbracoContext, contentService, textService, variationContextAccessor, logger, uriUtility, publishedUrlProvider))
{
urls.Add(cultureUrl);
}
@@ -77,7 +81,7 @@ namespace Umbraco.Web.Routing
// get the 'other' urls - ie not what you'd get with GetUrl() but urls that would route to the document, nevertheless.
// for these 'other' urls, we don't check whether they are routable, collide, anything - we just report them.
- foreach (var otherUrl in umbracoContext.UrlProvider.GetOtherUrls(content.Id).OrderBy(x => x.Text).ThenBy(x => x.Culture))
+ foreach (var otherUrl in publishedUrlProvider.GetOtherUrls(content.Id).OrderBy(x => x.Text).ThenBy(x => x.Culture))
if (urls.Add(otherUrl)) //avoid duplicates
yield return otherUrl;
}
@@ -96,11 +100,13 @@ namespace Umbraco.Web.Routing
private static IEnumerable GetContentUrlsByCulture(IContent content,
IEnumerable cultures,
IPublishedRouter publishedRouter,
- UmbracoContext umbracoContext,
+ IUmbracoContext umbracoContext,
IContentService contentService,
ILocalizedTextService textService,
IVariationContextAccessor variationContextAccessor,
- ILogger logger)
+ ILogger logger,
+ UriUtility uriUtility,
+ IPublishedUrlProvider publishedUrlProvider)
{
foreach (var culture in cultures)
{
@@ -113,7 +119,7 @@ namespace Umbraco.Web.Routing
string url;
try
{
- url = umbracoContext.UrlProvider.GetUrl(content.Id, culture: culture);
+ url = publishedUrlProvider.GetUrl(content.Id, culture: culture);
}
catch (Exception ex)
{
@@ -135,7 +141,7 @@ namespace Umbraco.Web.Routing
// got a url, deal with collisions, add url
default:
- if (DetectCollision(content, url, culture, umbracoContext, publishedRouter, textService, variationContextAccessor, out var urlInfo)) // detect collisions, etc
+ if (DetectCollision(content, url, culture, umbracoContext, publishedRouter, textService, variationContextAccessor, uriUtility, out var urlInfo)) // detect collisions, etc
yield return urlInfo;
else
yield return UrlInfo.Url(url, culture);
@@ -165,12 +171,12 @@ namespace Umbraco.Web.Routing
return UrlInfo.Message(textService.Localize("content/parentCultureNotPublished", new[] {parent.Name}), culture);
}
- private static bool DetectCollision(IContent content, string url, string culture, UmbracoContext umbracoContext, IPublishedRouter publishedRouter, ILocalizedTextService textService, IVariationContextAccessor variationContextAccessor, out UrlInfo urlInfo)
+ private static bool DetectCollision(IContent content, string url, string culture, IUmbracoContext umbracoContext, IPublishedRouter publishedRouter, ILocalizedTextService textService, IVariationContextAccessor variationContextAccessor, UriUtility uriUtility, out UrlInfo urlInfo)
{
// test for collisions on the 'main' url
var uri = new Uri(url.TrimEnd('/'), UriKind.RelativeOrAbsolute);
if (uri.IsAbsoluteUri == false) uri = uri.MakeAbsolute(umbracoContext.CleanedUmbracoUrl);
- uri = UriUtility.UriToUmbraco(uri);
+ uri = uriUtility.UriToUmbraco(uri);
var pcr = publishedRouter.CreateRequest(umbracoContext, uri);
publishedRouter.TryRouteRequest(pcr);
diff --git a/src/Umbraco.Abstractions/Runtime/IMainDom.cs b/src/Umbraco.Core/Runtime/IMainDom.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Runtime/IMainDom.cs
rename to src/Umbraco.Core/Runtime/IMainDom.cs
diff --git a/src/Umbraco.Abstractions/Runtime/IMainDomLock.cs b/src/Umbraco.Core/Runtime/IMainDomLock.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Runtime/IMainDomLock.cs
rename to src/Umbraco.Core/Runtime/IMainDomLock.cs
diff --git a/src/Umbraco.Abstractions/Runtime/IUmbracoBootPermissionChecker.cs b/src/Umbraco.Core/Runtime/IUmbracoBootPermissionChecker.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Runtime/IUmbracoBootPermissionChecker.cs
rename to src/Umbraco.Core/Runtime/IUmbracoBootPermissionChecker.cs
diff --git a/src/Umbraco.Abstractions/Runtime/MainDom.cs b/src/Umbraco.Core/Runtime/MainDom.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Runtime/MainDom.cs
rename to src/Umbraco.Core/Runtime/MainDom.cs
diff --git a/src/Umbraco.Abstractions/RuntimeLevel.cs b/src/Umbraco.Core/RuntimeLevel.cs
similarity index 100%
rename from src/Umbraco.Abstractions/RuntimeLevel.cs
rename to src/Umbraco.Core/RuntimeLevel.cs
diff --git a/src/Umbraco.Abstractions/RuntimeLevelReason.cs b/src/Umbraco.Core/RuntimeLevelReason.cs
similarity index 100%
rename from src/Umbraco.Abstractions/RuntimeLevelReason.cs
rename to src/Umbraco.Core/RuntimeLevelReason.cs
diff --git a/src/Umbraco.Abstractions/SafeCallContext.cs b/src/Umbraco.Core/SafeCallContext.cs
similarity index 100%
rename from src/Umbraco.Abstractions/SafeCallContext.cs
rename to src/Umbraco.Core/SafeCallContext.cs
diff --git a/src/Umbraco.Abstractions/Scheduling/BackgroundTaskRunnerOptions.cs b/src/Umbraco.Core/Scheduling/BackgroundTaskRunnerOptions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Scheduling/BackgroundTaskRunnerOptions.cs
rename to src/Umbraco.Core/Scheduling/BackgroundTaskRunnerOptions.cs
diff --git a/src/Umbraco.Abstractions/Scheduling/IBackgroundTask.cs b/src/Umbraco.Core/Scheduling/IBackgroundTask.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Scheduling/IBackgroundTask.cs
rename to src/Umbraco.Core/Scheduling/IBackgroundTask.cs
diff --git a/src/Umbraco.Abstractions/Scheduling/IBackgroundTaskRunner.cs b/src/Umbraco.Core/Scheduling/IBackgroundTaskRunner.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Scheduling/IBackgroundTaskRunner.cs
rename to src/Umbraco.Core/Scheduling/IBackgroundTaskRunner.cs
diff --git a/src/Umbraco.Abstractions/Scheduling/ILatchedBackgroundTask.cs b/src/Umbraco.Core/Scheduling/ILatchedBackgroundTask.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Scheduling/ILatchedBackgroundTask.cs
rename to src/Umbraco.Core/Scheduling/ILatchedBackgroundTask.cs
diff --git a/src/Umbraco.Abstractions/Scheduling/KeepAlive.cs b/src/Umbraco.Core/Scheduling/KeepAlive.cs
similarity index 98%
rename from src/Umbraco.Abstractions/Scheduling/KeepAlive.cs
rename to src/Umbraco.Core/Scheduling/KeepAlive.cs
index d1d9352ed6..c677c66b83 100644
--- a/src/Umbraco.Abstractions/Scheduling/KeepAlive.cs
+++ b/src/Umbraco.Core/Scheduling/KeepAlive.cs
@@ -9,7 +9,7 @@ using Umbraco.Core.Sync;
namespace Umbraco.Web.Scheduling
{
- internal class KeepAlive : RecurringTaskBase
+ public class KeepAlive : RecurringTaskBase
{
private readonly IRuntimeState _runtime;
private readonly IKeepAliveSection _keepAliveSection;
diff --git a/src/Umbraco.Abstractions/Scheduling/LatchedBackgroundTaskBase.cs b/src/Umbraco.Core/Scheduling/LatchedBackgroundTaskBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Scheduling/LatchedBackgroundTaskBase.cs
rename to src/Umbraco.Core/Scheduling/LatchedBackgroundTaskBase.cs
diff --git a/src/Umbraco.Abstractions/Scheduling/RecurringTaskBase.cs b/src/Umbraco.Core/Scheduling/RecurringTaskBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Scheduling/RecurringTaskBase.cs
rename to src/Umbraco.Core/Scheduling/RecurringTaskBase.cs
diff --git a/src/Umbraco.Abstractions/Scheduling/TaskAndFactoryExtensions.cs b/src/Umbraco.Core/Scheduling/TaskAndFactoryExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Scheduling/TaskAndFactoryExtensions.cs
rename to src/Umbraco.Core/Scheduling/TaskAndFactoryExtensions.cs
diff --git a/src/Umbraco.Abstractions/Scheduling/TaskEventArgs.cs b/src/Umbraco.Core/Scheduling/TaskEventArgs.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Scheduling/TaskEventArgs.cs
rename to src/Umbraco.Core/Scheduling/TaskEventArgs.cs
diff --git a/src/Umbraco.Abstractions/Scheduling/TempFileCleanup.cs b/src/Umbraco.Core/Scheduling/TempFileCleanup.cs
similarity index 97%
rename from src/Umbraco.Abstractions/Scheduling/TempFileCleanup.cs
rename to src/Umbraco.Core/Scheduling/TempFileCleanup.cs
index 5d28bbfdb1..aefaf605db 100644
--- a/src/Umbraco.Abstractions/Scheduling/TempFileCleanup.cs
+++ b/src/Umbraco.Core/Scheduling/TempFileCleanup.cs
@@ -10,7 +10,7 @@ namespace Umbraco.Web.Scheduling
///
/// Used to cleanup temporary file locations
///
- internal class TempFileCleanup : RecurringTaskBase
+ public class TempFileCleanup : RecurringTaskBase
{
private readonly DirectoryInfo[] _tempFolders;
private readonly TimeSpan _age;
diff --git a/src/Umbraco.Abstractions/Scheduling/ThreadingTaskImmutable.cs b/src/Umbraco.Core/Scheduling/ThreadingTaskImmutable.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Scheduling/ThreadingTaskImmutable.cs
rename to src/Umbraco.Core/Scheduling/ThreadingTaskImmutable.cs
diff --git a/src/Umbraco.Infrastructure/Scoping/CallContext.cs b/src/Umbraco.Core/Scoping/CallContext.cs
similarity index 100%
rename from src/Umbraco.Infrastructure/Scoping/CallContext.cs
rename to src/Umbraco.Core/Scoping/CallContext.cs
diff --git a/src/Umbraco.Abstractions/Scoping/IInstanceIdentifiable.cs b/src/Umbraco.Core/Scoping/IInstanceIdentifiable.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Scoping/IInstanceIdentifiable.cs
rename to src/Umbraco.Core/Scoping/IInstanceIdentifiable.cs
diff --git a/src/Umbraco.Abstractions/Scoping/IScopeContext.cs b/src/Umbraco.Core/Scoping/IScopeContext.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Scoping/IScopeContext.cs
rename to src/Umbraco.Core/Scoping/IScopeContext.cs
diff --git a/src/Umbraco.Abstractions/Search/SearchableTreeAttribute.cs b/src/Umbraco.Core/Search/SearchableTreeAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Search/SearchableTreeAttribute.cs
rename to src/Umbraco.Core/Search/SearchableTreeAttribute.cs
diff --git a/src/Umbraco.Abstractions/Sections/ContentSection.cs b/src/Umbraco.Core/Sections/ContentSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sections/ContentSection.cs
rename to src/Umbraco.Core/Sections/ContentSection.cs
diff --git a/src/Umbraco.Abstractions/Sections/FormsSection.cs b/src/Umbraco.Core/Sections/FormsSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sections/FormsSection.cs
rename to src/Umbraco.Core/Sections/FormsSection.cs
diff --git a/src/Umbraco.Abstractions/Sections/ISection.cs b/src/Umbraco.Core/Sections/ISection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sections/ISection.cs
rename to src/Umbraco.Core/Sections/ISection.cs
diff --git a/src/Umbraco.Abstractions/Sections/MediaSection.cs b/src/Umbraco.Core/Sections/MediaSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sections/MediaSection.cs
rename to src/Umbraco.Core/Sections/MediaSection.cs
diff --git a/src/Umbraco.Abstractions/Sections/MembersSection.cs b/src/Umbraco.Core/Sections/MembersSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sections/MembersSection.cs
rename to src/Umbraco.Core/Sections/MembersSection.cs
diff --git a/src/Umbraco.Abstractions/Sections/PackagesSection.cs b/src/Umbraco.Core/Sections/PackagesSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sections/PackagesSection.cs
rename to src/Umbraco.Core/Sections/PackagesSection.cs
diff --git a/src/Umbraco.Abstractions/Sections/SectionCollection.cs b/src/Umbraco.Core/Sections/SectionCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sections/SectionCollection.cs
rename to src/Umbraco.Core/Sections/SectionCollection.cs
diff --git a/src/Umbraco.Abstractions/Sections/SectionCollectionBuilder.cs b/src/Umbraco.Core/Sections/SectionCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sections/SectionCollectionBuilder.cs
rename to src/Umbraco.Core/Sections/SectionCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/Sections/SettingsSection.cs b/src/Umbraco.Core/Sections/SettingsSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sections/SettingsSection.cs
rename to src/Umbraco.Core/Sections/SettingsSection.cs
diff --git a/src/Umbraco.Abstractions/Sections/TranslationSection.cs b/src/Umbraco.Core/Sections/TranslationSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sections/TranslationSection.cs
rename to src/Umbraco.Core/Sections/TranslationSection.cs
diff --git a/src/Umbraco.Abstractions/Sections/UsersSection.cs b/src/Umbraco.Core/Sections/UsersSection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sections/UsersSection.cs
rename to src/Umbraco.Core/Sections/UsersSection.cs
diff --git a/src/Umbraco.Core/Security/IMemberUserKeyProvider.cs b/src/Umbraco.Core/Security/IMemberUserKeyProvider.cs
new file mode 100644
index 0000000000..439e7a82b8
--- /dev/null
+++ b/src/Umbraco.Core/Security/IMemberUserKeyProvider.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Core.Security
+{
+ public interface IMemberUserKeyProvider
+ {
+ object GetMemberProviderUserKey();
+ }
+}
diff --git a/src/Umbraco.Abstractions/Security/IPasswordHasher.cs b/src/Umbraco.Core/Security/IPasswordHasher.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Security/IPasswordHasher.cs
rename to src/Umbraco.Core/Security/IPasswordHasher.cs
diff --git a/src/Umbraco.Core/Security/IPublicAccessChecker.cs b/src/Umbraco.Core/Security/IPublicAccessChecker.cs
new file mode 100644
index 0000000000..a47186394e
--- /dev/null
+++ b/src/Umbraco.Core/Security/IPublicAccessChecker.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Web.Security
+{
+ public interface IPublicAccessChecker
+ {
+ PublicAccessStatus HasMemberAccessToContent(int publishedContentId);
+ }
+}
diff --git a/src/Umbraco.Core/Security/IWebSecurity.cs b/src/Umbraco.Core/Security/IWebSecurity.cs
new file mode 100644
index 0000000000..0822b5cb69
--- /dev/null
+++ b/src/Umbraco.Core/Security/IWebSecurity.cs
@@ -0,0 +1,62 @@
+using System;
+using Umbraco.Core;
+using Umbraco.Core.Models.Membership;
+
+namespace Umbraco.Web.Security
+{
+ public interface IWebSecurity
+ {
+ ///
+ /// Gets the current user.
+ ///
+ /// The current user.
+ IUser CurrentUser { get; }
+
+ [Obsolete("This needs to be removed, ASP.NET Identity should always be used for this operation, this is currently only used in the installer which needs to be updated")]
+ double PerformLogin(int userId);
+
+ [Obsolete("This needs to be removed, ASP.NET Identity should always be used for this operation, this is currently only used in the installer which needs to be updated")]
+ void ClearCurrentLogin();
+
+ ///
+ /// Gets the current user's id.
+ ///
+ ///
+ Attempt GetUserId();
+
+ ///
+ /// Validates the currently logged in user and ensures they are not timed out
+ ///
+ ///
+ bool ValidateCurrentUser();
+
+ ///
+ /// Validates the current user assigned to the request and ensures the stored user data is valid
+ ///
+ /// set to true if you want exceptions to be thrown if failed
+ /// If true requires that the user is approved to be validated
+ ///
+ ValidateRequestAttempt ValidateCurrentUser(bool throwExceptions, bool requiresApproval = true);
+
+ ///
+ /// Authorizes the full request, checks for SSL and validates the current user
+ ///
+ /// set to true if you want exceptions to be thrown if failed
+ ///
+ ValidateRequestAttempt AuthorizeRequest(bool throwExceptions = false);
+
+ ///
+ /// Checks if the specified user as access to the app
+ ///
+ ///
+ ///
+ ///
+ bool UserHasSectionAccess(string section, IUser user);
+
+ ///
+ /// Ensures that a back office user is logged in
+ ///
+ ///
+ bool IsAuthenticated();
+ }
+}
diff --git a/src/Umbraco.Abstractions/Security/PasswordGenerator.cs b/src/Umbraco.Core/Security/PasswordGenerator.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Security/PasswordGenerator.cs
rename to src/Umbraco.Core/Security/PasswordGenerator.cs
diff --git a/src/Umbraco.Core/Security/PublicAccessStatus.cs b/src/Umbraco.Core/Security/PublicAccessStatus.cs
new file mode 100644
index 0000000000..57df423749
--- /dev/null
+++ b/src/Umbraco.Core/Security/PublicAccessStatus.cs
@@ -0,0 +1,11 @@
+namespace Umbraco.Web.Security
+{
+ public enum PublicAccessStatus
+ {
+ NotLoggedIn,
+ AccessDenied,
+ NotApproved,
+ LockedOut,
+ AccessAccepted
+ }
+}
diff --git a/src/Umbraco.Web/Security/ValidateRequestAttempt.cs b/src/Umbraco.Core/Security/ValidateRequestAttempt.cs
similarity index 100%
rename from src/Umbraco.Web/Security/ValidateRequestAttempt.cs
rename to src/Umbraco.Core/Security/ValidateRequestAttempt.cs
diff --git a/src/Umbraco.Abstractions/SemVersionExtensions.cs b/src/Umbraco.Core/SemVersionExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/SemVersionExtensions.cs
rename to src/Umbraco.Core/SemVersionExtensions.cs
diff --git a/src/Umbraco.Abstractions/Semver/Semver.cs b/src/Umbraco.Core/Semver/Semver.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Semver/Semver.cs
rename to src/Umbraco.Core/Semver/Semver.cs
diff --git a/src/Umbraco.Abstractions/Serialization/IJsonSerializer.cs b/src/Umbraco.Core/Serialization/IJsonSerializer.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Serialization/IJsonSerializer.cs
rename to src/Umbraco.Core/Serialization/IJsonSerializer.cs
diff --git a/src/Umbraco.Abstractions/ServiceContextExtensions.cs b/src/Umbraco.Core/ServiceContextExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ServiceContextExtensions.cs
rename to src/Umbraco.Core/ServiceContextExtensions.cs
diff --git a/src/Umbraco.Abstractions/Services/Changes/ContentTypeChange.cs b/src/Umbraco.Core/Services/Changes/ContentTypeChange.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/Changes/ContentTypeChange.cs
rename to src/Umbraco.Core/Services/Changes/ContentTypeChange.cs
diff --git a/src/Umbraco.Abstractions/Services/Changes/ContentTypeChangeExtensions.cs b/src/Umbraco.Core/Services/Changes/ContentTypeChangeExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/Changes/ContentTypeChangeExtensions.cs
rename to src/Umbraco.Core/Services/Changes/ContentTypeChangeExtensions.cs
diff --git a/src/Umbraco.Abstractions/Services/Changes/ContentTypeChangeTypes.cs b/src/Umbraco.Core/Services/Changes/ContentTypeChangeTypes.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/Changes/ContentTypeChangeTypes.cs
rename to src/Umbraco.Core/Services/Changes/ContentTypeChangeTypes.cs
diff --git a/src/Umbraco.Abstractions/Services/Changes/DomainChangeTypes.cs b/src/Umbraco.Core/Services/Changes/DomainChangeTypes.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/Changes/DomainChangeTypes.cs
rename to src/Umbraco.Core/Services/Changes/DomainChangeTypes.cs
diff --git a/src/Umbraco.Abstractions/Services/Changes/TreeChange.cs b/src/Umbraco.Core/Services/Changes/TreeChange.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/Changes/TreeChange.cs
rename to src/Umbraco.Core/Services/Changes/TreeChange.cs
diff --git a/src/Umbraco.Abstractions/Services/Changes/TreeChangeExtensions.cs b/src/Umbraco.Core/Services/Changes/TreeChangeExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/Changes/TreeChangeExtensions.cs
rename to src/Umbraco.Core/Services/Changes/TreeChangeExtensions.cs
diff --git a/src/Umbraco.Abstractions/Services/Changes/TreeChangeTypes.cs b/src/Umbraco.Core/Services/Changes/TreeChangeTypes.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/Changes/TreeChangeTypes.cs
rename to src/Umbraco.Core/Services/Changes/TreeChangeTypes.cs
diff --git a/src/Umbraco.Abstractions/Services/ContentServiceExtensions.cs b/src/Umbraco.Core/Services/ContentServiceExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/ContentServiceExtensions.cs
rename to src/Umbraco.Core/Services/ContentServiceExtensions.cs
diff --git a/src/Umbraco.Abstractions/Services/ContentTypeServiceExtensions.cs b/src/Umbraco.Core/Services/ContentTypeServiceExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/ContentTypeServiceExtensions.cs
rename to src/Umbraco.Core/Services/ContentTypeServiceExtensions.cs
diff --git a/src/Umbraco.Abstractions/Services/DateTypeServiceExtensions.cs b/src/Umbraco.Core/Services/DateTypeServiceExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/DateTypeServiceExtensions.cs
rename to src/Umbraco.Core/Services/DateTypeServiceExtensions.cs
diff --git a/src/Umbraco.Abstractions/Services/IAuditService.cs b/src/Umbraco.Core/Services/IAuditService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IAuditService.cs
rename to src/Umbraco.Core/Services/IAuditService.cs
diff --git a/src/Umbraco.Abstractions/Services/IConsentService.cs b/src/Umbraco.Core/Services/IConsentService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IConsentService.cs
rename to src/Umbraco.Core/Services/IConsentService.cs
diff --git a/src/Umbraco.Abstractions/Services/IContentService.cs b/src/Umbraco.Core/Services/IContentService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IContentService.cs
rename to src/Umbraco.Core/Services/IContentService.cs
diff --git a/src/Umbraco.Abstractions/Services/IContentServiceBase.cs b/src/Umbraco.Core/Services/IContentServiceBase.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IContentServiceBase.cs
rename to src/Umbraco.Core/Services/IContentServiceBase.cs
diff --git a/src/Umbraco.Abstractions/Services/IContentTypeBaseServiceProvider.cs b/src/Umbraco.Core/Services/IContentTypeBaseServiceProvider.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IContentTypeBaseServiceProvider.cs
rename to src/Umbraco.Core/Services/IContentTypeBaseServiceProvider.cs
diff --git a/src/Umbraco.Abstractions/Services/IContentTypeService.cs b/src/Umbraco.Core/Services/IContentTypeService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IContentTypeService.cs
rename to src/Umbraco.Core/Services/IContentTypeService.cs
diff --git a/src/Umbraco.Abstractions/Services/IContentTypeServiceBase.cs b/src/Umbraco.Core/Services/IContentTypeServiceBase.cs
similarity index 91%
rename from src/Umbraco.Abstractions/Services/IContentTypeServiceBase.cs
rename to src/Umbraco.Core/Services/IContentTypeServiceBase.cs
index 6ed3c85e91..4c818aa87c 100644
--- a/src/Umbraco.Abstractions/Services/IContentTypeServiceBase.cs
+++ b/src/Umbraco.Core/Services/IContentTypeServiceBase.cs
@@ -51,7 +51,10 @@ namespace Umbraco.Core.Services
IEnumerable GetComposedOf(int id); // composition axis
IEnumerable GetChildren(int id);
+ IEnumerable GetChildren(Guid id);
+
bool HasChildren(int id);
+ bool HasChildren(Guid id);
void Save(TItem item, int userId = Constants.Security.SuperUserId);
void Save(IEnumerable items, int userId = Constants.Security.SuperUserId);
@@ -69,6 +72,13 @@ namespace Umbraco.Core.Services
///
bool HasContainerInPath(string contentPath);
+ ///
+ /// Gets a value indicating whether there is a list view content item in the path.
+ ///
+ ///
+ ///
+ bool HasContainerInPath(params int[] ids);
+
Attempt> CreateContainer(int parentContainerId, string name, int userId = Constants.Security.SuperUserId);
Attempt SaveContainer(EntityContainer container, int userId = Constants.Security.SuperUserId);
EntityContainer GetContainer(int containerId);
diff --git a/src/Umbraco.Abstractions/Services/IDashboardService.cs b/src/Umbraco.Core/Services/IDashboardService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IDashboardService.cs
rename to src/Umbraco.Core/Services/IDashboardService.cs
diff --git a/src/Umbraco.Abstractions/Services/IDataTypeService.cs b/src/Umbraco.Core/Services/IDataTypeService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IDataTypeService.cs
rename to src/Umbraco.Core/Services/IDataTypeService.cs
diff --git a/src/Umbraco.Abstractions/Services/IDomainService.cs b/src/Umbraco.Core/Services/IDomainService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IDomainService.cs
rename to src/Umbraco.Core/Services/IDomainService.cs
diff --git a/src/Umbraco.Abstractions/Services/IEntityService.cs b/src/Umbraco.Core/Services/IEntityService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IEntityService.cs
rename to src/Umbraco.Core/Services/IEntityService.cs
diff --git a/src/Umbraco.Abstractions/Services/IEntityXmlSerializer.cs b/src/Umbraco.Core/Services/IEntityXmlSerializer.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IEntityXmlSerializer.cs
rename to src/Umbraco.Core/Services/IEntityXmlSerializer.cs
diff --git a/src/Umbraco.Abstractions/Services/IExternalLoginService.cs b/src/Umbraco.Core/Services/IExternalLoginService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IExternalLoginService.cs
rename to src/Umbraco.Core/Services/IExternalLoginService.cs
diff --git a/src/Umbraco.Abstractions/Services/IFileService.cs b/src/Umbraco.Core/Services/IFileService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IFileService.cs
rename to src/Umbraco.Core/Services/IFileService.cs
diff --git a/src/Umbraco.Abstractions/Services/IIdKeyMap.cs b/src/Umbraco.Core/Services/IIdKeyMap.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IIdKeyMap.cs
rename to src/Umbraco.Core/Services/IIdKeyMap.cs
diff --git a/src/Umbraco.Abstractions/Services/IKeyValueService.cs b/src/Umbraco.Core/Services/IKeyValueService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IKeyValueService.cs
rename to src/Umbraco.Core/Services/IKeyValueService.cs
diff --git a/src/Umbraco.Abstractions/Services/ILocalizationService.cs b/src/Umbraco.Core/Services/ILocalizationService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/ILocalizationService.cs
rename to src/Umbraco.Core/Services/ILocalizationService.cs
diff --git a/src/Umbraco.Abstractions/Services/ILocalizedTextService.cs b/src/Umbraco.Core/Services/ILocalizedTextService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/ILocalizedTextService.cs
rename to src/Umbraco.Core/Services/ILocalizedTextService.cs
diff --git a/src/Umbraco.Abstractions/Services/IMacroService.cs b/src/Umbraco.Core/Services/IMacroService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IMacroService.cs
rename to src/Umbraco.Core/Services/IMacroService.cs
diff --git a/src/Umbraco.Abstractions/Services/IMediaService.cs b/src/Umbraco.Core/Services/IMediaService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IMediaService.cs
rename to src/Umbraco.Core/Services/IMediaService.cs
diff --git a/src/Umbraco.Abstractions/Services/IMediaTypeService.cs b/src/Umbraco.Core/Services/IMediaTypeService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IMediaTypeService.cs
rename to src/Umbraco.Core/Services/IMediaTypeService.cs
diff --git a/src/Umbraco.Abstractions/Services/IMemberGroupService.cs b/src/Umbraco.Core/Services/IMemberGroupService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IMemberGroupService.cs
rename to src/Umbraco.Core/Services/IMemberGroupService.cs
diff --git a/src/Umbraco.Abstractions/Services/IMemberService.cs b/src/Umbraco.Core/Services/IMemberService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IMemberService.cs
rename to src/Umbraco.Core/Services/IMemberService.cs
diff --git a/src/Umbraco.Abstractions/Services/IMemberTypeService.cs b/src/Umbraco.Core/Services/IMemberTypeService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IMemberTypeService.cs
rename to src/Umbraco.Core/Services/IMemberTypeService.cs
diff --git a/src/Umbraco.Abstractions/Services/IMembershipMemberService.cs b/src/Umbraco.Core/Services/IMembershipMemberService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IMembershipMemberService.cs
rename to src/Umbraco.Core/Services/IMembershipMemberService.cs
diff --git a/src/Umbraco.Abstractions/Services/IMembershipRoleService.cs b/src/Umbraco.Core/Services/IMembershipRoleService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IMembershipRoleService.cs
rename to src/Umbraco.Core/Services/IMembershipRoleService.cs
diff --git a/src/Umbraco.Abstractions/Services/IMembershipUserService.cs b/src/Umbraco.Core/Services/IMembershipUserService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IMembershipUserService.cs
rename to src/Umbraco.Core/Services/IMembershipUserService.cs
diff --git a/src/Umbraco.Abstractions/Services/INotificationService.cs b/src/Umbraco.Core/Services/INotificationService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/INotificationService.cs
rename to src/Umbraco.Core/Services/INotificationService.cs
diff --git a/src/Umbraco.Abstractions/Services/IPackagingService.cs b/src/Umbraco.Core/Services/IPackagingService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IPackagingService.cs
rename to src/Umbraco.Core/Services/IPackagingService.cs
diff --git a/src/Umbraco.Abstractions/Services/IPropertyValidationService.cs b/src/Umbraco.Core/Services/IPropertyValidationService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IPropertyValidationService.cs
rename to src/Umbraco.Core/Services/IPropertyValidationService.cs
diff --git a/src/Umbraco.Abstractions/Services/IPublicAccessService.cs b/src/Umbraco.Core/Services/IPublicAccessService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IPublicAccessService.cs
rename to src/Umbraco.Core/Services/IPublicAccessService.cs
diff --git a/src/Umbraco.Abstractions/Services/IRedirectUrlService.cs b/src/Umbraco.Core/Services/IRedirectUrlService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IRedirectUrlService.cs
rename to src/Umbraco.Core/Services/IRedirectUrlService.cs
diff --git a/src/Umbraco.Abstractions/Services/IRelationService.cs b/src/Umbraco.Core/Services/IRelationService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IRelationService.cs
rename to src/Umbraco.Core/Services/IRelationService.cs
diff --git a/src/Umbraco.Abstractions/Services/IRuntime.cs b/src/Umbraco.Core/Services/IRuntime.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IRuntime.cs
rename to src/Umbraco.Core/Services/IRuntime.cs
diff --git a/src/Umbraco.Abstractions/Services/IRuntimeState.cs b/src/Umbraco.Core/Services/IRuntimeState.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IRuntimeState.cs
rename to src/Umbraco.Core/Services/IRuntimeState.cs
diff --git a/src/Umbraco.Abstractions/Services/ISectionService.cs b/src/Umbraco.Core/Services/ISectionService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/ISectionService.cs
rename to src/Umbraco.Core/Services/ISectionService.cs
diff --git a/src/Umbraco.Abstractions/Services/IServerRegistrationService.cs b/src/Umbraco.Core/Services/IServerRegistrationService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IServerRegistrationService.cs
rename to src/Umbraco.Core/Services/IServerRegistrationService.cs
diff --git a/src/Umbraco.Abstractions/Services/IService.cs b/src/Umbraco.Core/Services/IService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IService.cs
rename to src/Umbraco.Core/Services/IService.cs
diff --git a/src/Umbraco.Abstractions/Services/ITagService.cs b/src/Umbraco.Core/Services/ITagService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/ITagService.cs
rename to src/Umbraco.Core/Services/ITagService.cs
diff --git a/src/Umbraco.Abstractions/Services/ITreeService.cs b/src/Umbraco.Core/Services/ITreeService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/ITreeService.cs
rename to src/Umbraco.Core/Services/ITreeService.cs
diff --git a/src/Umbraco.Core/Services/IUpgradeService.cs b/src/Umbraco.Core/Services/IUpgradeService.cs
new file mode 100644
index 0000000000..70bbb68085
--- /dev/null
+++ b/src/Umbraco.Core/Services/IUpgradeService.cs
@@ -0,0 +1,11 @@
+using System.Threading.Tasks;
+using Semver;
+using Umbraco.Core.Models;
+
+namespace Umbraco.Core.Services
+{
+ public interface IUpgradeService
+ {
+ Task CheckUpgrade(SemVersion version);
+ }
+}
diff --git a/src/Umbraco.Abstractions/Services/IUserService.cs b/src/Umbraco.Core/Services/IUserService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/IUserService.cs
rename to src/Umbraco.Core/Services/IUserService.cs
diff --git a/src/Umbraco.Abstractions/Services/LocalizedTextServiceExtensions.cs b/src/Umbraco.Core/Services/LocalizedTextServiceExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/LocalizedTextServiceExtensions.cs
rename to src/Umbraco.Core/Services/LocalizedTextServiceExtensions.cs
diff --git a/src/Umbraco.Abstractions/Services/MediaServiceExtensions.cs b/src/Umbraco.Core/Services/MediaServiceExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/MediaServiceExtensions.cs
rename to src/Umbraco.Core/Services/MediaServiceExtensions.cs
diff --git a/src/Umbraco.Abstractions/Services/MoveOperationStatusType.cs b/src/Umbraco.Core/Services/MoveOperationStatusType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/MoveOperationStatusType.cs
rename to src/Umbraco.Core/Services/MoveOperationStatusType.cs
diff --git a/src/Umbraco.Abstractions/Services/OperationResult.cs b/src/Umbraco.Core/Services/OperationResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/OperationResult.cs
rename to src/Umbraco.Core/Services/OperationResult.cs
diff --git a/src/Umbraco.Abstractions/Services/OperationResultType.cs b/src/Umbraco.Core/Services/OperationResultType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/OperationResultType.cs
rename to src/Umbraco.Core/Services/OperationResultType.cs
diff --git a/src/Umbraco.Abstractions/Services/Ordering.cs b/src/Umbraco.Core/Services/Ordering.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/Ordering.cs
rename to src/Umbraco.Core/Services/Ordering.cs
diff --git a/src/Umbraco.Abstractions/Services/PublicAccessServiceExtensions.cs b/src/Umbraco.Core/Services/PublicAccessServiceExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/PublicAccessServiceExtensions.cs
rename to src/Umbraco.Core/Services/PublicAccessServiceExtensions.cs
diff --git a/src/Umbraco.Abstractions/Services/PublishResult.cs b/src/Umbraco.Core/Services/PublishResult.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/PublishResult.cs
rename to src/Umbraco.Core/Services/PublishResult.cs
diff --git a/src/Umbraco.Abstractions/Services/PublishResultType.cs b/src/Umbraco.Core/Services/PublishResultType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/PublishResultType.cs
rename to src/Umbraco.Core/Services/PublishResultType.cs
diff --git a/src/Umbraco.Abstractions/Services/SectionService.cs b/src/Umbraco.Core/Services/SectionService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/SectionService.cs
rename to src/Umbraco.Core/Services/SectionService.cs
diff --git a/src/Umbraco.Abstractions/Services/ServiceContext.cs b/src/Umbraco.Core/Services/ServiceContext.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/ServiceContext.cs
rename to src/Umbraco.Core/Services/ServiceContext.cs
diff --git a/src/Umbraco.Abstractions/Services/TreeService.cs b/src/Umbraco.Core/Services/TreeService.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/TreeService.cs
rename to src/Umbraco.Core/Services/TreeService.cs
diff --git a/src/Umbraco.Core/Services/UpgradeService.cs b/src/Umbraco.Core/Services/UpgradeService.cs
new file mode 100644
index 0000000000..ead5270b41
--- /dev/null
+++ b/src/Umbraco.Core/Services/UpgradeService.cs
@@ -0,0 +1,23 @@
+using System.Threading.Tasks;
+using Semver;
+using Umbraco.Core.Models;
+using Umbraco.Core.Persistence.Repositories;
+using Umbraco.Core.Services;
+
+namespace Umbraco.Core
+{
+ public class UpgradeService : IUpgradeService
+ {
+ private readonly IUpgradeCheckRepository _upgradeCheckRepository;
+
+ public UpgradeService(IUpgradeCheckRepository upgradeCheckRepository)
+ {
+ _upgradeCheckRepository = upgradeCheckRepository;
+ }
+
+ public async Task CheckUpgrade(SemVersion version)
+ {
+ return await _upgradeCheckRepository.CheckUpgradeAsync(version);
+ }
+ }
+}
diff --git a/src/Umbraco.Abstractions/Services/UserServiceExtensions.cs b/src/Umbraco.Core/Services/UserServiceExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Services/UserServiceExtensions.cs
rename to src/Umbraco.Core/Services/UserServiceExtensions.cs
diff --git a/src/Umbraco.Core/Session/ISessionManager.cs b/src/Umbraco.Core/Session/ISessionManager.cs
new file mode 100644
index 0000000000..f3a47202ee
--- /dev/null
+++ b/src/Umbraco.Core/Session/ISessionManager.cs
@@ -0,0 +1,8 @@
+namespace Umbraco.Core.Session
+{
+ public interface ISessionManager
+ {
+ object GetSessionValue(string sessionName);
+ void SetSessionValue(string sessionName, object value);
+ }
+}
diff --git a/src/Umbraco.Abstractions/Settable.cs b/src/Umbraco.Core/Settable.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Settable.cs
rename to src/Umbraco.Core/Settable.cs
diff --git a/src/Umbraco.Abstractions/SimpleMainDom.cs b/src/Umbraco.Core/SimpleMainDom.cs
similarity index 100%
rename from src/Umbraco.Abstractions/SimpleMainDom.cs
rename to src/Umbraco.Core/SimpleMainDom.cs
diff --git a/src/Umbraco.Abstractions/StringExtensions.cs b/src/Umbraco.Core/StringExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/StringExtensions.cs
rename to src/Umbraco.Core/StringExtensions.cs
diff --git a/src/Umbraco.Abstractions/StringUdi.cs b/src/Umbraco.Core/StringUdi.cs
similarity index 100%
rename from src/Umbraco.Abstractions/StringUdi.cs
rename to src/Umbraco.Core/StringUdi.cs
diff --git a/src/Umbraco.Abstractions/Strings/CleanStringType.cs b/src/Umbraco.Core/Strings/CleanStringType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/CleanStringType.cs
rename to src/Umbraco.Core/Strings/CleanStringType.cs
diff --git a/src/Umbraco.Abstractions/Strings/Css/StylesheetHelper.cs b/src/Umbraco.Core/Strings/Css/StylesheetHelper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/Css/StylesheetHelper.cs
rename to src/Umbraco.Core/Strings/Css/StylesheetHelper.cs
diff --git a/src/Umbraco.Abstractions/Strings/Css/StylesheetRule.cs b/src/Umbraco.Core/Strings/Css/StylesheetRule.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/Css/StylesheetRule.cs
rename to src/Umbraco.Core/Strings/Css/StylesheetRule.cs
diff --git a/src/Umbraco.Abstractions/Strings/DefaultShortStringHelper.cs b/src/Umbraco.Core/Strings/DefaultShortStringHelper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/DefaultShortStringHelper.cs
rename to src/Umbraco.Core/Strings/DefaultShortStringHelper.cs
diff --git a/src/Umbraco.Abstractions/Strings/DefaultShortStringHelperConfig.cs b/src/Umbraco.Core/Strings/DefaultShortStringHelperConfig.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/DefaultShortStringHelperConfig.cs
rename to src/Umbraco.Core/Strings/DefaultShortStringHelperConfig.cs
diff --git a/src/Umbraco.Abstractions/Strings/DefaultUrlSegmentProvider.cs b/src/Umbraco.Core/Strings/DefaultUrlSegmentProvider.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/DefaultUrlSegmentProvider.cs
rename to src/Umbraco.Core/Strings/DefaultUrlSegmentProvider.cs
diff --git a/src/Umbraco.Abstractions/Strings/Diff.cs b/src/Umbraco.Core/Strings/Diff.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/Diff.cs
rename to src/Umbraco.Core/Strings/Diff.cs
diff --git a/src/Umbraco.Abstractions/Strings/HtmlEncodedString.cs b/src/Umbraco.Core/Strings/HtmlEncodedString.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/HtmlEncodedString.cs
rename to src/Umbraco.Core/Strings/HtmlEncodedString.cs
diff --git a/src/Umbraco.Abstractions/Strings/IHtmlEncodedString.cs b/src/Umbraco.Core/Strings/IHtmlEncodedString.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/IHtmlEncodedString.cs
rename to src/Umbraco.Core/Strings/IHtmlEncodedString.cs
diff --git a/src/Umbraco.Abstractions/Strings/IShortStringHelper.cs b/src/Umbraco.Core/Strings/IShortStringHelper.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/IShortStringHelper.cs
rename to src/Umbraco.Core/Strings/IShortStringHelper.cs
diff --git a/src/Umbraco.Abstractions/Strings/IUrlSegmentProvider.cs b/src/Umbraco.Core/Strings/IUrlSegmentProvider.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/IUrlSegmentProvider.cs
rename to src/Umbraco.Core/Strings/IUrlSegmentProvider.cs
diff --git a/src/Umbraco.Abstractions/Strings/PathUtility.cs b/src/Umbraco.Core/Strings/PathUtility.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/PathUtility.cs
rename to src/Umbraco.Core/Strings/PathUtility.cs
diff --git a/src/Umbraco.Abstractions/Strings/UrlSegmentProviderCollection.cs b/src/Umbraco.Core/Strings/UrlSegmentProviderCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/UrlSegmentProviderCollection.cs
rename to src/Umbraco.Core/Strings/UrlSegmentProviderCollection.cs
diff --git a/src/Umbraco.Abstractions/Strings/UrlSegmentProviderCollectionBuilder.cs b/src/Umbraco.Core/Strings/UrlSegmentProviderCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/UrlSegmentProviderCollectionBuilder.cs
rename to src/Umbraco.Core/Strings/UrlSegmentProviderCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/Strings/Utf8ToAsciiConverter.cs b/src/Umbraco.Core/Strings/Utf8ToAsciiConverter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Strings/Utf8ToAsciiConverter.cs
rename to src/Umbraco.Core/Strings/Utf8ToAsciiConverter.cs
diff --git a/src/Umbraco.Abstractions/Sync/DatabaseServerMessengerOptions.cs b/src/Umbraco.Core/Sync/DatabaseServerMessengerOptions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sync/DatabaseServerMessengerOptions.cs
rename to src/Umbraco.Core/Sync/DatabaseServerMessengerOptions.cs
diff --git a/src/Umbraco.Abstractions/Sync/DatabaseServerRegistrar.cs b/src/Umbraco.Core/Sync/DatabaseServerRegistrar.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sync/DatabaseServerRegistrar.cs
rename to src/Umbraco.Core/Sync/DatabaseServerRegistrar.cs
diff --git a/src/Umbraco.Abstractions/Sync/DatabaseServerRegistrarOptions.cs b/src/Umbraco.Core/Sync/DatabaseServerRegistrarOptions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sync/DatabaseServerRegistrarOptions.cs
rename to src/Umbraco.Core/Sync/DatabaseServerRegistrarOptions.cs
diff --git a/src/Umbraco.Core/Sync/IBatchedDatabaseServerMessenger.cs b/src/Umbraco.Core/Sync/IBatchedDatabaseServerMessenger.cs
new file mode 100644
index 0000000000..d8ec82818d
--- /dev/null
+++ b/src/Umbraco.Core/Sync/IBatchedDatabaseServerMessenger.cs
@@ -0,0 +1,12 @@
+namespace Umbraco.Core.Sync
+{
+ ///
+ /// An implementation that works by storing messages in the database.
+ ///
+ public interface IBatchedDatabaseServerMessenger : IDatabaseServerMessenger
+ {
+ void FlushBatch();
+ DatabaseServerMessengerOptions Options { get; }
+ void Startup();
+ }
+}
diff --git a/src/Umbraco.Core/Sync/IDatabaseServerMessenger.cs b/src/Umbraco.Core/Sync/IDatabaseServerMessenger.cs
new file mode 100644
index 0000000000..a49cfdd023
--- /dev/null
+++ b/src/Umbraco.Core/Sync/IDatabaseServerMessenger.cs
@@ -0,0 +1,7 @@
+namespace Umbraco.Core.Sync
+{
+ public interface IDatabaseServerMessenger: IServerMessenger
+ {
+ void Sync();
+ }
+}
diff --git a/src/Umbraco.Abstractions/Sync/IServerAddress.cs b/src/Umbraco.Core/Sync/IServerAddress.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sync/IServerAddress.cs
rename to src/Umbraco.Core/Sync/IServerAddress.cs
diff --git a/src/Umbraco.Abstractions/Sync/IServerMessenger.cs b/src/Umbraco.Core/Sync/IServerMessenger.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sync/IServerMessenger.cs
rename to src/Umbraco.Core/Sync/IServerMessenger.cs
diff --git a/src/Umbraco.Abstractions/Sync/IServerRegistrar.cs b/src/Umbraco.Core/Sync/IServerRegistrar.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sync/IServerRegistrar.cs
rename to src/Umbraco.Core/Sync/IServerRegistrar.cs
diff --git a/src/Umbraco.Abstractions/Sync/MessageType.cs b/src/Umbraco.Core/Sync/MessageType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sync/MessageType.cs
rename to src/Umbraco.Core/Sync/MessageType.cs
diff --git a/src/Umbraco.Abstractions/Sync/RefreshMethodType.cs b/src/Umbraco.Core/Sync/RefreshMethodType.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sync/RefreshMethodType.cs
rename to src/Umbraco.Core/Sync/RefreshMethodType.cs
diff --git a/src/Umbraco.Abstractions/Sync/ServerRole.cs b/src/Umbraco.Core/Sync/ServerRole.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sync/ServerRole.cs
rename to src/Umbraco.Core/Sync/ServerRole.cs
diff --git a/src/Umbraco.Abstractions/Sync/SingleServerRegistrar.cs b/src/Umbraco.Core/Sync/SingleServerRegistrar.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Sync/SingleServerRegistrar.cs
rename to src/Umbraco.Core/Sync/SingleServerRegistrar.cs
diff --git a/src/Umbraco.Abstractions/SystemLock.cs b/src/Umbraco.Core/SystemLock.cs
similarity index 100%
rename from src/Umbraco.Abstractions/SystemLock.cs
rename to src/Umbraco.Core/SystemLock.cs
diff --git a/src/Umbraco.Web/Templates/HtmlImageSourceParser.cs b/src/Umbraco.Core/Templates/HtmlImageSourceParser.cs
similarity index 91%
rename from src/Umbraco.Web/Templates/HtmlImageSourceParser.cs
rename to src/Umbraco.Core/Templates/HtmlImageSourceParser.cs
index 74333cf533..79d65e0829 100644
--- a/src/Umbraco.Web/Templates/HtmlImageSourceParser.cs
+++ b/src/Umbraco.Core/Templates/HtmlImageSourceParser.cs
@@ -2,6 +2,7 @@
using System.Collections.Generic;
using System.Text.RegularExpressions;
using Umbraco.Core;
+using Umbraco.Web.Routing;
namespace Umbraco.Web.Templates
{
@@ -13,10 +14,11 @@ namespace Umbraco.Web.Templates
this._getMediaUrl = getMediaUrl;
}
- private readonly IUmbracoContextAccessor _umbracoContextAccessor;
- public HtmlImageSourceParser(IUmbracoContextAccessor umbracoContextAccessor)
+ private readonly IPublishedUrlProvider _publishedUrlProvider;
+
+ public HtmlImageSourceParser(IPublishedUrlProvider publishedUrlProvider)
{
- _umbracoContextAccessor = umbracoContextAccessor;
+ _publishedUrlProvider = publishedUrlProvider;
}
private static readonly Regex ResolveImgPattern = new Regex(@"(
]*src="")([^""\?]*)((?:\?[^""]*)?""[^>]*data-udi="")([^""]*)(""[^>]*>)",
@@ -54,7 +56,7 @@ namespace Umbraco.Web.Templates
public string EnsureImageSources(string text)
{
if(_getMediaUrl == null)
- _getMediaUrl = (guid) => _umbracoContextAccessor.UmbracoContext.UrlProvider.GetMediaUrl(guid);
+ _getMediaUrl = (guid) => _publishedUrlProvider.GetMediaUrl(guid);
return ResolveImgPattern.Replace(text, match =>
{
diff --git a/src/Umbraco.Web/Templates/HtmlLocalLinkParser.cs b/src/Umbraco.Core/Templates/HtmlLocalLinkParser.cs
similarity index 89%
rename from src/Umbraco.Web/Templates/HtmlLocalLinkParser.cs
rename to src/Umbraco.Core/Templates/HtmlLocalLinkParser.cs
index ef89088a7a..2ecd61f7d2 100644
--- a/src/Umbraco.Web/Templates/HtmlLocalLinkParser.cs
+++ b/src/Umbraco.Core/Templates/HtmlLocalLinkParser.cs
@@ -2,8 +2,6 @@
using System.Collections.Generic;
using System.Text.RegularExpressions;
using Umbraco.Core;
-using Umbraco.Core.Logging;
-using Umbraco.Web.PublishedCache;
using Umbraco.Web.Routing;
namespace Umbraco.Web.Templates
@@ -18,13 +16,15 @@ namespace Umbraco.Web.Templates
RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace);
private readonly IUmbracoContextAccessor _umbracoContextAccessor;
+ private readonly IPublishedUrlProvider _publishedUrlProvider;
- public HtmlLocalLinkParser(IUmbracoContextAccessor umbracoContextAccessor)
+ public HtmlLocalLinkParser(IUmbracoContextAccessor umbracoContextAccessor, IPublishedUrlProvider publishedUrlProvider)
{
_umbracoContextAccessor = umbracoContextAccessor;
+ _publishedUrlProvider = publishedUrlProvider;
}
- internal IEnumerable FindUdisFromLocalLinks(string text)
+ public IEnumerable FindUdisFromLocalLinks(string text)
{
foreach ((int? intId, GuidUdi udi, string tagValue) in FindLocalLinkIds(text))
{
@@ -64,7 +64,6 @@ namespace Umbraco.Web.Templates
if (_umbracoContextAccessor.UmbracoContext == null)
throw new InvalidOperationException("Could not parse internal links, there is no current UmbracoContext");
- var urlProvider = _umbracoContextAccessor.UmbracoContext.UrlProvider;
foreach((int? intId, GuidUdi udi, string tagValue) in FindLocalLinkIds(text))
{
@@ -72,9 +71,9 @@ namespace Umbraco.Web.Templates
{
var newLink = "#";
if (udi.EntityType == Constants.UdiEntityType.Document)
- newLink = urlProvider.GetUrl(udi.Guid);
+ newLink = _publishedUrlProvider.GetUrl(udi.Guid);
else if (udi.EntityType == Constants.UdiEntityType.Media)
- newLink = urlProvider.GetMediaUrl(udi.Guid);
+ newLink = _publishedUrlProvider.GetMediaUrl(udi.Guid);
if (newLink == null)
newLink = "#";
@@ -83,7 +82,7 @@ namespace Umbraco.Web.Templates
}
else if (intId.HasValue)
{
- var newLink = urlProvider.GetUrl(intId.Value);
+ var newLink = _publishedUrlProvider.GetUrl(intId.Value);
text = text.Replace(tagValue, "href=\"" + newLink);
}
}
diff --git a/src/Umbraco.Web/Templates/HtmlUrlParser.cs b/src/Umbraco.Core/Templates/HtmlUrlParser.cs
similarity index 100%
rename from src/Umbraco.Web/Templates/HtmlUrlParser.cs
rename to src/Umbraco.Core/Templates/HtmlUrlParser.cs
diff --git a/src/Umbraco.Web/Templates/ITemplateRenderer.cs b/src/Umbraco.Core/Templates/ITemplateRenderer.cs
similarity index 100%
rename from src/Umbraco.Web/Templates/ITemplateRenderer.cs
rename to src/Umbraco.Core/Templates/ITemplateRenderer.cs
diff --git a/src/Umbraco.Abstractions/ThreadExtensions.cs b/src/Umbraco.Core/ThreadExtensions.cs
similarity index 100%
rename from src/Umbraco.Abstractions/ThreadExtensions.cs
rename to src/Umbraco.Core/ThreadExtensions.cs
diff --git a/src/Umbraco.Abstractions/Tour/BackOfficeTourFilter.cs b/src/Umbraco.Core/Tour/BackOfficeTourFilter.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Tour/BackOfficeTourFilter.cs
rename to src/Umbraco.Core/Tour/BackOfficeTourFilter.cs
diff --git a/src/Umbraco.Abstractions/Tour/TourFilterCollection.cs b/src/Umbraco.Core/Tour/TourFilterCollection.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Tour/TourFilterCollection.cs
rename to src/Umbraco.Core/Tour/TourFilterCollection.cs
diff --git a/src/Umbraco.Abstractions/Tour/TourFilterCollectionBuilder.cs b/src/Umbraco.Core/Tour/TourFilterCollectionBuilder.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Tour/TourFilterCollectionBuilder.cs
rename to src/Umbraco.Core/Tour/TourFilterCollectionBuilder.cs
diff --git a/src/Umbraco.Abstractions/Trees/ActionUrlMethod.cs b/src/Umbraco.Core/Trees/ActionUrlMethod.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Trees/ActionUrlMethod.cs
rename to src/Umbraco.Core/Trees/ActionUrlMethod.cs
diff --git a/src/Umbraco.Abstractions/Trees/CoreTreeAttribute.cs b/src/Umbraco.Core/Trees/CoreTreeAttribute.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Trees/CoreTreeAttribute.cs
rename to src/Umbraco.Core/Trees/CoreTreeAttribute.cs
diff --git a/src/Umbraco.Core/Trees/IMenuItemCollectionFactory.cs b/src/Umbraco.Core/Trees/IMenuItemCollectionFactory.cs
new file mode 100644
index 0000000000..dc4c53bac9
--- /dev/null
+++ b/src/Umbraco.Core/Trees/IMenuItemCollectionFactory.cs
@@ -0,0 +1,17 @@
+using Umbraco.Web.Models.Trees;
+
+namespace Umbraco.Web.Trees
+{
+
+ ///
+ /// Represents a factory to create .
+ ///
+ public interface IMenuItemCollectionFactory
+ {
+ ///
+ /// Creates an empty .
+ ///
+ /// An empty .
+ MenuItemCollection Create();
+ }
+}
diff --git a/src/Umbraco.Abstractions/Trees/ITree.cs b/src/Umbraco.Core/Trees/ITree.cs
similarity index 100%
rename from src/Umbraco.Abstractions/Trees/ITree.cs
rename to src/Umbraco.Core/Trees/ITree.cs
diff --git a/src/Umbraco.Web/Models/Trees/MenuItemCollection.cs b/src/Umbraco.Core/Trees/MenuItemCollection.cs
similarity index 72%
rename from src/Umbraco.Web/Models/Trees/MenuItemCollection.cs
rename to src/Umbraco.Core/Trees/MenuItemCollection.cs
index e6a75b15d4..84d46c0d11 100644
--- a/src/Umbraco.Web/Models/Trees/MenuItemCollection.cs
+++ b/src/Umbraco.Core/Trees/MenuItemCollection.cs
@@ -1,5 +1,6 @@
using System.Collections.Generic;
using System.Runtime.Serialization;
+using Umbraco.Web.Actions;
namespace Umbraco.Web.Models.Trees
{
@@ -9,17 +10,16 @@ namespace Umbraco.Web.Models.Trees
[DataContract(Name = "menuItems", Namespace = "")]
public class MenuItemCollection
{
- public static MenuItemCollection Empty => new MenuItemCollection();
+ private readonly MenuItemList _menuItems;
- private readonly MenuItemList _menuItems = new MenuItemList();
-
- public MenuItemCollection()
+ public MenuItemCollection(ActionCollection actionCollection)
{
+ _menuItems = new MenuItemList(actionCollection);
}
- public MenuItemCollection(IEnumerable