Fixes up nullable State, fixes up tracking global query strings in case they are removed by other routes
This commit is contained in:
@@ -82,7 +82,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
.ForMember(dest => dest.AdditionalData, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.UpdateDate, opt => opt.ResolveUsing<UpdateDateResolver>())
|
||||
.ForMember(dest => dest.Name, opt => opt.ResolveUsing<NameResolver>())
|
||||
.ForMember(dest => dest.State, opt => opt.ResolveUsing<ContentSavedStateResolver<ContentPropertyBasic>>());
|
||||
.ForMember(dest => dest.State, opt => opt.ResolveUsing<ContentBasicSavedStateResolver<ContentPropertyBasic>>());
|
||||
|
||||
//FROM IContent TO ContentPropertyCollectionDto
|
||||
//NOTE: the property mapping for cultures relies on a culture being set in the mapping context
|
||||
|
||||
@@ -7,6 +7,21 @@ using Umbraco.Web.Models.ContentEditing;
|
||||
namespace Umbraco.Web.Models.Mapping
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// Returns the <see cref="ContentSavedState?"/> for an <see cref="IContent"/> item
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
internal class ContentBasicSavedStateResolver<T> : IValueResolver<IContent, IContentProperties<T>, ContentSavedState?>
|
||||
where T : ContentPropertyBasic
|
||||
{
|
||||
private readonly ContentSavedStateResolver<T> _inner = new ContentSavedStateResolver<T>();
|
||||
|
||||
public ContentSavedState? Resolve(IContent source, IContentProperties<T> destination, ContentSavedState? destMember, ResolutionContext context)
|
||||
{
|
||||
return _inner.Resolve(source, destination, default, context);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Returns the <see cref="ContentSavedState"/> for an <see cref="IContent"/> item
|
||||
/// </summary>
|
||||
|
||||
@@ -44,7 +44,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
.ForMember(dest => dest.TreeNodeUrl, opt => opt.ResolveUsing(contentTreeNodeUrlResolver))
|
||||
.ForMember(dest => dest.Notifications, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.Errors, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.State, opt => opt.ResolveUsing<SavedStateResolver<ContentPropertyDisplay>>())
|
||||
.ForMember(dest => dest.State, opt => opt.UseValue<ContentSavedState?>(null))
|
||||
.ForMember(dest => dest.Edited, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.Updater, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.Alias, opt => opt.Ignore())
|
||||
@@ -62,7 +62,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
.ForMember(dest => dest.Icon, opt => opt.MapFrom(src => src.ContentType.Icon))
|
||||
.ForMember(dest => dest.Trashed, opt => opt.MapFrom(src => src.Trashed))
|
||||
.ForMember(dest => dest.ContentTypeAlias, opt => opt.MapFrom(src => src.ContentType.Alias))
|
||||
.ForMember(dest => dest.State, opt => opt.ResolveUsing<SavedStateResolver<ContentPropertyBasic>>())
|
||||
.ForMember(dest => dest.State, opt => opt.UseValue<ContentSavedState?>(null))
|
||||
.ForMember(dest => dest.Edited, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.Updater, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.Alias, opt => opt.Ignore())
|
||||
|
||||
@@ -73,7 +73,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
.ForMember(dest => dest.MembershipScenario, opt => opt.ResolveUsing(src => membershipScenarioMappingResolver.Resolve(src)))
|
||||
.ForMember(dest => dest.Notifications, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.Errors, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.State, opt => opt.ResolveUsing<SavedStateResolver<ContentPropertyDisplay>>())
|
||||
.ForMember(dest => dest.State, opt => opt.UseValue<ContentSavedState?>(null))
|
||||
.ForMember(dest => dest.Edited, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.Updater, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.Alias, opt => opt.Ignore())
|
||||
@@ -91,7 +91,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
.ForMember(dest => dest.Email, opt => opt.MapFrom(src => src.Email))
|
||||
.ForMember(dest => dest.Username, opt => opt.MapFrom(src => src.Username))
|
||||
.ForMember(dest => dest.Trashed, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.State, opt => opt.ResolveUsing<SavedStateResolver<ContentPropertyBasic>>())
|
||||
.ForMember(dest => dest.State, opt => opt.UseValue<ContentSavedState?>(null))
|
||||
.ForMember(dest => dest.Edited, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.Updater, opt => opt.Ignore())
|
||||
.ForMember(dest => dest.Alias, opt => opt.Ignore())
|
||||
|
||||
@@ -1,19 +0,0 @@
|
||||
using AutoMapper;
|
||||
using Umbraco.Core.Models;
|
||||
using Umbraco.Web.Models.ContentEditing;
|
||||
|
||||
namespace Umbraco.Web.Models.Mapping
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns the <see cref="ContentSavedState"/> for an <see cref="IContentBase"/> item
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
internal class SavedStateResolver<T> : IValueResolver<IContentBase, IContentProperties<T>, ContentSavedState>
|
||||
where T : ContentPropertyBasic
|
||||
{
|
||||
public ContentSavedState Resolve(IContentBase source, IContentProperties<T> destination, ContentSavedState destMember, ResolutionContext context)
|
||||
{
|
||||
return source.Id == 0 ? ContentSavedState.NotCreated : ContentSavedState.Draft;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user