Browse Source

Added IgnoreCreationTime.

pull/4164/head
Halil İbrahim Kalkan 6 years ago
parent
commit
6b25cfcaaa
  1. 1
      framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj
  2. 5
      framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs
  3. 8
      framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions.cs
  4. 44
      framework/test/Volo.Abp.AutoMapper.Tests/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions_Tests.cs

1
framework/src/Volo.Abp.AutoMapper/Volo.Abp.AutoMapper.csproj

@ -15,6 +15,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<ProjectReference Include="..\Volo.Abp.Auditing\Volo.Abp.Auditing.csproj" />
<ProjectReference Include="..\Volo.Abp.ObjectExtending\Volo.Abp.ObjectExtending.csproj" /> <ProjectReference Include="..\Volo.Abp.ObjectExtending\Volo.Abp.ObjectExtending.csproj" />
<ProjectReference Include="..\Volo.Abp.ObjectMapping\Volo.Abp.ObjectMapping.csproj" /> <ProjectReference Include="..\Volo.Abp.ObjectMapping\Volo.Abp.ObjectMapping.csproj" />
</ItemGroup> </ItemGroup>

5
framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AbpAutoMapperModule.cs

@ -2,6 +2,7 @@
using AutoMapper; using AutoMapper;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Options; using Microsoft.Extensions.Options;
using Volo.Abp.Auditing;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending;
using Volo.Abp.ObjectMapping; using Volo.Abp.ObjectMapping;
@ -10,7 +11,9 @@ namespace Volo.Abp.AutoMapper
{ {
[DependsOn( [DependsOn(
typeof(AbpObjectMappingModule), typeof(AbpObjectMappingModule),
typeof(AbpObjectExtendingModule))] typeof(AbpObjectExtendingModule),
typeof(AbpAuditingModule)
)]
public class AbpAutoMapperModule : AbpModule public class AbpAutoMapperModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)

8
framework/src/Volo.Abp.AutoMapper/Volo/Abp/AutoMapper/AutoMapperExpressionExtensions.cs

@ -1,6 +1,7 @@
using System; using System;
using System.Linq.Expressions; using System.Linq.Expressions;
using AutoMapper; using AutoMapper;
using Volo.Abp.Auditing;
namespace Volo.Abp.AutoMapper namespace Volo.Abp.AutoMapper
{ {
@ -10,5 +11,12 @@ namespace Volo.Abp.AutoMapper
{ {
return mappingExpression.ForMember(destinationMember, opts => opts.Ignore()); return mappingExpression.ForMember(destinationMember, opts => opts.Ignore());
} }
public static IMappingExpression<TSource, TDestination> IgnoreCreationTime<TSource, TDestination>(
this IMappingExpression<TSource, TDestination> mappingExpression)
where TDestination : IHasCreationTime
{
return mappingExpression.Ignore(x => x.CreationTime);
}
} }
} }

44
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 Shouldly;
using Volo.Abp.Auditing;
using Xunit; using Xunit;
namespace Volo.Abp.AutoMapper namespace Volo.Abp.AutoMapper
@ -9,15 +11,12 @@ namespace Volo.Abp.AutoMapper
[Fact] [Fact]
public void Should_Ignore_Configured_Property() public void Should_Ignore_Configured_Property()
{ {
var configuration = new MapperConfiguration( var mapper = CreateMapper(
cfg => cfg.CreateMap<SimpleClass1, SimpleClass2>() cfg => cfg.CreateMap<SimpleClass1, SimpleClass2>()
.Ignore(x => x.Value2) .Ignore(x => x.Value2)
.Ignore(x => x.Value3) .Ignore(x => x.Value3)
); );
configuration.AssertConfigurationIsValid();
var mapper = configuration.CreateMapper();
var obj2 = mapper.Map<SimpleClass2>( var obj2 = mapper.Map<SimpleClass2>(
new SimpleClass1 new SimpleClass1
{ {
@ -31,6 +30,31 @@ namespace Volo.Abp.AutoMapper
obj2.Value3.ShouldBeNull(); obj2.Value3.ShouldBeNull();
} }
[Fact]
public void Should_Ignore_CreationTime()
{
var mapper = CreateMapper(
cfg => cfg.CreateMap<SimpleClassWithCreationTime1, SimpleClassWithCreationTime2>()
.IgnoreCreationTime()
);
var obj2 = mapper.Map<SimpleClassWithCreationTime2>(
new SimpleClassWithCreationTime1
{
CreationTime = DateTime.Now
}
);
obj2.CreationTime.ShouldBe(default);
}
private static IMapper CreateMapper(Action<IMapperConfigurationExpression> configurer)
{
var configuration = new MapperConfiguration(configurer);
configuration.AssertConfigurationIsValid();
return configuration.CreateMapper();
}
public class SimpleClass1 public class SimpleClass1
{ {
public string Value1 { get; set; } public string Value1 { get; set; }
@ -43,5 +67,15 @@ namespace Volo.Abp.AutoMapper
public string Value2 { get; set; } public string Value2 { get; set; }
public string Value3 { 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; }
}
} }
} }
Loading…
Cancel
Save