From e19d835e5a0726b7af944baf81f36af6c2dc859b Mon Sep 17 00:00:00 2001 From: Matteo Piovanelli Date: Thu, 16 May 2019 21:15:44 +0200 Subject: [PATCH 1/2] DefaultContentManager performance upgrade (#8207) --- src/Orchard/ContentManagement/DefaultContentManager.cs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Orchard/ContentManagement/DefaultContentManager.cs b/src/Orchard/ContentManagement/DefaultContentManager.cs index 54e57feed..6ebb336d1 100644 --- a/src/Orchard/ContentManagement/DefaultContentManager.cs +++ b/src/Orchard/ContentManagement/DefaultContentManager.cs @@ -282,6 +282,11 @@ namespace Orchard.ContentManagement { } public IEnumerable GetMany(IEnumerable ids, VersionOptions options, QueryHints hints) where T : class, IContent { + if (!ids.Any()) { + // since there are no ids, I have to get no item, so it makes + // sense to not do anything at all + return Enumerable.Empty(); + } var contentItemVersionRecords = GetManyImplementation(hints, (contentItemCriteria, contentItemVersionCriteria) => { contentItemCriteria.Add(Restrictions.In("Id", ids.ToArray())); if (options.IsPublished) { @@ -314,6 +319,11 @@ namespace Orchard.ContentManagement { public IEnumerable GetManyByVersionId(IEnumerable versionRecordIds, QueryHints hints) { + if (!versionRecordIds.Any()) { + // since there are no ids, I have to get no item, so it makes + // sense to not do anything at all + return Enumerable.Empty(); + } var contentItemVersionRecords = GetManyImplementation(hints, (contentItemCriteria, contentItemVersionCriteria) => contentItemVersionCriteria.Add(Restrictions.In("Id", versionRecordIds.ToArray()))); From 91dfb8880be4efdc7840cf08c8547860af703d6c Mon Sep 17 00:00:00 2001 From: Lombiq Date: Tue, 21 May 2019 16:30:40 +0200 Subject: [PATCH 2/2] Projections: Moving QueryVersionScopeOptions to the Models folder, code styling --- .../Extensions/QueryVersionScopeOptionsExtensions.cs | 2 +- .../FieldTypeEditors/IFieldTypeEditor.cs | 1 + .../Modules/Orchard.Projections/Models/QueryPart.cs | 2 +- .../{ => Models}/QueryVersionScopeOptions.cs | 2 +- .../Orchard.Projections/Orchard.Projections.csproj | 2 +- .../Orchard.Projections/ViewModels/FilterEditViewModel.cs | 1 + .../Orchard.Projections/ViewModels/QueryViewModel.cs | 5 +---- .../Views/EditorTemplates/Parts/QueryPart_Edit.cshtml | 8 +++++--- 8 files changed, 12 insertions(+), 11 deletions(-) rename src/Orchard.Web/Modules/Orchard.Projections/{ => Models}/QueryVersionScopeOptions.cs (70%) diff --git a/src/Orchard.Web/Modules/Orchard.Projections/Extensions/QueryVersionScopeOptionsExtensions.cs b/src/Orchard.Web/Modules/Orchard.Projections/Extensions/QueryVersionScopeOptionsExtensions.cs index 70dec2fc1..3dbb481bb 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/Extensions/QueryVersionScopeOptionsExtensions.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/Extensions/QueryVersionScopeOptionsExtensions.cs @@ -1,6 +1,6 @@ using Orchard.ContentManagement; -namespace Orchard.Projections { +namespace Orchard.Projections.Models { public static class QueryVersionScopeOptionsExtensions { public static VersionOptions ToVersionOptions(this QueryVersionScopeOptions scope) { switch (scope) { diff --git a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IFieldTypeEditor.cs b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IFieldTypeEditor.cs index 4668a77ca..ecf3a7eac 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IFieldTypeEditor.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/FieldTypeEditors/IFieldTypeEditor.cs @@ -1,6 +1,7 @@ using System; using Orchard.ContentManagement; using Orchard.Localization; +using Orchard.Projections.Models; namespace Orchard.Projections.FieldTypeEditors { /// diff --git a/src/Orchard.Web/Modules/Orchard.Projections/Models/QueryPart.cs b/src/Orchard.Web/Modules/Orchard.Projections/Models/QueryPart.cs index d2100d7af..0b0c920e7 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/Models/QueryPart.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/Models/QueryPart.cs @@ -6,7 +6,7 @@ namespace Orchard.Projections.Models { public class QueryPart : ContentPart { public string Name { - get { return this.As().Title; } + get { return this.As().Title; } set { this.As().Title = value; } } diff --git a/src/Orchard.Web/Modules/Orchard.Projections/QueryVersionScopeOptions.cs b/src/Orchard.Web/Modules/Orchard.Projections/Models/QueryVersionScopeOptions.cs similarity index 70% rename from src/Orchard.Web/Modules/Orchard.Projections/QueryVersionScopeOptions.cs rename to src/Orchard.Web/Modules/Orchard.Projections/Models/QueryVersionScopeOptions.cs index ccd1f703e..b0812dce2 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/QueryVersionScopeOptions.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/Models/QueryVersionScopeOptions.cs @@ -1,4 +1,4 @@ -namespace Orchard.Projections { +namespace Orchard.Projections.Models { public enum QueryVersionScopeOptions { Published, Latest, diff --git a/src/Orchard.Web/Modules/Orchard.Projections/Orchard.Projections.csproj b/src/Orchard.Web/Modules/Orchard.Projections/Orchard.Projections.csproj index ebd2782de..cd1652bc8 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/Orchard.Projections.csproj +++ b/src/Orchard.Web/Modules/Orchard.Projections/Orchard.Projections.csproj @@ -185,7 +185,7 @@ - + diff --git a/src/Orchard.Web/Modules/Orchard.Projections/ViewModels/FilterEditViewModel.cs b/src/Orchard.Web/Modules/Orchard.Projections/ViewModels/FilterEditViewModel.cs index d5ea5843e..47ec05e86 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/ViewModels/FilterEditViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/ViewModels/FilterEditViewModel.cs @@ -1,4 +1,5 @@ using Orchard.Projections.Descriptors.Filter; +using Orchard.Projections.Models; namespace Orchard.Projections.ViewModels { diff --git a/src/Orchard.Web/Modules/Orchard.Projections/ViewModels/QueryViewModel.cs b/src/Orchard.Web/Modules/Orchard.Projections/ViewModels/QueryViewModel.cs index f1f6a1e9b..4acb99030 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/ViewModels/QueryViewModel.cs +++ b/src/Orchard.Web/Modules/Orchard.Projections/ViewModels/QueryViewModel.cs @@ -1,7 +1,4 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Web; +using Orchard.Projections.Models; namespace Orchard.Projections.ViewModels { public class QueryViewModel { diff --git a/src/Orchard.Web/Modules/Orchard.Projections/Views/EditorTemplates/Parts/QueryPart_Edit.cshtml b/src/Orchard.Web/Modules/Orchard.Projections/Views/EditorTemplates/Parts/QueryPart_Edit.cshtml index 48e09c2b2..74ca7b49f 100644 --- a/src/Orchard.Web/Modules/Orchard.Projections/Views/EditorTemplates/Parts/QueryPart_Edit.cshtml +++ b/src/Orchard.Web/Modules/Orchard.Projections/Views/EditorTemplates/Parts/QueryPart_Edit.cshtml @@ -1,8 +1,10 @@ -@model Orchard.Projections.ViewModels.QueryViewModel -@using Orchard.Projections; +@using Orchard.Projections.Models; +@using Orchard.Projections.ViewModels; + +@model QueryViewModel
@Html.LabelFor(m => m.VersionScope, T("Content's version")) - @Html.DropDownListFor(m=>m.VersionScope, new SelectList(Enum.GetValues(typeof(QueryVersionScopeOptions)), Model.VersionScope)) + @Html.DropDownListFor(m => m.VersionScope, new SelectList(Enum.GetValues(typeof(QueryVersionScopeOptions)), Model.VersionScope)) @T("The content's version to query.")