2013-10-29 11:39:34 +11:00
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using AutoMapper;
|
|
|
|
|
|
using Examine;
|
2013-09-02 15:40:14 +02:00
|
|
|
|
using Umbraco.Core;
|
|
|
|
|
|
using Umbraco.Core.Models;
|
|
|
|
|
|
using Umbraco.Core.Models.Mapping;
|
2013-10-30 18:14:16 +11:00
|
|
|
|
using Umbraco.Core.Models.Membership;
|
2013-09-02 15:40:14 +02:00
|
|
|
|
using Umbraco.Web.Models.ContentEditing;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Umbraco.Web.Models.Mapping
|
|
|
|
|
|
{
|
|
|
|
|
|
internal class EntityModelMapper : MapperConfiguration
|
|
|
|
|
|
{
|
|
|
|
|
|
public override void ConfigureMappings(IConfiguration config, ApplicationContext applicationContext)
|
|
|
|
|
|
{
|
|
|
|
|
|
config.CreateMap<UmbracoEntity, EntityBasic>()
|
2014-04-14 15:20:02 +10:00
|
|
|
|
.ForMember(basic => basic.Icon, expression => expression.MapFrom(entity => entity.ContentTypeIcon))
|
|
|
|
|
|
.ForMember(x => x.Alias, expression => expression.Ignore());
|
2013-10-29 11:39:34 +11:00
|
|
|
|
|
2013-10-30 18:14:16 +11:00
|
|
|
|
config.CreateMap<PropertyType, EntityBasic>()
|
2014-04-14 15:20:02 +10:00
|
|
|
|
.ForMember(basic => basic.Icon, expression => expression.UseValue("icon-box"))
|
|
|
|
|
|
.ForMember(basic => basic.Path, expression => expression.UseValue(""))
|
|
|
|
|
|
.ForMember(basic => basic.ParentId, expression => expression.UseValue(-1))
|
|
|
|
|
|
.ForMember(x => x.AdditionalData, expression => expression.Ignore());
|
2013-10-30 18:14:16 +11:00
|
|
|
|
|
2013-10-30 18:30:04 +11:00
|
|
|
|
config.CreateMap<PropertyGroup, EntityBasic>()
|
2014-04-14 15:20:02 +10:00
|
|
|
|
.ForMember(basic => basic.Icon, expression => expression.UseValue("icon-tab"))
|
|
|
|
|
|
.ForMember(basic => basic.Path, expression => expression.UseValue(""))
|
|
|
|
|
|
.ForMember(basic => basic.ParentId, expression => expression.UseValue(-1))
|
|
|
|
|
|
//in v6 the 'alias' is it's lower cased name so we'll stick to that.
|
|
|
|
|
|
.ForMember(basic => basic.Alias, expression => expression.MapFrom(group => group.Name.ToLowerInvariant()))
|
|
|
|
|
|
.ForMember(x => x.AdditionalData, expression => expression.Ignore());
|
2013-10-30 18:30:04 +11:00
|
|
|
|
|
2013-10-30 18:14:16 +11:00
|
|
|
|
config.CreateMap<IUser, EntityBasic>()
|
2014-04-14 15:20:02 +10:00
|
|
|
|
.ForMember(basic => basic.Icon, expression => expression.UseValue("icon-user"))
|
|
|
|
|
|
.ForMember(basic => basic.Path, expression => expression.UseValue(""))
|
|
|
|
|
|
.ForMember(basic => basic.ParentId, expression => expression.UseValue(-1))
|
|
|
|
|
|
.ForMember(basic => basic.Alias, expression => expression.MapFrom(user => user.Username))
|
|
|
|
|
|
.ForMember(x => x.AdditionalData, expression => expression.Ignore());
|
2013-10-30 18:14:16 +11:00
|
|
|
|
|
2013-10-29 11:39:34 +11:00
|
|
|
|
config.CreateMap<SearchResult, EntityBasic>()
|
|
|
|
|
|
//default to document icon
|
|
|
|
|
|
.ForMember(x => x.Icon, expression => expression.UseValue("icon-document"))
|
|
|
|
|
|
.ForMember(x => x.Id, expression => expression.MapFrom(result => result.Id))
|
2014-04-14 15:20:02 +10:00
|
|
|
|
.ForMember(x => x.Name, expression => expression.Ignore())
|
|
|
|
|
|
.ForMember(x => x.Key, expression => expression.Ignore())
|
|
|
|
|
|
.ForMember(x => x.ParentId, expression => expression.Ignore())
|
|
|
|
|
|
.ForMember(x => x.Alias, expression => expression.Ignore())
|
|
|
|
|
|
.ForMember(x => x.Path, expression => expression.Ignore())
|
|
|
|
|
|
.ForMember(x => x.AdditionalData, expression => expression.Ignore())
|
2013-10-29 11:39:34 +11:00
|
|
|
|
.AfterMap((result, basic) =>
|
|
|
|
|
|
{
|
|
|
|
|
|
basic.Name = result.Fields.ContainsKey("nodeName") ? result.Fields["nodeName"] : "[no name]";
|
|
|
|
|
|
if (result.Fields.ContainsKey("__NodeKey"))
|
|
|
|
|
|
{
|
|
|
|
|
|
Guid key;
|
|
|
|
|
|
if (Guid.TryParse(result.Fields["__NodeKey"], out key))
|
|
|
|
|
|
{
|
|
|
|
|
|
basic.Key = key;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
if (result.Fields.ContainsKey("ParentID"))
|
|
|
|
|
|
{
|
|
|
|
|
|
int parentId;
|
|
|
|
|
|
if (int.TryParse(result.Fields["ParentID"], out parentId))
|
|
|
|
|
|
{
|
|
|
|
|
|
basic.ParentId = parentId;
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
basic.ParentId = -1;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
basic.Path = result.Fields.ContainsKey("__Path") ? result.Fields["__Path"] : "";
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
config.CreateMap<ISearchResults, IEnumerable<EntityBasic>>()
|
|
|
|
|
|
.ConvertUsing(results => results.Select(Mapper.Map<EntityBasic>).ToList());
|
2013-09-02 15:40:14 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2013-08-19 16:49:07 +10:00
|
|
|
|
}
|