Files
Umbraco-CMS/src/Umbraco.Examine2/MemberValueSetBuilder.cs

54 lines
2.0 KiB
C#
Raw Normal View History

2018-11-26 14:27:44 +11:00
using Examine;
using System.Collections.Generic;
using System.Linq;
2018-11-26 14:27:44 +11:00
using Umbraco.Core;
using Umbraco.Core.Models;
using Umbraco.Core.PropertyEditors;
namespace Umbraco.Examine
{
2018-11-28 14:46:45 +11:00
public class MemberValueSetBuilder : BaseValueSetBuilder<IMember>
2018-11-26 14:27:44 +11:00
{
public MemberValueSetBuilder(PropertyEditorCollection propertyEditors)
: base(propertyEditors, false)
2018-11-26 14:27:44 +11:00
{
}
2018-11-28 14:46:45 +11:00
/// <inheritdoc />
public override IEnumerable<ValueSet> GetValueSets(params IMember[] members)
2018-11-26 14:27:44 +11:00
{
foreach (var m in members)
{
var values = new Dictionary<string, IEnumerable<object>>
2018-11-26 14:27:44 +11:00
{
{"icon", m.ContentType.Icon?.Yield() ?? Enumerable.Empty<string>()},
2018-11-26 14:27:44 +11:00
{"id", new object[] {m.Id}},
{UmbracoExamineFieldNames.NodeKeyFieldName, new object[] {m.Key}},
2018-11-26 14:27:44 +11:00
{"parentID", new object[] {m.Level > 1 ? m.ParentId : -1}},
{"level", new object[] {m.Level}},
{"creatorID", new object[] {m.CreatorId}},
{"sortOrder", new object[] {m.SortOrder}},
{"createDate", new object[] {m.CreateDate}},
{"updateDate", new object[] {m.UpdateDate}},
{"nodeName", m.Name?.Yield() ?? Enumerable.Empty<string>()},
{"path", m.Path?.Yield() ?? Enumerable.Empty<string>()},
{"nodeType", m.ContentType.Id.ToString().Yield() },
{"loginName", m.Username?.Yield() ?? Enumerable.Empty<string>()},
{"email", m.Email?.Yield() ?? Enumerable.Empty<string>()},
2018-11-26 14:27:44 +11:00
};
foreach (var property in m.Properties)
{
AddPropertyValue(property, null, null, values);
}
var vs = new ValueSet(m.Id.ToInvariantString(), IndexTypes.Member, m.ContentType.Alias, values);
2018-11-26 14:27:44 +11:00
yield return vs;
}
}
}
}