diff --git a/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj b/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj
index 327f2078d1..2fb39be54f 100644
--- a/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj
+++ b/framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj
@@ -15,6 +15,7 @@
+
diff --git a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs
index 1590e879b1..214872e371 100644
--- a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs
+++ b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs
@@ -2,6 +2,7 @@
using AutoMapper;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options;
+using Volo.Abp.Auditing;
using Volo.Abp.Modularity;
using Volo.Abp.ObjectExtending;
using Volo.Abp.ObjectMapping;
@@ -10,7 +11,9 @@ namespace Volo.Abp.AutoMapper
{
[DependsOn(
typeof(AbpObjectMappingModule),
- typeof(AbpObjectExtendingModule))]
+ typeof(AbpObjectExtendingModule),
+ typeof(AbpAuditingModule)
+ )]
public class AbpAutoMapperModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
diff --git a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions.cs b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions.cs
index d8cc559d0f..01e051f019 100644
--- a/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions.cs
+++ b/framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions.cs
@@ -1,6 +1,7 @@
using System;
using System.Linq.Expressions;
using AutoMapper;
+using Volo.Abp.Auditing;
namespace Volo.Abp.AutoMapper
{
@@ -10,5 +11,12 @@ namespace Volo.Abp.AutoMapper
{
return mappingExpression.ForMember(destinationMember, opts => opts.Ignore());
}
+
+ public static IMappingExpression IgnoreCreationTime(
+ this IMappingExpression mappingExpression)
+ where TDestination : IHasCreationTime
+ {
+ return mappingExpression.Ignore(x => x.CreationTime);
+ }
}
}
diff --git a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions_Tests.cs b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions_Tests.cs
index 11ccbfb4c8..d667b3895d 100644
--- a/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions_Tests.cs
+++ b/framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions_Tests.cs
@@ -1,5 +1,7 @@
-using AutoMapper;
+using System;
+using AutoMapper;
using Shouldly;
+using Volo.Abp.Auditing;
using Xunit;
namespace Volo.Abp.AutoMapper
@@ -9,15 +11,12 @@ namespace Volo.Abp.AutoMapper
[Fact]
public void Should_Ignore_Configured_Property()
{
- var configuration = new MapperConfiguration(
+ var mapper = CreateMapper(
cfg => cfg.CreateMap()
.Ignore(x => x.Value2)
.Ignore(x => x.Value3)
);
- configuration.AssertConfigurationIsValid();
- var mapper = configuration.CreateMapper();
-
var obj2 = mapper.Map(
new SimpleClass1
{
@@ -31,6 +30,31 @@ namespace Volo.Abp.AutoMapper
obj2.Value3.ShouldBeNull();
}
+ [Fact]
+ public void Should_Ignore_CreationTime()
+ {
+ var mapper = CreateMapper(
+ cfg => cfg.CreateMap()
+ .IgnoreCreationTime()
+ );
+
+ var obj2 = mapper.Map(
+ new SimpleClassWithCreationTime1
+ {
+ CreationTime = DateTime.Now
+ }
+ );
+
+ obj2.CreationTime.ShouldBe(default);
+ }
+
+ private static IMapper CreateMapper(Action configurer)
+ {
+ var configuration = new MapperConfiguration(configurer);
+ configuration.AssertConfigurationIsValid();
+ return configuration.CreateMapper();
+ }
+
public class SimpleClass1
{
public string Value1 { get; set; }
@@ -43,5 +67,15 @@ namespace Volo.Abp.AutoMapper
public string Value2 { get; set; }
public string Value3 { get; set; }
}
+
+ public class SimpleClassWithCreationTime1 : IHasCreationTime
+ {
+ public DateTime CreationTime { get; set; }
+ }
+
+ public class SimpleClassWithCreationTime2 : IHasCreationTime
+ {
+ public DateTime CreationTime { get; set; }
+ }
}
}
\ No newline at end of file