mirror of
https://github.com/OrchardCMS/Orchard.git
synced 2026-02-09 09:16:41 +08:00
Generating the export file name based on whether it's a setup recipe and its name.
This commit is contained in:
@@ -7,24 +7,29 @@ using Orchard.ContentManagement;
|
|||||||
using Orchard.ImportExport.Services;
|
using Orchard.ImportExport.Services;
|
||||||
using Orchard.ImportExport.ViewModels;
|
using Orchard.ImportExport.ViewModels;
|
||||||
using Orchard.Localization;
|
using Orchard.Localization;
|
||||||
|
using Orchard.Recipes.Models;
|
||||||
using Orchard.Recipes.Services;
|
using Orchard.Recipes.Services;
|
||||||
using Orchard.UI.Notify;
|
using Orchard.UI.Notify;
|
||||||
|
using Orchard.Utility.Extensions;
|
||||||
|
|
||||||
namespace Orchard.ImportExport.Controllers {
|
namespace Orchard.ImportExport.Controllers {
|
||||||
public class AdminController : Controller, IUpdateModel {
|
public class AdminController : Controller, IUpdateModel {
|
||||||
private readonly IImportExportService _importExportService;
|
private readonly IImportExportService _importExportService;
|
||||||
private readonly IRecipeResultAccessor _recipeResultAccessor;
|
private readonly IRecipeResultAccessor _recipeResultAccessor;
|
||||||
private readonly IEnumerable<IRecipeBuilderStep> _exportStepProviders;
|
private readonly IEnumerable<IRecipeBuilderStep> _exportStepProviders;
|
||||||
|
private readonly IRecipeParser _recipeParser;
|
||||||
|
|
||||||
public AdminController(
|
public AdminController(
|
||||||
IOrchardServices services,
|
IOrchardServices services,
|
||||||
IImportExportService importExportService,
|
IImportExportService importExportService,
|
||||||
IRecipeResultAccessor recipeResultAccessor,
|
IRecipeResultAccessor recipeResultAccessor,
|
||||||
IEnumerable<IRecipeBuilderStep> exportStepProviders) {
|
IEnumerable<IRecipeBuilderStep> exportStepProviders,
|
||||||
|
IRecipeParser recipeParser) {
|
||||||
|
|
||||||
_importExportService = importExportService;
|
_importExportService = importExportService;
|
||||||
_recipeResultAccessor = recipeResultAccessor;
|
_recipeResultAccessor = recipeResultAccessor;
|
||||||
_exportStepProviders = exportStepProviders;
|
_exportStepProviders = exportStepProviders;
|
||||||
|
_recipeParser = recipeParser;
|
||||||
Services = services;
|
Services = services;
|
||||||
T = NullLocalizer.Instance;
|
T = NullLocalizer.Instance;
|
||||||
}
|
}
|
||||||
@@ -97,12 +102,22 @@ namespace Orchard.ImportExport.Controllers {
|
|||||||
exportStep.UpdateEditor(Services.New, this);
|
exportStep.UpdateEditor(Services.New, this);
|
||||||
}
|
}
|
||||||
|
|
||||||
var exportFilePath = _importExportService.Export(exportSteps);
|
var recipeDocument = _importExportService.ExportXml(exportSteps);
|
||||||
var exportFileName = "export.xml";
|
var recipe = _recipeParser.ParseRecipe(recipeDocument);
|
||||||
|
var exportFileName = GetExportFileName(recipe);
|
||||||
|
var exportFilePath = _importExportService.WriteExportFile(recipeDocument);
|
||||||
|
|
||||||
return File(exportFilePath, "text/xml", exportFileName);
|
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>(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) {
|
bool IUpdateModel.TryUpdateModel<TModel>(TModel model, string prefix, string[] includeProperties, string[] excludeProperties) {
|
||||||
return TryUpdateModel(model, prefix, includeProperties, excludeProperties);
|
return TryUpdateModel(model, prefix, includeProperties, excludeProperties);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user