Browse Source

feat(data-protected): Use Mapperly instead of AutoMapper

pull/1416/head
colin 2 months ago
parent
commit
fa90e2ec10
  1. 7
      aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Application/LINGYUN/Abp/DataProtectionManagement/AbpDataProtectionManagementApplicationModule.cs
  2. 76
      aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Application/LINGYUN/Abp/DataProtectionManagement/DataProtectionManagementApplicationMappers.cs
  3. 29
      aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Application/LINGYUN/Abp/DataProtectionManagement/DataProtectionManagementApplicationMappingProfile.cs
  4. 2
      aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Domain/LINGYUN.Abp.DataProtectionManagement.Domain.csproj
  5. 13
      aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Domain/LINGYUN/Abp/DataProtectionManagement/AbpDataProtectionManagementDomainModule.cs
  6. 25
      aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Domain/LINGYUN/Abp/DataProtectionManagement/DataProtectionManagementDomainMappers.cs
  7. 12
      aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Domain/LINGYUN/Abp/DataProtectionManagement/DataProtectionManagementDomainMappingProfile.cs

7
aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Application/LINGYUN/Abp/DataProtectionManagement/AbpDataProtectionManagementApplicationModule.cs

@ -1,6 +1,5 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.Application; using Volo.Abp.Application;
using Volo.Abp.AutoMapper;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
namespace LINGYUN.Abp.DataProtectionManagement; namespace LINGYUN.Abp.DataProtectionManagement;
@ -13,10 +12,6 @@ public class AbpDataProtectionManagementApplicationModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
context.Services.AddAutoMapperObjectMapper<AbpDataProtectionManagementApplicationModule>(); context.Services.AddMapperlyObjectMapper<AbpDataProtectionManagementApplicationModule>();
Configure<AbpAutoMapperOptions>(options =>
{
options.AddProfile<DataProtectionManagementApplicationMappingProfile>(validate: true);
});
} }
} }

76
aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Application/LINGYUN/Abp/DataProtectionManagement/DataProtectionManagementApplicationMappers.cs

