From f57bf5485f2f109166cb4dc1be3c1c103c7f3e37 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 15 Jul 2015 10:37:37 +0100 Subject: [PATCH] Generating the export file name based on whether it's a setup recipe and its name. --- .../Controllers/AdminController.cs | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.ImportExport/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.ImportExport/Controllers/AdminController.cs index 037e050b5..0182479be 100644 --- a/src/Orchard.Web/Modules/Orchard.ImportExport/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.ImportExport/Controllers/AdminController.cs @@ -7,24 +7,29 @@ using Orchard.ContentManagement; using Orchard.ImportExport.Services; using Orchard.ImportExport.ViewModels; using Orchard.Localization; +using Orchard.Recipes.Models; using Orchard.Recipes.Services; using Orchard.UI.Notify; +using Orchard.Utility.Extensions; namespace Orchard.ImportExport.Controllers { public class AdminController : Controller, IUpdateModel { private readonly IImportExportService _importExportService; private readonly IRecipeResultAccessor _recipeResultAccessor; private readonly IEnumerable _exportStepProviders; + private readonly IRecipeParser _recipeParser; public AdminController( IOrchardServices services, IImportExportService importExportService, IRecipeResultAccessor recipeResultAccessor, - IEnumerable exportStepProviders) { + IEnumerable exportStepProviders, + IRecipeParser recipeParser) { _importExportService = importExportService; _recipeResultAccessor = recipeResultAccessor; _exportStepProviders = exportStepProviders; + _recipeParser = recipeParser; Services = services; T = NullLocalizer.Instance; } @@ -97,12 +102,22 @@ namespace Orchard.ImportExport.Controllers { exportStep.UpdateEditor(Services.New, this); } - var exportFilePath = _importExportService.Export(exportSteps); - var exportFileName = "export.xml"; + var recipeDocument = _importExportService.ExportXml(exportSteps); + var recipe = _recipeParser.ParseRecipe(recipeDocument); + var exportFileName = GetExportFileName(recipe); + var exportFilePath = _importExportService.WriteExportFile(recipeDocument); return File(exportFilePath, "text/xml", exportFileName); } + private string GetExportFileName(Recipe recipe) { + return String.IsNullOrWhiteSpace(recipe.Name) + ? "export.xml" + : String.Format(recipe.IsSetupRecipe + ? "{0}.recipe.xml" + : "{0}.export.xml", recipe.Name.HtmlClassify()); + } + bool IUpdateModel.TryUpdateModel(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) { return TryUpdateModel(model, prefix, includeProperties, excludeProperties); }