Updates lots of trees for searching and gets results grouped

This commit is contained in:
Shannon
2017-05-31 12:25:05 +02:00
parent 3ae16e717c
commit a70c9226fc
26 changed files with 1091 additions and 439 deletions

View File

@@ -6,6 +6,7 @@ using Examine;
using Examine.LuceneEngine.Providers;
using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.Models.EntityBase;
using Umbraco.Core.Models.Mapping;
using Umbraco.Core.Models.Membership;
using Umbraco.Web.Models.ContentEditing;
@@ -28,7 +29,7 @@ namespace Umbraco.Web.Models.Mapping
{
basic.Icon = "icon-user";
}
});
});
config.CreateMap<PropertyType, EntityBasic>()
.ForMember(x => x.Udi, expression => expression.Ignore())
@@ -64,20 +65,7 @@ namespace Umbraco.Web.Models.Mapping
.ForMember(basic => basic.ParentId, expression => expression.UseValue(-1))
.ForMember(dto => dto.Trashed, expression => expression.Ignore())
.ForMember(x => x.AdditionalData, expression => expression.Ignore());
//config.CreateMap<EntityBasic, ITemplate>()
// .ConstructUsing(basic => new Template(basic.Name, basic.Alias)
// {
// Id = Convert.ToInt32(basic.Id),
// Key = basic.Key
// })
// .ForMember(t => t.Path, expression => expression.Ignore())
// .ForMember(t => t.Id, expression => expression.MapFrom(template => Convert.ToInt32(template.Id)))
// .ForMember(x => x.VirtualPath, expression => expression.Ignore())
// .ForMember(x => x.CreateDate, expression => expression.Ignore())
// .ForMember(x => x.UpdateDate, expression => expression.Ignore())
// .ForMember(x => x.Content, expression => expression.Ignore());
config.CreateMap<EntityBasic, ContentTypeSort>()
.ForMember(x => x.Id, expression => expression.MapFrom(entity => new Lazy<int>(() => Convert.ToInt32(entity.Id))))
.ForMember(x => x.SortOrder, expression => expression.Ignore());
@@ -89,6 +77,26 @@ namespace Umbraco.Web.Models.Mapping
.ForMember(dto => dto.Trashed, expression => expression.Ignore())
.ForMember(x => x.AdditionalData, expression => expression.Ignore());
config.CreateMap<UmbracoEntity, SearchResultItem>()
.ForMember(x => x.Udi, expression => expression.MapFrom(x => Udi.Create(UmbracoObjectTypesExtensions.GetUdiType(x.NodeObjectTypeId), x.Key)))
.ForMember(basic => basic.Icon, expression => expression.MapFrom(entity => entity.ContentTypeIcon))
.ForMember(dto => dto.Trashed, expression => expression.Ignore())
.ForMember(x => x.Alias, expression => expression.Ignore())
.AfterMap((entity, basic) =>
{
if (basic.Icon.IsNullOrWhiteSpace())
{
if (entity.NodeObjectTypeId == Constants.ObjectTypes.MemberGuid)
basic.Icon = "icon-user";
else if (entity.NodeObjectTypeId == Constants.ObjectTypes.DataTypeGuid)
basic.Icon = "icon-autofill";
else if (entity.NodeObjectTypeId == Constants.ObjectTypes.DocumentTypeGuid)
basic.Icon = "icon-item-arrangement";
else if (entity.NodeObjectTypeId == Constants.ObjectTypes.MediaTypeGuid)
basic.Icon = "icon-thumbnails";
}
});
config.CreateMap<SearchResult, SearchResultItem>()
//default to document icon
.ForMember(x => x.Score, expression => expression.MapFrom(result => result.Score))