@ -0,0 +1,76 @@
using Riok.Mapperly.Abstractions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Volo.Abp.Mapperly;
namespace LINGYUN.Abp.DataProtectionManagement;
[Mapper(RequiredMappingStrategy = RequiredMappingStrategy.Target)]
public partial class EntityEnumInfoToEntityEnumInfoDtoMapper : MapperBase<EntityEnumInfo, EntityEnumInfoDto>
{
public override partial EntityEnumInfoDto Map(EntityEnumInfo source);
public override partial void Map(EntityEnumInfo source, EntityEnumInfoDto destination);
}
[Mapper(RequiredMappingStrategy = RequiredMappingStrategy.Target)]
public partial class EntityPropertyInfoToEntityPropertyInfoDtoMapper : MapperBase<EntityPropertyInfo, EntityPropertyInfoDto>
{
public override partial EntityPropertyInfoDto Map(EntityPropertyInfo source);
public override partial void Map(EntityPropertyInfo source, EntityPropertyInfoDto destination);
}
[Mapper(RequiredMappingStrategy = RequiredMappingStrategy.Target)]
public partial class EntityTypeInfoToEntityTypeInfoDtoMapper : MapperBase<EntityTypeInfo, EntityTypeInfoDto>
{
public override partial EntityTypeInfoDto Map(EntityTypeInfo source);
public override partial void Map(EntityTypeInfo source, EntityTypeInfoDto destination);
}
[Mapper(RequiredMappingStrategy = RequiredMappingStrategy.Target)]
public partial class RoleEntityRuleToRoleEntityRuleDtoMapper : MapperBase<RoleEntityRule, RoleEntityRuleDto>
{
[MapProperty(nameof(RoleEntityRule.AccessedProperties), nameof(RoleEntityRuleDto.AccessedProperties), Use = nameof(MapToArray))]
public override partial RoleEntityRuleDto Map(RoleEntityRule source);
[MapProperty(nameof(RoleEntityRule.AccessedProperties), nameof(RoleEntityRuleDto.AccessedProperties), Use = nameof(MapToArray))]
public override partial void Map(RoleEntityRule source, RoleEntityRuleDto destination);
[UserMapping]
private string[] MapToArray(string val)
{
if (val.IsNullOrWhiteSpace())
{
return Array.Empty<string>();
}
return val.Split(',').ToArray();
}
}
[Mapper(RequiredMappingStrategy = RequiredMappingStrategy.Target)]
public partial class OrganizationUnitEntityRuleToOrganizationUnitEntityRuleDtoMapper : MapperBase<OrganizationUnitEntityRule, OrganizationUnitEntityRuleDto>
{
[MapProperty(nameof(OrganizationUnitEntityRule.AccessedProperties), nameof(OrganizationUnitEntityRuleDto.AccessedProperties), Use = nameof(MapToArray))]
public override partial OrganizationUnitEntityRuleDto Map(OrganizationUnitEntityRule source);
[MapProperty(nameof(OrganizationUnitEntityRule.AccessedProperties), nameof(OrganizationUnitEntityRuleDto.AccessedProperties), Use = nameof(MapToArray))]
public override partial void Map(OrganizationUnitEntityRule source, OrganizationUnitEntityRuleDto destination);
[UserMapping]
private string[] MapToArray(string val)
{
if (val.IsNullOrWhiteSpace())
{
return Array.Empty<string>();
}
return val.Split(',').ToArray();
}
}
[Mapper(RequiredMappingStrategy = RequiredMappingStrategy.Target)]
public partial class SubjectStrategyToSubjectStrategyDtoMapper : MapperBase<SubjectStrategy, SubjectStrategyDto>
{
public override partial SubjectStrategyDto Map(SubjectStrategy source);
public override partial void Map(SubjectStrategy source, SubjectStrategyDto destination);
}

29
aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Application/LINGYUN/Abp/DataProtectionManagement/DataProtectionManagementApplicationMappingProfile.cs

@ -1,29 +0,0 @@
using AutoMapper;
using System;
using System.Linq;
namespace LINGYUN.Abp.DataProtectionManagement;
public class DataProtectionManagementApplicationMappingProfile :Profile
{
public DataProtectionManagementApplicationMappingProfile()
{
CreateMap<EntityEnumInfo, EntityEnumInfoDto>();
CreateMap<EntityPropertyInfo, EntityPropertyInfoDto>();
CreateMap<EntityTypeInfo, EntityTypeInfoDto>();
CreateMap<RoleEntityRule, RoleEntityRuleDto>()
.ForMember(dto => dto.AccessedProperties, map => map.MapFrom(src => MapToArray(src.AccessedProperties)));
CreateMap<OrganizationUnitEntityRule, OrganizationUnitEntityRuleDto>()
.ForMember(dto => dto.AccessedProperties, map => map.MapFrom(src => MapToArray(src.AccessedProperties)));
CreateMap<SubjectStrategy, SubjectStrategyDto>();
}
private string[] MapToArray(string val)
{
if (val.IsNullOrWhiteSpace())
{
return Array.Empty<string>();
}
return val.Split(',').ToArray();
}
}

2
aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Domain/LINGYUN.Abp.DataProtectionManagement.Domain.csproj

@ -14,7 +14,7 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Volo.Abp.AutoMapper" /> <PackageReference Include="Volo.Abp.Mapperly" />
<PackageReference Include="Volo.Abp.Ddd.Domain" /> <PackageReference Include="Volo.Abp.Ddd.Domain" />
</ItemGroup> </ItemGroup>

13
aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Domain/LINGYUN/Abp/DataProtectionManagement/AbpDataProtectionManagementDomainModule.cs

