From c7d259338286da133c2b35a8f28201176d2c8b80 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Thu, 24 Oct 2013 14:36:44 -0700 Subject: [PATCH] #20218: Disambiguating media with same filename during upgrade Work Item: 20218 --- .../Modules/Upgrade/Controllers/MediaController.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Orchard.Web/Modules/Upgrade/Controllers/MediaController.cs b/src/Orchard.Web/Modules/Upgrade/Controllers/MediaController.cs index 273c9dbd8..d7a201dad 100644 --- a/src/Orchard.Web/Modules/Upgrade/Controllers/MediaController.cs +++ b/src/Orchard.Web/Modules/Upgrade/Controllers/MediaController.cs @@ -184,7 +184,15 @@ namespace Upgrade.Controllers { if (contentField != null && contentField.Url != null) { string url = Convert.ToString(contentField.Url); var filename = Path.GetFileName(url); - var media = _orchardServices.ContentManager.Query().ForPart().Where(x => filename == x.FileName).Slice(0, 1).FirstOrDefault(); + string folder = Path.GetDirectoryName(url); + var mediaItems = _orchardServices.ContentManager.Query().ForPart().Where(x => filename == x.FileName).List().ToList(); + MediaPart media = null; + + // in case multiple media have the same filename find based on the folder + if (mediaItems.Count() > 1) { + media = mediaItems.FirstOrDefault(x => folder.EndsWith(x.FolderPath)); + } + if (media != null) { contentField.Url = "{" + media.Id + "}"; }