diff --git a/src/Umbraco.Core/Models/ContentEditing/ContentApp.cs b/src/Umbraco.Abstractions/Models/ContentEditing/ContentApp.cs
similarity index 100%
rename from src/Umbraco.Core/Models/ContentEditing/ContentApp.cs
rename to src/Umbraco.Abstractions/Models/ContentEditing/ContentApp.cs
diff --git a/src/Umbraco.Core/Models/ContentEditing/ContentAppBadge.cs b/src/Umbraco.Abstractions/Models/ContentEditing/ContentAppBadge.cs
similarity index 90%
rename from src/Umbraco.Core/Models/ContentEditing/ContentAppBadge.cs
rename to src/Umbraco.Abstractions/Models/ContentEditing/ContentAppBadge.cs
index ba11fd338d..19dbd2b8e7 100644
--- a/src/Umbraco.Core/Models/ContentEditing/ContentAppBadge.cs
+++ b/src/Umbraco.Abstractions/Models/ContentEditing/ContentAppBadge.cs
@@ -1,9 +1,7 @@
-namespace Umbraco.Core.Models.ContentEditing
+using System.Runtime.Serialization;
+
+namespace Umbraco.Core.Models.ContentEditing
{
- using System.Runtime.Serialization;
-
- using Umbraco.Core.Events;
-
///
/// Represents a content app badge
///
diff --git a/src/Umbraco.Abstractions/Models/ContentEditing/ContentAppBadgeType.cs b/src/Umbraco.Abstractions/Models/ContentEditing/ContentAppBadgeType.cs
new file mode 100644
index 0000000000..a46fa7d3a9
--- /dev/null
+++ b/src/Umbraco.Abstractions/Models/ContentEditing/ContentAppBadgeType.cs
@@ -0,0 +1,25 @@
+using System.Runtime.Serialization;
+
+namespace Umbraco.Core.Models.ContentEditing
+{
+ // TODO: This was marked with `[StringEnumConverter]` to inform the serializer
+ // to serialize the values to string instead of INT (which is the default)
+ // so we need to either invent our own attribute and make the implementation aware of it
+ // or ... something else?
+
+ ///
+ /// Represent the content app badge types
+ ///
+ [DataContract(Name = "contentAppBadgeType")]
+ public enum ContentAppBadgeType
+ {
+ [EnumMember(Value = "default")]
+ Default = 0,
+
+ [EnumMember(Value = "warning")]
+ Warning = 1,
+
+ [EnumMember(Value = "alert")]
+ Alert = 2
+ }
+}
diff --git a/src/Umbraco.Core/Models/ContentEditing/IContentAppFactory.cs b/src/Umbraco.Abstractions/Models/ContentEditing/IContentAppFactory.cs
similarity index 100%
rename from src/Umbraco.Core/Models/ContentEditing/IContentAppFactory.cs
rename to src/Umbraco.Abstractions/Models/ContentEditing/IContentAppFactory.cs
diff --git a/src/Umbraco.Abstractions/Models/Entities/EntityBase.cs b/src/Umbraco.Abstractions/Models/Entities/EntityBase.cs
index 3d312eea4f..d848d3f404 100644
--- a/src/Umbraco.Abstractions/Models/Entities/EntityBase.cs
+++ b/src/Umbraco.Abstractions/Models/Entities/EntityBase.cs
@@ -80,37 +80,7 @@ namespace Umbraco.Core.Models.Entities
_id = default;
_key = Guid.Empty;
_hasIdentity = false;
- }
-
- ///
- /// Updates the entity when it is being saved for the first time.
- ///
- internal virtual void AddingEntity()
- {
- var now = DateTime.Now;
-
- // set the create and update dates, if not already set
- if (IsPropertyDirty("CreateDate") == false || _createDate == default)
- CreateDate = now;
- if (IsPropertyDirty("UpdateDate") == false || _updateDate == default)
- UpdateDate = now;
- }
-
- ///
- /// Updates the entity when it is being saved.
- ///
- internal virtual void UpdatingEntity()
- {
- var now = DateTime.Now;
-
- // just in case
- if (_createDate == default)
- CreateDate = now;
-
- // set the update date if not already set
- if (IsPropertyDirty("UpdateDate") == false || _updateDate == default)
- UpdateDate = now;
- }
+ }
public virtual bool Equals(EntityBase other)
{
diff --git a/src/Umbraco.Core/Models/Entities/EntityExtensions.cs b/src/Umbraco.Abstractions/Models/Entities/EntityExtensions.cs
similarity index 88%
rename from src/Umbraco.Core/Models/Entities/EntityExtensions.cs
rename to src/Umbraco.Abstractions/Models/Entities/EntityExtensions.cs
index 2ee6a2d5ed..1e51f81d88 100644
--- a/src/Umbraco.Core/Models/Entities/EntityExtensions.cs
+++ b/src/Umbraco.Abstractions/Models/Entities/EntityExtensions.cs
@@ -2,12 +2,12 @@
namespace Umbraco.Core.Models.Entities
{
- internal static class EntityExtensions
+ public static class EntityExtensions
{
///
/// Updates the entity when it is being saved.
///
- internal static void UpdatingEntity(this IEntity entity)
+ public static void UpdatingEntity(this IEntity entity)
{
var now = DateTime.Now;
@@ -27,7 +27,7 @@ namespace Umbraco.Core.Models.Entities
///
/// Updates the entity when it is being saved for the first time.
///
- internal static void AddingEntity(this IEntity entity)
+ public static void AddingEntity(this IEntity entity)
{
var now = DateTime.Now;
var canBeDirty = entity as ICanBeDirty;
diff --git a/src/Umbraco.Core/Models/Entities/IMediaEntitySlim.cs b/src/Umbraco.Abstractions/Models/Entities/IMediaEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Core/Models/Entities/IMediaEntitySlim.cs
rename to src/Umbraco.Abstractions/Models/Entities/IMediaEntitySlim.cs
diff --git a/src/Umbraco.Core/Models/Entities/IMemberEntitySlim.cs b/src/Umbraco.Abstractions/Models/Entities/IMemberEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Core/Models/Entities/IMemberEntitySlim.cs
rename to src/Umbraco.Abstractions/Models/Entities/IMemberEntitySlim.cs
diff --git a/src/Umbraco.Core/Models/Entities/MediaEntitySlim.cs b/src/Umbraco.Abstractions/Models/Entities/MediaEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Core/Models/Entities/MediaEntitySlim.cs
rename to src/Umbraco.Abstractions/Models/Entities/MediaEntitySlim.cs
diff --git a/src/Umbraco.Core/Models/Entities/MemberEntitySlim.cs b/src/Umbraco.Abstractions/Models/Entities/MemberEntitySlim.cs
similarity index 100%
rename from src/Umbraco.Core/Models/Entities/MemberEntitySlim.cs
rename to src/Umbraco.Abstractions/Models/Entities/MemberEntitySlim.cs
diff --git a/src/Umbraco.Core/Models/Membership/ContentPermissionSet.cs b/src/Umbraco.Abstractions/Models/Membership/ContentPermissionSet.cs
similarity index 100%
rename from src/Umbraco.Core/Models/Membership/ContentPermissionSet.cs
rename to src/Umbraco.Abstractions/Models/Membership/ContentPermissionSet.cs
diff --git a/src/Umbraco.Abstractions/Models/Membership/MembershipScenario.cs b/src/Umbraco.Abstractions/Models/Membership/MembershipScenario.cs
index ec092f83c1..6fe587e1ce 100644
--- a/src/Umbraco.Abstractions/Models/Membership/MembershipScenario.cs
+++ b/src/Umbraco.Abstractions/Models/Membership/MembershipScenario.cs
@@ -6,6 +6,8 @@
///
public enum MembershipScenario
{
+ //TODO: This will become obsolete when we get asp.net identity members in place
+
///
/// The member is based on the native Umbraco members (IMember + Umbraco membership provider)
///
diff --git a/src/Umbraco.Core/Models/Packaging/CompiledPackage.cs b/src/Umbraco.Abstractions/Models/Packaging/CompiledPackage.cs
similarity index 100%
rename from src/Umbraco.Core/Models/Packaging/CompiledPackage.cs
rename to src/Umbraco.Abstractions/Models/Packaging/CompiledPackage.cs
diff --git a/src/Umbraco.Core/Models/Packaging/CompiledPackageDocument.cs b/src/Umbraco.Abstractions/Models/Packaging/CompiledPackageDocument.cs
similarity index 100%
rename from src/Umbraco.Core/Models/Packaging/CompiledPackageDocument.cs
rename to src/Umbraco.Abstractions/Models/Packaging/CompiledPackageDocument.cs
diff --git a/src/Umbraco.Core/Models/Packaging/CompiledPackageFile.cs b/src/Umbraco.Abstractions/Models/Packaging/CompiledPackageFile.cs
similarity index 100%
rename from src/Umbraco.Core/Models/Packaging/CompiledPackageFile.cs
rename to src/Umbraco.Abstractions/Models/Packaging/CompiledPackageFile.cs
diff --git a/src/Umbraco.Core/Models/Packaging/PreInstallWarnings.cs b/src/Umbraco.Abstractions/Models/Packaging/PreInstallWarnings.cs
similarity index 100%
rename from src/Umbraco.Core/Models/Packaging/PreInstallWarnings.cs
rename to src/Umbraco.Abstractions/Models/Packaging/PreInstallWarnings.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/ILivePublishedModelFactory.cs b/src/Umbraco.Abstractions/Models/PublishedContent/ILivePublishedModelFactory.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/ILivePublishedModelFactory.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/ILivePublishedModelFactory.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/IPublishedContent.cs b/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedContent.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/IPublishedContent.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/IPublishedContent.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/IPublishedContentType.cs b/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedContentType.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/IPublishedContentType.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/IPublishedContentType.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/IPublishedElement.cs b/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedElement.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/IPublishedElement.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/IPublishedElement.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/IPublishedModelFactory.cs b/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedModelFactory.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/IPublishedModelFactory.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/IPublishedModelFactory.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/IPublishedProperty.cs b/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedProperty.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/IPublishedProperty.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/IPublishedProperty.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/IPublishedPropertyType.cs b/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedPropertyType.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/IPublishedPropertyType.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/IPublishedPropertyType.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/IPublishedValueFallback.cs b/src/Umbraco.Abstractions/Models/PublishedContent/IPublishedValueFallback.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/IPublishedValueFallback.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/IPublishedValueFallback.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/NoopPublishedModelFactory.cs b/src/Umbraco.Abstractions/Models/PublishedContent/NoopPublishedModelFactory.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/NoopPublishedModelFactory.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/NoopPublishedModelFactory.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/NoopPublishedValueFallback.cs b/src/Umbraco.Abstractions/Models/PublishedContent/NoopPublishedValueFallback.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/NoopPublishedValueFallback.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/NoopPublishedValueFallback.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/PublishedContentTypeConverter.cs b/src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentTypeConverter.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/PublishedContentTypeConverter.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentTypeConverter.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/PublishedContentWrapped.cs b/src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentWrapped.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/PublishedContentWrapped.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/PublishedContentWrapped.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/PublishedElementModel.cs b/src/Umbraco.Abstractions/Models/PublishedContent/PublishedElementModel.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/PublishedElementModel.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/PublishedElementModel.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/PublishedElementWrapped.cs b/src/Umbraco.Abstractions/Models/PublishedContent/PublishedElementWrapped.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/PublishedElementWrapped.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/PublishedElementWrapped.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/PublishedModelAttribute.cs b/src/Umbraco.Abstractions/Models/PublishedContent/PublishedModelAttribute.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/PublishedModelAttribute.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/PublishedModelAttribute.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/PublishedPropertyBase.cs b/src/Umbraco.Abstractions/Models/PublishedContent/PublishedPropertyBase.cs
similarity index 97%
rename from src/Umbraco.Core/Models/PublishedContent/PublishedPropertyBase.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/PublishedPropertyBase.cs
index e11d2391ec..33f8e94139 100644
--- a/src/Umbraco.Core/Models/PublishedContent/PublishedPropertyBase.cs
+++ b/src/Umbraco.Abstractions/Models/PublishedContent/PublishedPropertyBase.cs
@@ -7,7 +7,7 @@ namespace Umbraco.Core.Models.PublishedContent
/// Provides a base class for IPublishedProperty implementations which converts and caches
/// the value source to the actual value to use when rendering content.
///
- internal abstract class PublishedPropertyBase : IPublishedProperty
+ public abstract class PublishedPropertyBase : IPublishedProperty
{
///
/// Initializes a new instance of the class.
diff --git a/src/Umbraco.Core/Models/PublishedContent/PublishedSearchResult.cs b/src/Umbraco.Abstractions/Models/PublishedContent/PublishedSearchResult.cs
similarity index 100%
rename from src/Umbraco.Core/Models/PublishedContent/PublishedSearchResult.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/PublishedSearchResult.cs
diff --git a/src/Umbraco.Core/Models/PublishedContent/RawValueProperty.cs b/src/Umbraco.Abstractions/Models/PublishedContent/RawValueProperty.cs
similarity index 97%
rename from src/Umbraco.Core/Models/PublishedContent/RawValueProperty.cs
rename to src/Umbraco.Abstractions/Models/PublishedContent/RawValueProperty.cs
index 10f999532f..596840cf6a 100644
--- a/src/Umbraco.Core/Models/PublishedContent/RawValueProperty.cs
+++ b/src/Umbraco.Abstractions/Models/PublishedContent/RawValueProperty.cs
@@ -14,7 +14,7 @@ namespace Umbraco.Core.Models.PublishedContent
/// Does not support variations: the ctor throws if the property type
/// supports variations.
///
- internal class RawValueProperty : PublishedPropertyBase
+ public class RawValueProperty : PublishedPropertyBase
{
private readonly object _sourceValue; //the value in the db
private readonly Lazy
///
- internal static MembershipScenario GetMembershipScenario(this IMemberService memberService)
+ internal static MembershipScenario GetMembershipScenario(this IMemberTypeService memberTypeService)
{
if (_scenario.HasValue == false)
{
@@ -39,7 +39,7 @@ namespace Umbraco.Core.Models.Membership
{
return MembershipScenario.NativeUmbraco;
}
- var memberType = Current.Services.MemberTypeService.Get(Constants.Conventions.MemberTypes.DefaultAlias);
+ var memberType = memberTypeService.Get(Constants.Conventions.MemberTypes.DefaultAlias);
return memberType != null
? MembershipScenario.CustomProviderWithUmbracoLink
: MembershipScenario.StandaloneCustomProvider;
diff --git a/src/Umbraco.Core/Serialization/JsonNetSerializer.cs b/src/Umbraco.Core/Serialization/JsonNetSerializer.cs
index a2a5f19082..16d8668394 100644
--- a/src/Umbraco.Core/Serialization/JsonNetSerializer.cs
+++ b/src/Umbraco.Core/Serialization/JsonNetSerializer.cs
@@ -4,19 +4,25 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
namespace Umbraco.Core.Serialization
{
public class JsonNetSerializer : IJsonSerializer
{
+ private static readonly JsonConverter[] _defaultConverters = new JsonConverter[]
+ {
+ new StringEnumConverter()
+ };
+
public string Serialize(object input)
{
- return JsonConvert.SerializeObject(input);
+ return JsonConvert.SerializeObject(input, _defaultConverters);
}
public T Deserialize(string input)
{
- return JsonConvert.DeserializeObject(input);
+ return JsonConvert.DeserializeObject(input, _defaultConverters);
}
}
}
diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj
index 65776ab57c..1c1bd30418 100755
--- a/src/Umbraco.Core/Umbraco.Core.csproj
+++ b/src/Umbraco.Core/Umbraco.Core.csproj
@@ -202,11 +202,6 @@
-
-
-
-
-
@@ -223,6 +218,7 @@
+
@@ -230,7 +226,6 @@
-
@@ -238,32 +233,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -412,12 +392,8 @@
-
-
-
-
@@ -554,7 +530,6 @@
-
@@ -567,7 +542,6 @@
-
@@ -575,18 +549,11 @@
-
-
-
-
-
-
-
@@ -1095,6 +1062,8 @@
Umbraco.Abstractions
-
+
+
+
\ No newline at end of file
diff --git a/src/Umbraco.Web/Editors/Binders/MemberBinder.cs b/src/Umbraco.Web/Editors/Binders/MemberBinder.cs
index 3ba7d32560..21810272ea 100644
--- a/src/Umbraco.Web/Editors/Binders/MemberBinder.cs
+++ b/src/Umbraco.Web/Editors/Binders/MemberBinder.cs
@@ -66,7 +66,7 @@ namespace Umbraco.Web.Editors.Binders
///
private IMember GetExisting(MemberSave model)
{
- var scenario = _services.MemberService.GetMembershipScenario();
+ var scenario = _services.MemberTypeService.GetMembershipScenario();
var provider = Core.Security.MembershipProviderExtensions.GetMembersMembershipProvider();
switch (scenario)
{
diff --git a/src/Umbraco.Web/Editors/ContentController.cs b/src/Umbraco.Web/Editors/ContentController.cs
index 11cc59a464..9c2cc399fa 100644
--- a/src/Umbraco.Web/Editors/ContentController.cs
+++ b/src/Umbraco.Web/Editors/ContentController.cs
@@ -2310,7 +2310,7 @@ namespace Umbraco.Web.Editors
.Select(rule => rule.RuleValue).ToArray();
MemberDisplay[] members;
- switch (Services.MemberService.GetMembershipScenario())
+ switch (Services.MemberTypeService.GetMembershipScenario())
{
case MembershipScenario.NativeUmbraco:
members = usernames
diff --git a/src/Umbraco.Web/Editors/MemberController.cs b/src/Umbraco.Web/Editors/MemberController.cs
index 13f0ed86c4..7fd293d9b5 100644
--- a/src/Umbraco.Web/Editors/MemberController.cs
+++ b/src/Umbraco.Web/Editors/MemberController.cs
@@ -57,7 +57,7 @@ namespace Umbraco.Web.Editors
///
protected MembershipScenario MembershipScenario
{
- get { return Services.MemberService.GetMembershipScenario(); }
+ get { return Services.MemberTypeService.GetMembershipScenario(); }
}
public PagedResult GetPagedResults(
diff --git a/src/Umbraco.Web/Models/Mapping/MemberTabsAndPropertiesMapper.cs b/src/Umbraco.Web/Models/Mapping/MemberTabsAndPropertiesMapper.cs
index 81d75de498..4173e9a943 100644
--- a/src/Umbraco.Web/Models/Mapping/MemberTabsAndPropertiesMapper.cs
+++ b/src/Umbraco.Web/Models/Mapping/MemberTabsAndPropertiesMapper.cs
@@ -126,7 +126,7 @@ namespace Umbraco.Web.Models.Mapping
Value = _localizedTextService.UmbracoDictionaryTranslate(member.ContentType.Name),
View = Current.PropertyEditors[Constants.PropertyEditors.Aliases.Label].GetValueEditor().View
},
- GetLoginProperty(_memberService, member, _localizedTextService),
+ GetLoginProperty(_memberTypeService, member, _localizedTextService),
new ContentPropertyDisplay
{
Alias = $"{Constants.PropertyEditors.InternalGenericPropertiesPrefix}email",
@@ -208,7 +208,7 @@ namespace Umbraco.Web.Models.Mapping
///
/// Returns the login property display field
///
- ///
+ ///
///
///
///
@@ -218,7 +218,7 @@ namespace Umbraco.Web.Models.Mapping
/// the membership provider is a custom one, we cannot allow changing the username because MembershipProvider's do not actually natively
/// allow that.
///
- internal static ContentPropertyDisplay GetLoginProperty(IMemberService memberService, IMember member, ILocalizedTextService localizedText)
+ internal static ContentPropertyDisplay GetLoginProperty(IMemberTypeService memberTypeService, IMember member, ILocalizedTextService localizedText)
{
var prop = new ContentPropertyDisplay
{
@@ -227,7 +227,7 @@ namespace Umbraco.Web.Models.Mapping
Value = member.Username
};
- var scenario = memberService.GetMembershipScenario();
+ var scenario = memberTypeService.GetMembershipScenario();
// only allow editing if this is a new member, or if the membership provider is the Umbraco one
if (member.HasIdentity == false || scenario == MembershipScenario.NativeUmbraco)