@ -1,16 +1,14 @@
using LINGYUN.Abp.DataProtection; using LINGYUN.Abp.DataProtection;
using Microsoft.Extensions.Caching.Distributed;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AutoMapper;
using Volo.Abp.Caching;
using Volo.Abp.Domain; using Volo.Abp.Domain;
using Volo.Abp.Domain.Entities.Events.Distributed; using Volo.Abp.Domain.Entities.Events.Distributed;
using Volo.Abp.Mapperly;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
namespace LINGYUN.Abp.DataProtectionManagement; namespace LINGYUN.Abp.DataProtectionManagement;
[DependsOn( [DependsOn(
typeof(AbpAutoMapperModule), typeof(AbpMapperlyModule),
typeof(AbpDddDomainModule), typeof(AbpDddDomainModule),
typeof(AbpDataProtectionModule), typeof(AbpDataProtectionModule),
typeof(AbpDataProtectionManagementDomainSharedModule) typeof(AbpDataProtectionManagementDomainSharedModule)
@ -19,12 +17,7 @@ public class AbpDataProtectionManagementDomainModule : AbpModule
{ {
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
context.Services.AddAutoMapperObjectMapper<AbpDataProtectionManagementDomainModule>(); context.Services.AddMapperlyObjectMapper<AbpDataProtectionManagementDomainModule>();
Configure<AbpAutoMapperOptions>(options =>
{
options.AddProfile<DataProtectionManagementDomainMappingProfile>(validate: true);
});
Configure<AbpDistributedEntityEventOptions>(options => Configure<AbpDistributedEntityEventOptions>(options =>
{ {

25
aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Domain/LINGYUN/Abp/DataProtectionManagement/DataProtectionManagementDomainMappers.cs

@ -0,0 +1,25 @@
using Riok.Mapperly.Abstractions;
using Volo.Abp.Mapperly;
namespace LINGYUN.Abp.DataProtectionManagement;
[Mapper(RequiredMappingStrategy = RequiredMappingStrategy.Target)]
public partial class EntityTypeInfoToEntityTypeInfoEtoMapper : MapperBase<EntityTypeInfo, EntityTypeInfoEto>
{
public override partial EntityTypeInfoEto Map(EntityTypeInfo source);
public override partial void Map(EntityTypeInfo source, EntityTypeInfoEto destination);
}
[Mapper(RequiredMappingStrategy = RequiredMappingStrategy.Target)]
public partial class RoleEntityRuleToRoleEntityRuleEtoMapper : MapperBase<RoleEntityRule, RoleEntityRuleEto>
{
public override partial RoleEntityRuleEto Map(RoleEntityRule source);
public override partial void Map(RoleEntityRule source, RoleEntityRuleEto destination);
}
[Mapper(RequiredMappingStrategy = RequiredMappingStrategy.Target)]
public partial class OrganizationUnitEntityRuleToOrganizationUnitEntityRuleEtoMapper : MapperBase<OrganizationUnitEntityRule, OrganizationUnitEntityRuleEto>
{
public override partial OrganizationUnitEntityRuleEto Map(OrganizationUnitEntityRule source);
public override partial void Map(OrganizationUnitEntityRule source, OrganizationUnitEntityRuleEto destination);
}

12
aspnet-core/modules/data-protection/LINGYUN.Abp.DataProtectionManagement.Domain/LINGYUN/Abp/DataProtectionManagement/DataProtectionManagementDomainMappingProfile.cs

@ -1,12 +0,0 @@
using AutoMapper;
namespace LINGYUN.Abp.DataProtectionManagement;
public class DataProtectionManagementDomainMappingProfile : Profile
{
public DataProtectionManagementDomainMappingProfile()
{
CreateMap<EntityTypeInfo, EntityTypeInfoEto>();
CreateMap<RoleEntityRule, RoleEntityRuleEto>();
CreateMap<OrganizationUnitEntityRule, OrganizationUnitEntityRuleEto>();
}
}
Loading…
Cancel
Save