From 968e6224c73239f52155c558afe8dd91a52642ad Mon Sep 17 00:00:00 2001 From: Shannon Date: Mon, 5 Aug 2013 19:29:47 +1000 Subject: [PATCH] Changed over the content/media type mappers to be auto-mapper based --- .../Editors/BackOfficeController.cs | 2 +- src/Umbraco.Web/Editors/ContentController.cs | 2 +- .../Editors/ContentTypeController.cs | 14 ++++----- src/Umbraco.Web/Editors/MediaController.cs | 2 +- ...piController.cs => MediaTypeController.cs} | 18 +++++------ .../Models/Mapping/BaseContentModelMapper.cs | 15 ---------- .../Models/Mapping/ContentTypeModelMapper.cs | 28 ----------------- .../Models/Mapping/MediaTypeModelMapper.cs | 30 +++++++------------ src/Umbraco.Web/Umbraco.Web.csproj | 3 +- 9 files changed, 29 insertions(+), 85 deletions(-) rename src/Umbraco.Web/Editors/{MediaTypeApiController.cs => MediaTypeController.cs} (69%) delete mode 100644 src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs diff --git a/src/Umbraco.Web/Editors/BackOfficeController.cs b/src/Umbraco.Web/Editors/BackOfficeController.cs index 486b5f4035..025457df8d 100644 --- a/src/Umbraco.Web/Editors/BackOfficeController.cs +++ b/src/Umbraco.Web/Editors/BackOfficeController.cs @@ -58,7 +58,7 @@ namespace Umbraco.Web.Editors {"sectionApiBaseUrl", Url.GetUmbracoApiServiceBaseUrl("GetSections")}, {"treeApplicationApiBaseUrl", Url.GetUmbracoApiServiceBaseUrl("GetApplicationTrees")}, {"contentTypeApiBaseUrl", Url.GetUmbracoApiServiceBaseUrl("GetAllowedChildren")}, - {"mediaTypeApiBaseUrl", Url.GetUmbracoApiServiceBaseUrl("GetAllowedChildren")}, + {"mediaTypeApiBaseUrl", Url.GetUmbracoApiServiceBaseUrl("GetAllowedChildren")}, {"authenticationApiBaseUrl", Url.GetUmbracoApiServiceBaseUrl("PostLogin")}, {"legacyApiBaseUrl", Url.GetUmbracoApiServiceBaseUrl("DeleteLegacyItem")} } diff --git a/src/Umbraco.Web/Editors/ContentController.cs b/src/Umbraco.Web/Editors/ContentController.cs index 1c1ec80508..5c3bdaf459 100644 --- a/src/Umbraco.Web/Editors/ContentController.cs +++ b/src/Umbraco.Web/Editors/ContentController.cs @@ -41,7 +41,7 @@ namespace Umbraco.Web.Editors /// Constructor /// /// - internal ContentController(UmbracoContext umbracoContext) + public ContentController(UmbracoContext umbracoContext) : base(umbracoContext) { } diff --git a/src/Umbraco.Web/Editors/ContentTypeController.cs b/src/Umbraco.Web/Editors/ContentTypeController.cs index 1059178413..b87e602c21 100644 --- a/src/Umbraco.Web/Editors/ContentTypeController.cs +++ b/src/Umbraco.Web/Editors/ContentTypeController.cs @@ -1,6 +1,8 @@ using System.Collections.Generic; using System.Net; using System.Web.Http; +using AutoMapper; +using Umbraco.Core.Models; using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Models.Mapping; using Umbraco.Web.Mvc; @@ -15,13 +17,11 @@ namespace Umbraco.Web.Editors [PluginController("UmbracoApi")] public class ContentTypeController : UmbracoAuthorizedJsonController { - private readonly ContentTypeModelMapper _contentTypeModelMapper; - /// /// Constructor /// public ContentTypeController() - : this(UmbracoContext.Current, new ContentTypeModelMapper(UmbracoContext.Current.Application)) + : this(UmbracoContext.Current) { } @@ -29,11 +29,9 @@ namespace Umbraco.Web.Editors /// Constructor /// /// - /// - internal ContentTypeController(UmbracoContext umbracoContext, ContentTypeModelMapper contentModelMapper) + public ContentTypeController(UmbracoContext umbracoContext) : base(umbracoContext) { - _contentTypeModelMapper = contentModelMapper; } /// @@ -46,7 +44,7 @@ namespace Umbraco.Web.Editors { return Services.ContentTypeService.GetAllContentTypes() .Where(x => x.AllowedAsRoot) - .Select(x => _contentTypeModelMapper.ToContentTypeBasic(x)); + .Select(Mapper.Map); } var contentItem = Services.ContentService.GetById(contentId); @@ -58,7 +56,7 @@ namespace Umbraco.Web.Editors return contentItem.ContentType.AllowedContentTypes .Select(x => Services.ContentTypeService.GetContentType(x.Id.Value)) - .Select(x => _contentTypeModelMapper.ToContentTypeBasic(x)); + .Select(Mapper.Map); } } diff --git a/src/Umbraco.Web/Editors/MediaController.cs b/src/Umbraco.Web/Editors/MediaController.cs index 093c2ee909..48d95c125c 100644 --- a/src/Umbraco.Web/Editors/MediaController.cs +++ b/src/Umbraco.Web/Editors/MediaController.cs @@ -47,7 +47,7 @@ namespace Umbraco.Web.Editors /// Constructor /// /// - internal MediaController(UmbracoContext umbracoContext) + public MediaController(UmbracoContext umbracoContext) : base(umbracoContext) { } diff --git a/src/Umbraco.Web/Editors/MediaTypeApiController.cs b/src/Umbraco.Web/Editors/MediaTypeController.cs similarity index 69% rename from src/Umbraco.Web/Editors/MediaTypeApiController.cs rename to src/Umbraco.Web/Editors/MediaTypeController.cs index 7baad6fe86..e5f0f9f439 100644 --- a/src/Umbraco.Web/Editors/MediaTypeApiController.cs +++ b/src/Umbraco.Web/Editors/MediaTypeController.cs @@ -2,6 +2,8 @@ using System.Linq; using System.Net; using System.Web.Http; +using AutoMapper; +using Umbraco.Core.Models; using Umbraco.Web.Models.ContentEditing; using Umbraco.Web.Models.Mapping; using Umbraco.Web.Mvc; @@ -13,15 +15,13 @@ namespace Umbraco.Web.Editors /// An API controller used for dealing with content types /// [PluginController("UmbracoApi")] - public class MediaTypeApiController : UmbracoAuthorizedJsonController + public class MediaTypeController : UmbracoAuthorizedJsonController { - private readonly MediaTypeModelMapper _mediaTypeModelMapper; - /// /// Constructor /// - public MediaTypeApiController() - : this(UmbracoContext.Current, new MediaTypeModelMapper(UmbracoContext.Current.Application)) + public MediaTypeController() + : this(UmbracoContext.Current) { } @@ -29,11 +29,9 @@ namespace Umbraco.Web.Editors /// Constructor /// /// - /// - internal MediaTypeApiController(UmbracoContext umbracoContext, MediaTypeModelMapper mediaModelMapper) + public MediaTypeController(UmbracoContext umbracoContext) : base(umbracoContext) { - _mediaTypeModelMapper = mediaModelMapper; } /// @@ -47,7 +45,7 @@ namespace Umbraco.Web.Editors { return Services.ContentTypeService.GetAllMediaTypes() .Where(x => x.AllowedAsRoot) - .Select(x => _mediaTypeModelMapper.ToMediaTypeBasic(x)); + .Select(Mapper.Map); } var contentItem = Services.MediaService.GetById(contentId); @@ -59,7 +57,7 @@ namespace Umbraco.Web.Editors return contentItem.ContentType.AllowedContentTypes .Select(x => Services.ContentTypeService.GetMediaType((int) x.Id.Value)) - .Select(x => _mediaTypeModelMapper.ToMediaTypeBasic(x)); + .Select(Mapper.Map); } } diff --git a/src/Umbraco.Web/Models/Mapping/BaseContentModelMapper.cs b/src/Umbraco.Web/Models/Mapping/BaseContentModelMapper.cs index 7b938642bb..e922887cfa 100644 --- a/src/Umbraco.Web/Models/Mapping/BaseContentModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/BaseContentModelMapper.cs @@ -20,21 +20,6 @@ namespace Umbraco.Web.Models.Mapping UserMapper = userMapper; } - //protected ContentItemDto ToContentItemDtoBase(IContentBase content) - // where TPersisted : IContentBase - //{ - // return CreateContent, ContentPropertyDto, TPersisted>(content, null, (propertyDto, originalProperty, propEditor) => - // { - // propertyDto.IsRequired = originalProperty.PropertyType.Mandatory; - // propertyDto.ValidationRegExp = originalProperty.PropertyType.ValidationRegExp; - // propertyDto.Alias = originalProperty.Alias; - // propertyDto.Description = originalProperty.PropertyType.Description; - // propertyDto.Label = originalProperty.PropertyType.Name; - // propertyDto.DataType = ApplicationContext.Services.DataTypeService.GetDataTypeDefinitionById(originalProperty.PropertyType.DataTypeDefinitionId); - // propertyDto.PropertyEditor = PropertyEditorResolver.Current.GetById(originalProperty.PropertyType.DataTypeId); - // }); - //} - protected ContentItemBasic ToContentItemSimpleBase(IContentBase content) where TPersisted : IContentBase { diff --git a/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs b/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs deleted file mode 100644 index 168217b473..0000000000 --- a/src/Umbraco.Web/Models/Mapping/ContentTypeModelMapper.cs +++ /dev/null @@ -1,28 +0,0 @@ -using Umbraco.Core; -using Umbraco.Core.Models; -using Umbraco.Web.Models.ContentEditing; - -namespace Umbraco.Web.Models.Mapping -{ - internal class ContentTypeModelMapper - { - private readonly ApplicationContext _applicationContext; - - public ContentTypeModelMapper(ApplicationContext applicationContext) - { - _applicationContext = applicationContext; - } - - public ContentTypeBasic ToContentTypeBasic(IContentType contentType) - { - return new ContentTypeBasic - { - Alias = contentType.Alias, - Id = contentType.Id, - Description = contentType.Description, - Icon = contentType.Icon, - Name = contentType.Name - }; - } - } -} \ No newline at end of file diff --git a/src/Umbraco.Web/Models/Mapping/MediaTypeModelMapper.cs b/src/Umbraco.Web/Models/Mapping/MediaTypeModelMapper.cs index c54c700adf..d21a90475f 100644 --- a/src/Umbraco.Web/Models/Mapping/MediaTypeModelMapper.cs +++ b/src/Umbraco.Web/Models/Mapping/MediaTypeModelMapper.cs @@ -1,28 +1,20 @@ -using Umbraco.Core; +using AutoMapper; +using Umbraco.Core; using Umbraco.Core.Models; +using Umbraco.Core.Models.Mapping; using Umbraco.Web.Models.ContentEditing; namespace Umbraco.Web.Models.Mapping { - internal class MediaTypeModelMapper - { - private readonly ApplicationContext _applicationContext; - - public MediaTypeModelMapper(ApplicationContext applicationContext) + /// + /// Defines mappings for content/media (and i'm sure one day member) type mappings + /// + internal class ContentTypeModelMapper : MapperConfiguration + { + public override void ConfigureMappings(IConfiguration config, ApplicationContext applicationContext) { - _applicationContext = applicationContext; - } - - public ContentTypeBasic ToMediaTypeBasic(IMediaType contentType) - { - return new ContentTypeBasic - { - Alias = contentType.Alias, - Id = contentType.Id, - Description = contentType.Description, - Icon = contentType.Icon, - Name = contentType.Name - }; + config.CreateMap(); + config.CreateMap(); } } } \ No newline at end of file diff --git a/src/Umbraco.Web/Umbraco.Web.csproj b/src/Umbraco.Web/Umbraco.Web.csproj index a1fe2aa6c5..2753e58788 100644 --- a/src/Umbraco.Web/Umbraco.Web.csproj +++ b/src/Umbraco.Web/Umbraco.Web.csproj @@ -302,7 +302,7 @@ - + @@ -327,7 +327,6 @@ -