Deduping the GroupInfos

--HG--
branch : dev
This commit is contained in:
Nathan Heskew
2011-02-23 09:48:26 -08:00
parent ffc276a1fe
commit d2e0b764d7
2 changed files with 10 additions and 8 deletions
@@ -358,16 +358,18 @@ namespace Orchard.ContentManagement {
return context.Metadata; return context.Metadata;
} }
public IList<GroupInfo> GetEditorGroupInfos(IContent content) { public IEnumerable<GroupInfo> GetEditorGroupInfos(IContent content) {
var metadata = GetItemMetadata(content); var metadata = GetItemMetadata(content);
// todo: (heskew) dedup and order return metadata.EditorGroupInfo
return metadata.EditorGroupInfo; .GroupBy(groupInfo => groupInfo.Id)
.Select(grouping => grouping.OrderBy(groupInfo => groupInfo.Position, new FlatPositionComparer()).FirstOrDefault());
} }
public IList<GroupInfo> GetDisplayGroupInfos(IContent content) { public IEnumerable<GroupInfo> GetDisplayGroupInfos(IContent content) {
var metadata = GetItemMetadata(content); var metadata = GetItemMetadata(content);
// todo: (heskew) dedup and order return metadata.DisplayGroupInfo
return metadata.DisplayGroupInfo; .GroupBy(groupInfo => groupInfo.Id)
.Select(grouping => grouping.OrderBy(groupInfo => groupInfo.Position, new FlatPositionComparer()).FirstOrDefault());
} }
public GroupInfo GetEditorGroupInfo(IContent content, string groupInfoId) { public GroupInfo GetEditorGroupInfo(IContent content, string groupInfoId) {
@@ -25,8 +25,8 @@ namespace Orchard.ContentManagement {
IContentQuery<ContentItem> Query(); IContentQuery<ContentItem> Query();
ContentItemMetadata GetItemMetadata(IContent contentItem); ContentItemMetadata GetItemMetadata(IContent contentItem);
IList<GroupInfo> GetEditorGroupInfos(IContent contentItem); IEnumerable<GroupInfo> GetEditorGroupInfos(IContent contentItem);
IList<GroupInfo> GetDisplayGroupInfos(IContent contentItem); IEnumerable<GroupInfo> GetDisplayGroupInfos(IContent contentItem);
GroupInfo GetEditorGroupInfo(IContent contentItem, string groupInfoId); GroupInfo GetEditorGroupInfo(IContent contentItem, string groupInfoId);
GroupInfo GetDisplayGroupInfo(IContent contentItem, string groupInfoId); GroupInfo GetDisplayGroupInfo(IContent contentItem, string groupInfoId);