From 8cda6b54c6a6c5e63acef07765cac43e09a691e0 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Tue, 4 Aug 2015 17:08:15 +0100 Subject: [PATCH] Throwing an exception when specifying a non-existing recipe. --- .../Modules/Orchard.Recipes/Services/RecipeManager.cs | 3 +-- .../Modules/Orchard.Setup/Services/SetupService.cs | 9 +++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Recipes/Services/RecipeManager.cs b/src/Orchard.Web/Modules/Orchard.Recipes/Services/RecipeManager.cs index 55c542450..4a8bdbb5d 100644 --- a/src/Orchard.Web/Modules/Orchard.Recipes/Services/RecipeManager.cs +++ b/src/Orchard.Web/Modules/Orchard.Recipes/Services/RecipeManager.cs @@ -27,8 +27,7 @@ namespace Orchard.Recipes.Services { public string Execute(Recipe recipe) { if (recipe == null) { - Logger.Information("Cannot execute a null recipe. No work has been scheduled."); - return null; + throw new ArgumentNullException("recipe"); } if (!recipe.RecipeSteps.Any()) { diff --git a/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs b/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs index a5cbce4ee..17d87ffaa 100644 --- a/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs +++ b/src/Orchard.Web/Modules/Orchard.Setup/Services/SetupService.cs @@ -27,7 +27,7 @@ using Orchard.Utility.Extensions; namespace Orchard.Setup.Services { - public class SetupService : ISetupService { + public class SetupService : ISetupService { private readonly ShellSettings _shellSettings; private readonly IOrchardHost _orchardHost; private readonly IShellSettingsManager _shellSettingsManager; @@ -217,7 +217,12 @@ namespace Orchard.Setup.Services cultureManager.AddCulture("en-US"); var recipeManager = environment.Resolve(); - string executionId = recipeManager.Execute(Recipes().FirstOrDefault(r => r.Name.Equals(context.Recipe, StringComparison.OrdinalIgnoreCase))); + var recipe = Recipes().FirstOrDefault(r => r.Name.Equals(context.Recipe, StringComparison.OrdinalIgnoreCase)); + + if(recipe == null) + throw new OrchardException(T("The recipe '{0}' could not be found.", context.Recipe)); + + var executionId = recipeManager.Execute(recipe); // null check: temporary fix for running setup in command line if (HttpContext.Current != null) {