From 2046bd2fbdd833e37dae0258d2aa9c59607b4e5c Mon Sep 17 00:00:00 2001 From: Benedek Farkas Date: Thu, 2 Oct 2025 16:08:16 +0200 Subject: [PATCH] Lists: Adding error handling to item selection --- .../Orchard.Lists/Controllers/AdminController.cs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Lists/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.Lists/Controllers/AdminController.cs index c4d0acf98..4685c43b8 100644 --- a/src/Orchard.Web/Modules/Orchard.Lists/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.Lists/Controllers/AdminController.cs @@ -301,8 +301,17 @@ namespace Orchard.Lists.Controllers { [HttpPost] public ActionResult Insert(int containerId, int itemId, PagerParameters pagerParameters) { - var container = _containerService.Get(containerId, VersionOptions.Latest); + ActionResult redirectToList() => + RedirectToAction("List", new { containerId, page = pagerParameters.Page, pageSize = pagerParameters.PageSize }); + var item = _contentManager.Get(itemId, VersionOptions.Latest, new QueryHints().ExpandParts()); + if (item == null || !item.Has()) { + _services.Notifier.Error(T("Item not found or doesn't have ContainablePart.")); + + return redirectToList(); + } + + var container = _containerService.Get(containerId, VersionOptions.Latest); var commonPart = item.As(); var previousItemContainer = commonPart.Container; var itemMetadata = _contentManager.GetItemMetadata(item); @@ -328,7 +337,8 @@ namespace Orchard.Lists.Controllers { _containerService.MoveItem(item.As(), container, position); _services.Notifier.Information(message); - return RedirectToAction("List", new { containerId, page = pagerParameters.Page, pageSize = pagerParameters.PageSize }); + + return redirectToList(); } [HttpPost]