From 1ff4fe26dd5dc4bc34203cab053ae2f9cbe470f8 Mon Sep 17 00:00:00 2001 From: Tom Pipe Date: Thu, 29 Oct 2015 16:43:54 +0000 Subject: [PATCH 1/3] Fixes YSOD after send to translation --- src/umbraco.cms/businesslogic/translation/Translation.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/umbraco.cms/businesslogic/translation/Translation.cs b/src/umbraco.cms/businesslogic/translation/Translation.cs index db9d4d4644..1d67e3b9f9 100644 --- a/src/umbraco.cms/businesslogic/translation/Translation.cs +++ b/src/umbraco.cms/businesslogic/translation/Translation.cs @@ -19,13 +19,15 @@ namespace umbraco.cms.businesslogic.translation public static void MakeNew(CMSNode Node, User User, User Translator, Language Language, string Comment, bool IncludeSubpages, bool SendEmail) { + // Get translation taskType for obsolete task constructor + var taskType = ApplicationContext.Current.Services.TaskService.GetTaskTypeById(1); + // Create pending task - Task t = new Task(); + Task t = new Task(new Umbraco.Core.Models.Task(taskType)); t.Comment = Comment; t.Node = Node; t.ParentUser = User; t.User = Translator; - t.Type = new TaskType("toTranslate"); t.Save(); // Add log entry From 5d97a94dcbc7ec42a114bee7eabdfc1fd2b564d6 Mon Sep 17 00:00:00 2001 From: Claus Date: Wed, 11 Nov 2015 12:02:12 +0100 Subject: [PATCH 2/3] Fixed to use alias instead of hardcoded id. Added mapper for TaskType. --- .../Persistence/Mappers/TaskTypeMapper.cs | 39 +++++++++++++++++++ src/Umbraco.Core/Umbraco.Core.csproj | 1 + .../businesslogic/translation/Translation.cs | 2 +- 3 files changed, 41 insertions(+), 1 deletion(-) create mode 100644 src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs diff --git a/src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs b/src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs new file mode 100644 index 0000000000..cb5632ecb5 --- /dev/null +++ b/src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs @@ -0,0 +1,39 @@ +using System.Collections.Concurrent; +using Umbraco.Core.Models; +using Umbraco.Core.Models.Rdbms; + +namespace Umbraco.Core.Persistence.Mappers +{ + /// + /// Represents a to DTO mapper used to translate the properties of the public api + /// implementation to that of the database's DTO as sql: [tableName].[columnName]. + /// + //[MapperFor(typeof(ITaskType))] + [MapperFor(typeof(TaskType))] + public sealed class TaskTypeMapper : BaseMapper + { + private static readonly ConcurrentDictionary PropertyInfoCacheInstance = new ConcurrentDictionary(); + + //NOTE: its an internal class but the ctor must be public since we're using Activator.CreateInstance to create it + // otherwise that would fail because there is no public constructor. + public TaskTypeMapper() + { + BuildMap(); + } + + #region Overrides of BaseMapper + + internal override ConcurrentDictionary PropertyInfoCache + { + get { return PropertyInfoCacheInstance; } + } + + internal override void BuildMap() + { + CacheMap(src => src.Id, dto => dto.Id); + CacheMap(src => src.Alias, dto => dto.Alias); + } + + #endregion + } +} \ No newline at end of file diff --git a/src/Umbraco.Core/Umbraco.Core.csproj b/src/Umbraco.Core/Umbraco.Core.csproj index f8cdcb10c2..07387d2064 100644 --- a/src/Umbraco.Core/Umbraco.Core.csproj +++ b/src/Umbraco.Core/Umbraco.Core.csproj @@ -404,6 +404,7 @@ + diff --git a/src/umbraco.cms/businesslogic/translation/Translation.cs b/src/umbraco.cms/businesslogic/translation/Translation.cs index 1d67e3b9f9..7edbfefadd 100644 --- a/src/umbraco.cms/businesslogic/translation/Translation.cs +++ b/src/umbraco.cms/businesslogic/translation/Translation.cs @@ -20,7 +20,7 @@ namespace umbraco.cms.businesslogic.translation bool IncludeSubpages, bool SendEmail) { // Get translation taskType for obsolete task constructor - var taskType = ApplicationContext.Current.Services.TaskService.GetTaskTypeById(1); + var taskType = ApplicationContext.Current.Services.TaskService.GetTaskTypeByAlias("toTranslate"); // Create pending task Task t = new Task(new Umbraco.Core.Models.Task(taskType)); From f2b3d7c04170c79fe2b624bf524f2e7aab9a902a Mon Sep 17 00:00:00 2001 From: Claus Date: Wed, 11 Nov 2015 12:07:45 +0100 Subject: [PATCH 3/3] Removed commented out line. --- src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs b/src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs index cb5632ecb5..4399fd323b 100644 --- a/src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs +++ b/src/Umbraco.Core/Persistence/Mappers/TaskTypeMapper.cs @@ -8,7 +8,6 @@ namespace Umbraco.Core.Persistence.Mappers /// Represents a to DTO mapper used to translate the properties of the public api /// implementation to that of the database's DTO as sql: [tableName].[columnName]. /// - //[MapperFor(typeof(ITaskType))] [MapperFor(typeof(TaskType))] public sealed class TaskTypeMapper : BaseMapper {