From d2e0b764d762ec2c76700a7d98a5773091049c80 Mon Sep 17 00:00:00 2001 From: Nathan Heskew Date: Wed, 23 Feb 2011 09:48:26 -0800 Subject: [PATCH] Deduping the GroupInfos --HG-- branch : dev --- .../ContentManagement/DefaultContentManager.cs | 14 ++++++++------ src/Orchard/ContentManagement/IContentManager.cs | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/Orchard/ContentManagement/DefaultContentManager.cs b/src/Orchard/ContentManagement/DefaultContentManager.cs index 0350f10a2..0f3829017 100644 --- a/src/Orchard/ContentManagement/DefaultContentManager.cs +++ b/src/Orchard/ContentManagement/DefaultContentManager.cs @@ -358,16 +358,18 @@ namespace Orchard.ContentManagement { return context.Metadata; } - public IList GetEditorGroupInfos(IContent content) { + public IEnumerable GetEditorGroupInfos(IContent 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 GetDisplayGroupInfos(IContent content) { + public IEnumerable GetDisplayGroupInfos(IContent 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) { diff --git a/src/Orchard/ContentManagement/IContentManager.cs b/src/Orchard/ContentManagement/IContentManager.cs index 2280c2197..f1836caaa 100644 --- a/src/Orchard/ContentManagement/IContentManager.cs +++ b/src/Orchard/ContentManagement/IContentManager.cs @@ -25,8 +25,8 @@ namespace Orchard.ContentManagement { IContentQuery Query(); ContentItemMetadata GetItemMetadata(IContent contentItem); - IList GetEditorGroupInfos(IContent contentItem); - IList GetDisplayGroupInfos(IContent contentItem); + IEnumerable GetEditorGroupInfos(IContent contentItem); + IEnumerable GetDisplayGroupInfos(IContent contentItem); GroupInfo GetEditorGroupInfo(IContent contentItem, string groupInfoId); GroupInfo GetDisplayGroupInfo(IContent contentItem, string groupInfoId);