From 0853f8da853391a761bc6c77a08a97d90cf6257b Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Wed, 6 Feb 2013 09:43:53 -0100 Subject: [PATCH] Fixes U4-1619 so MediaTypes are deleted the same way as DocumentTypes using the legacy api/backoffice. --- src/Umbraco.Core/Services/ContentTypeService.cs | 2 +- src/umbraco.cms/businesslogic/media/MediaType.cs | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/Umbraco.Core/Services/ContentTypeService.cs b/src/Umbraco.Core/Services/ContentTypeService.cs index 0af521dddd..75335cac0e 100644 --- a/src/Umbraco.Core/Services/ContentTypeService.cs +++ b/src/Umbraco.Core/Services/ContentTypeService.cs @@ -358,7 +358,7 @@ namespace Umbraco.Core.Services if (DeletingMediaType.IsRaisedEventCancelled(new DeleteEventArgs(mediaType), this)) return; - _mediaService.DeleteMediaOfType(mediaType.Id); + _mediaService.DeleteMediaOfType(mediaType.Id, userId); var uow = _uowProvider.GetUnitOfWork(); using (var repository = _repositoryFactory.CreateMediaTypeRepository(uow)) diff --git a/src/umbraco.cms/businesslogic/media/MediaType.cs b/src/umbraco.cms/businesslogic/media/MediaType.cs index 50102c175d..de0449bd52 100644 --- a/src/umbraco.cms/businesslogic/media/MediaType.cs +++ b/src/umbraco.cms/businesslogic/media/MediaType.cs @@ -150,10 +150,13 @@ namespace umbraco.cms.businesslogic.media if (!e.Cancel) { - // delete all documents of this type - Media.DeleteFromType(this); - // Delete contentType - base.delete(); + // check that no media types uses me as a master + if (GetAllAsList().Any(dt => dt.MasterContentTypes.Contains(this.Id))) + { + throw new ArgumentException("Can't delete a Media Type used as a Master Content Type. Please remove all references first!"); + } + + ApplicationContext.Current.Services.ContentTypeService.Delete(_mediaType); FireAfterDelete(e); }