From ac45c445b32f3204c5cc0e01ec873d9722a3a016 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roland=20M=C3=A1rkus?= Date: Sat, 8 Jun 2024 14:19:08 +0200 Subject: [PATCH 1/3] Removing warnings. --- .../Controllers/ContentSetController.cs | 10 +++++++--- .../OrchardRecipeMigrationAdminController.cs | 2 ++ .../ContentSets/ViewModels/ContentSetPartViewModel.cs | 7 +++---- .../StrictSecurityPermissionAuthorizationHandler.cs | 2 +- .../Widgets/ViewModels/MenuWidgetViewModel.cs | 7 +++---- .../Widgets/ViewModels/MvcConditionViewModel.cs | 6 +++--- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Lombiq.HelpfulExtensions/Controllers/ContentSetController.cs b/Lombiq.HelpfulExtensions/Controllers/ContentSetController.cs index 03b929c7..18e73ed5 100644 --- a/Lombiq.HelpfulExtensions/Controllers/ContentSetController.cs +++ b/Lombiq.HelpfulExtensions/Controllers/ContentSetController.cs @@ -1,4 +1,4 @@ -using Lombiq.HelpfulExtensions.Extensions.ContentSets.Services; +using Lombiq.HelpfulExtensions.Extensions.ContentSets.Services; using Microsoft.AspNetCore.Mvc; using OrchardCore; using OrchardCore.Modules; @@ -18,8 +18,12 @@ public ContentSetController(IContentSetManager contentSetManager, IOrchardHelper _orchardHelper = orchardHelper; } - public async Task Create(string fromContentItemId, string fromPartName, string newKey) => - await _contentSetManager.CloneContentItemAsync(fromContentItemId, fromPartName, newKey) is { } content + public async Task Create(string fromContentItemId, string fromPartName, string newKey) + { + if (!ModelState.IsValid) return BadRequest(ModelState); + + return await _contentSetManager.CloneContentItemAsync(fromContentItemId, fromPartName, newKey) is { } content ? Redirect(_orchardHelper.GetItemEditUrl(content)) : NotFound(); + } } diff --git a/Lombiq.HelpfulExtensions/Controllers/OrchardRecipeMigrationAdminController.cs b/Lombiq.HelpfulExtensions/Controllers/OrchardRecipeMigrationAdminController.cs index b093f9e3..f2bf5e6f 100644 --- a/Lombiq.HelpfulExtensions/Controllers/OrchardRecipeMigrationAdminController.cs +++ b/Lombiq.HelpfulExtensions/Controllers/OrchardRecipeMigrationAdminController.cs @@ -37,6 +37,8 @@ public OrchardRecipeMigrationAdminController( [ValidateAntiForgeryToken] public async Task Convert(IFormFile file) { + if (!ModelState.IsValid) return BadRequest(ModelState); + Stream stream; string json; diff --git a/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs b/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs index 641bc031..df253616 100644 --- a/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs +++ b/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs @@ -1,4 +1,4 @@ -using Lombiq.HelpfulExtensions.Extensions.ContentSets.Events; +using Lombiq.HelpfulExtensions.Extensions.ContentSets.Events; using Lombiq.HelpfulExtensions.Extensions.ContentSets.Models; using Lombiq.HelpfulExtensions.Extensions.ContentSets.Services; using Microsoft.AspNetCore.Mvc.ModelBinding; @@ -84,13 +84,12 @@ public async ValueTask InitializeAsync( pair.Key)); options.AddRange(inapplicableSetMembers, link => link.Key); - MemberLinks = options + MemberLinks = [.. options .Values .Where(link => link.Key != Key && link.ContentItemId != part.ContentItem.ContentItemId) .OrderBy(link => string.IsNullOrEmpty(link.ContentItemId) ? 1 : 0) .ThenBy(link => link.IsDeleted ? 1 : 0) - .ThenBy(link => link.DisplayText) - .ToList(); + .ThenBy(link => link.DisplayText)]; } } diff --git a/Lombiq.HelpfulExtensions/Extensions/Security/Services/StrictSecurityPermissionAuthorizationHandler.cs b/Lombiq.HelpfulExtensions/Extensions/Security/Services/StrictSecurityPermissionAuthorizationHandler.cs index f61d44db..b2315981 100644 --- a/Lombiq.HelpfulExtensions/Extensions/Security/Services/StrictSecurityPermissionAuthorizationHandler.cs +++ b/Lombiq.HelpfulExtensions/Extensions/Security/Services/StrictSecurityPermissionAuthorizationHandler.cs @@ -20,7 +20,7 @@ public class StrictSecurityPermissionAuthorizationHandler : AuthorizationHandler .PermissionTemplates .ToDictionary( pair => pair.Key, - pair => GetPermissionTemplates(pair.Value, new List())); + pair => GetPermissionTemplates(pair.Value, [])); private readonly IContentDefinitionManager _contentDefinitionManager; diff --git a/Lombiq.HelpfulExtensions/Extensions/Widgets/ViewModels/MenuWidgetViewModel.cs b/Lombiq.HelpfulExtensions/Extensions/Widgets/ViewModels/MenuWidgetViewModel.cs index 48e7cdef..17904313 100644 --- a/Lombiq.HelpfulExtensions/Extensions/Widgets/ViewModels/MenuWidgetViewModel.cs +++ b/Lombiq.HelpfulExtensions/Extensions/Widgets/ViewModels/MenuWidgetViewModel.cs @@ -1,6 +1,5 @@ -using OrchardCore.Navigation; +using OrchardCore.Navigation; using System.Collections.Generic; -using System.Linq; namespace Lombiq.HelpfulExtensions.Extensions.Widgets.ViewModels; @@ -13,14 +12,14 @@ public class MenuWidgetViewModel public string HtmlClasses { get; set; } = string.Empty; public MenuWidgetViewModel() - : this(noWrapper: false, menuItems: Enumerable.Empty()) + : this(noWrapper: false, menuItems: []) { } public MenuWidgetViewModel(bool noWrapper, IEnumerable menuItems) { NoWrapper = noWrapper; - MenuItems = menuItems ?? Enumerable.Empty(); + MenuItems = menuItems ?? []; } public MenuWidgetViewModel(dynamic model) diff --git a/Lombiq.HelpfulExtensions/Extensions/Widgets/ViewModels/MvcConditionViewModel.cs b/Lombiq.HelpfulExtensions/Extensions/Widgets/ViewModels/MvcConditionViewModel.cs index a9ab02e6..3eb597c9 100644 --- a/Lombiq.HelpfulExtensions/Extensions/Widgets/ViewModels/MvcConditionViewModel.cs +++ b/Lombiq.HelpfulExtensions/Extensions/Widgets/ViewModels/MvcConditionViewModel.cs @@ -1,4 +1,4 @@ -using System.Collections.Generic; +using System.Collections.Generic; namespace Lombiq.HelpfulExtensions.Extensions.Widgets.ViewModels; @@ -8,6 +8,6 @@ public class MvcConditionViewModel public string Controller { get; set; } public string Action { get; set; } - public IList OtherRouteNames { get; } = new List(); - public IList OtherRouteValues { get; } = new List(); + public IList OtherRouteNames { get; } = []; + public IList OtherRouteValues { get; } = []; } From 2e72e1add3bf750e55273cdd1852e5332c79d8e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roland=20M=C3=A1rkus?= Date: Sat, 8 Jun 2024 14:20:38 +0200 Subject: [PATCH 2/3] Removing warnings. --- .../Extensions/ContentSets/Indexes/ContentSetIndex.cs | 2 +- .../ContentSets/ViewModels/ContentSetPartViewModel.cs | 2 +- .../Services/OrchardExportToRecipeConverter.cs | 2 +- .../Extensions/Widgets/Liquid/MenuWidgetLiquidFilter.cs | 8 ++++---- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/Lombiq.HelpfulExtensions/Extensions/ContentSets/Indexes/ContentSetIndex.cs b/Lombiq.HelpfulExtensions/Extensions/ContentSets/Indexes/ContentSetIndex.cs index 7a89ff46..6953652a 100644 --- a/Lombiq.HelpfulExtensions/Extensions/ContentSets/Indexes/ContentSetIndex.cs +++ b/Lombiq.HelpfulExtensions/Extensions/ContentSets/Indexes/ContentSetIndex.cs @@ -39,7 +39,7 @@ public ContentSetIndexProvider(IServiceProvider provider) => public override void Describe(DescribeContext context) => context.For().Map(async contentItem => { - if (!contentItem.Latest) return Enumerable.Empty(); + if (!contentItem.Latest) return []; using var scope = _provider.CreateScope(); var contentDefinitionManager = scope.ServiceProvider.GetRequiredService(); diff --git a/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs b/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs index df253616..ec377088 100644 --- a/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs +++ b/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs @@ -24,7 +24,7 @@ public class ContentSetPartViewModel public ContentSetPart ContentSetPart { get; set; } [BindNever] - public IEnumerable MemberLinks { get; set; } = Enumerable.Empty(); + public IEnumerable MemberLinks { get; set; } = []; [BindNever] public bool IsNew { get; set; } diff --git a/Lombiq.HelpfulExtensions/Extensions/OrchardRecipeMigration/Services/OrchardExportToRecipeConverter.cs b/Lombiq.HelpfulExtensions/Extensions/OrchardRecipeMigration/Services/OrchardExportToRecipeConverter.cs index 5eddadb5..6c13dcef 100644 --- a/Lombiq.HelpfulExtensions/Extensions/OrchardRecipeMigration/Services/OrchardExportToRecipeConverter.cs +++ b/Lombiq.HelpfulExtensions/Extensions/OrchardRecipeMigration/Services/OrchardExportToRecipeConverter.cs @@ -40,7 +40,7 @@ public OrchardExportToRecipeConverter( public async Task ConvertAsync(XDocument export) { var contentItems = new List(); - var contents = export.XPathSelectElement("//Content")?.Elements() ?? Enumerable.Empty(); + var contents = export.XPathSelectElement("//Content")?.Elements() ?? []; var contentTypes = (await _contentDefinitionManager.ListTypeDefinitionsAsync()) .Select(definition => definition.Name) .ToList(); diff --git a/Lombiq.HelpfulExtensions/Extensions/Widgets/Liquid/MenuWidgetLiquidFilter.cs b/Lombiq.HelpfulExtensions/Extensions/Widgets/Liquid/MenuWidgetLiquidFilter.cs index 2cc0ac4a..6254aca8 100644 --- a/Lombiq.HelpfulExtensions/Extensions/Widgets/Liquid/MenuWidgetLiquidFilter.cs +++ b/Lombiq.HelpfulExtensions/Extensions/Widgets/Liquid/MenuWidgetLiquidFilter.cs @@ -1,4 +1,4 @@ -using Fluid; +using Fluid; using Fluid.Values; using Lombiq.HelpfulExtensions.Extensions.Widgets.ViewModels; using Lombiq.HelpfulLibraries.OrchardCore.Liquid; @@ -59,9 +59,9 @@ public ValueTask ProcessAsync(FluidValue input, FilterArguments argu FluidValues.Object => input!.ToObjectValue() switch { IEnumerable enumerable => enumerable.AsList(), - MenuItem single => new[] { single }, + MenuItem single => [single], JArray jArray => jArray.ToObject>(serializer), - JObject jObject => new[] { jObject.ToObject(serializer) }, + JObject jObject => [jObject.ToObject(serializer)], _ => null, }, _ => null, @@ -74,7 +74,7 @@ public ValueTask ProcessAsync(FluidValue input, FilterArguments argu model => { model.NoWrapper = noWrapper; - model.MenuItems = menuItems ?? Array.Empty(); + model.MenuItems = menuItems ?? []; model.HtmlClasses = classes; }); } From df5315b42c5fb68ed3603e79583b738b2b59dc79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roland=20M=C3=A1rkus?= Date: Tue, 11 Jun 2024 14:17:15 +0200 Subject: [PATCH 3/3] Using suppression for readability. --- .../ContentSets/ViewModels/ContentSetPartViewModel.cs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs b/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs index ec377088..81bfca84 100644 --- a/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs +++ b/Lombiq.HelpfulExtensions/Extensions/ContentSets/ViewModels/ContentSetPartViewModel.cs @@ -84,12 +84,16 @@ public async ValueTask InitializeAsync( pair.Key)); options.AddRange(inapplicableSetMembers, link => link.Key); - MemberLinks = [.. options + // Using collection expression greatly reduces readability. +#pragma warning disable IDE0305 // Simplify collection initialization + MemberLinks = options .Values .Where(link => link.Key != Key && link.ContentItemId != part.ContentItem.ContentItemId) .OrderBy(link => string.IsNullOrEmpty(link.ContentItemId) ? 1 : 0) .ThenBy(link => link.IsDeleted ? 1 : 0) - .ThenBy(link => link.DisplayText)]; + .ThenBy(link => link.DisplayText) + .ToList(); +#pragma warning restore IDE0305 // Simplify collection initialization } }