Updates all required mappings to use AutoMapperExtensions.MapWithUmbracoContext where appropriate
This commit is contained in:
@@ -23,7 +23,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
{
|
||||
return Mapper.Map<TIn, TOut>(obj, opt => opt.Items["UmbracoContext"] = umbCtx);
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// Returns an <see cref="UmbracoContext"/> from the mapping options
|
||||
/// </summary>
|
||||
@@ -32,11 +32,11 @@ namespace Umbraco.Web.Models.Mapping
|
||||
/// <remarks>
|
||||
/// If an UmbracoContext is not found in the mapping options, it will try to retrieve it from the singleton
|
||||
/// </remarks>
|
||||
public static UmbracoContext GetUmbracoContext(this ResolutionResult res)
|
||||
public static UmbracoContext GetUmbracoContext(this ResolutionContext res)
|
||||
{
|
||||
//get the context from the mapping options set during a mapping operation
|
||||
object umbCtx;
|
||||
if (res.Context.Options.Items.TryGetValue("UmbracoContext", out umbCtx))
|
||||
if (res.Options.Items.TryGetValue("UmbracoContext", out umbCtx))
|
||||
{
|
||||
var umbracoContext = umbCtx as UmbracoContext;
|
||||
if (umbracoContext != null) return umbracoContext;
|
||||
|
||||
@@ -20,7 +20,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
|
||||
private string ResolveCore(ResolutionResult res, TSource source)
|
||||
{
|
||||
var umbCtx = res.GetUmbracoContext();
|
||||
var umbCtx = res.Context.GetUmbracoContext();
|
||||
//map the tree node url
|
||||
if (umbCtx != null)
|
||||
{
|
||||
|
||||
@@ -25,12 +25,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
public override void ConfigureMappings(IConfiguration config, ApplicationContext applicationContext)
|
||||
{
|
||||
//FROM MembershipUser TO MediaItemDisplay - used when using a non-umbraco membership provider
|
||||
config.CreateMap<MembershipUser, MemberDisplay>()
|
||||
.ConvertUsing(user =>
|
||||
{
|
||||
var member = Mapper.Map<MembershipUser, IMember>(user);
|
||||
return Mapper.Map<IMember, MemberDisplay>(member);
|
||||
});
|
||||
config.CreateMap<MembershipUser, MemberDisplay>().ConvertUsing<MembershipUserTypeConverter>();
|
||||
|
||||
//FROM MembershipUser TO IMember - used when using a non-umbraco membership provider
|
||||
config.CreateMap<MembershipUser, IMember>()
|
||||
@@ -262,7 +257,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
var tabs = (List<Tab<ContentPropertyDisplay>>) result.Value;
|
||||
|
||||
//now we can customize the result with the current context, we can get the UmbracoContext from the options
|
||||
CustomizeProperties(source.GetUmbracoContext(), member, tabs);
|
||||
CustomizeProperties(source.Context.GetUmbracoContext(), member, tabs);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -500,6 +495,21 @@ namespace Umbraco.Web.Models.Mapping
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// A converter to go from a <see cref="MembershipUser"/> to a <see cref="MemberDisplay"/>
|
||||
/// </summary>
|
||||
internal class MembershipUserTypeConverter : ITypeConverter<MembershipUser, MemberDisplay>
|
||||
{
|
||||
public MemberDisplay Convert(ResolutionContext context)
|
||||
{
|
||||
var source = (MembershipUser)context.SourceValue;
|
||||
//first convert to IMember
|
||||
var member = Mapper.Map<MembershipUser, IMember>(source);
|
||||
//then convert to MemberDisplay
|
||||
return AutoMapperExtensions.MapWithUmbracoContext<IMember, MemberDisplay>(member, context.GetUmbracoContext());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@ namespace Umbraco.Web.Models.Mapping
|
||||
|
||||
private string ResolveCore(ResolutionResult res, IMember source)
|
||||
{
|
||||
var umbCtx = res.GetUmbracoContext();
|
||||
var umbCtx = res.Context.GetUmbracoContext();
|
||||
//map the tree node url
|
||||
if (umbCtx != null)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user