diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj
index d8c149f8b5..b4530a5dd7 100644
--- a/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj
+++ b/modules/account/src/Volo.Abp.Account.Application/Volo.Abp.Account.Application.csproj
@@ -21,6 +21,7 @@
+
diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationMappers.cs b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationMappers.cs
new file mode 100644
index 0000000000..dcfaf275dd
--- /dev/null
+++ b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationMappers.cs
@@ -0,0 +1,21 @@
+using Riok.Mapperly.Abstractions;
+using Volo.Abp.Identity;
+using Volo.Abp.Mapperly;
+
+namespace Volo.Abp.Account;
+
+[Mapper]
+[MapExtraProperties]
+public partial class IdentityUserToProfileDtoMapper : MapperBase
+{
+ [MapperIgnoreTarget(nameof(ProfileDto.HasPassword))]
+ public override partial ProfileDto Map(IdentityUser source);
+
+ [MapperIgnoreTarget(nameof(ProfileDto.HasPassword))]
+ public override partial void Map(IdentityUser source, ProfileDto destination);
+
+ public override void AfterMap(IdentityUser source, ProfileDto destination)
+ {
+ destination.HasPassword = source.PasswordHash != null;
+ }
+}
\ No newline at end of file
diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModule.cs b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModule.cs
index 283e06a934..04f25d33d8 100644
--- a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModule.cs
+++ b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModule.cs
@@ -1,4 +1,4 @@
-using Volo.Abp.AutoMapper;
+using Volo.Abp.Mapperly;
using Volo.Abp.Emailing;
using Volo.Abp.Identity;
using Volo.Abp.Modularity;
@@ -12,7 +12,8 @@ namespace Volo.Abp.Account;
typeof(AbpAccountApplicationContractsModule),
typeof(AbpIdentityApplicationModule),
typeof(AbpUiNavigationModule),
- typeof(AbpEmailingModule)
+ typeof(AbpEmailingModule),
+ typeof(AbpMapperlyModule)
)]
public class AbpAccountApplicationModule : AbpModule
{
@@ -23,11 +24,6 @@ public class AbpAccountApplicationModule : AbpModule
options.FileSets.AddEmbedded();
});
- Configure(options =>
- {
- options.AddProfile(validate: true);
- });
-
Configure(options =>
{
options.Applications["MVC"].Urls[AccountUrlNames.PasswordReset] = "Account/ResetPassword";
diff --git a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModuleAutoMapperProfile.cs b/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModuleAutoMapperProfile.cs
deleted file mode 100644
index 0c117d98d0..0000000000
--- a/modules/account/src/Volo.Abp.Account.Application/Volo/Abp/Account/AbpAccountApplicationModuleAutoMapperProfile.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using AutoMapper;
-using Volo.Abp.Identity;
-
-namespace Volo.Abp.Account;
-
-public class AbpAccountApplicationModuleAutoMapperProfile : Profile
-{
- public AbpAccountApplicationModuleAutoMapperProfile()
- {
- CreateMap()
- .ForMember(dest => dest.HasPassword,
- op => op.MapFrom(src => src.PasswordHash != null))
- .MapExtraProperties();
- }
-}
diff --git a/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountBlazorAutoMapperProfile.cs b/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountBlazorAutoMapperProfile.cs
deleted file mode 100644
index af59d75321..0000000000
--- a/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountBlazorAutoMapperProfile.cs
+++ /dev/null
@@ -1,20 +0,0 @@
-using AutoMapper;
-using Volo.Abp.Account.Blazor.Pages.Account;
-using Volo.Abp.AutoMapper;
-using Volo.Abp.Identity;
-
-namespace Volo.Abp.Account.Blazor;
-
-public class AbpAccountBlazorAutoMapperProfile : Profile
-{
- public AbpAccountBlazorAutoMapperProfile()
- {
- CreateMap()
- .MapExtraProperties()
- .Ignore(x => x.PhoneNumberConfirmed)
- .Ignore(x => x.EmailConfirmed);
-
- CreateMap()
- .MapExtraProperties();
- }
-}
diff --git a/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountBlazorMappers.cs b/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountBlazorMappers.cs
new file mode 100644
index 0000000000..98ef9f9ab6
--- /dev/null
+++ b/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountBlazorMappers.cs
@@ -0,0 +1,27 @@
+using Riok.Mapperly.Abstractions;
+using Volo.Abp.Account.Blazor.Pages.Account;
+using Volo.Abp.Mapperly;
+using Volo.Abp.Identity;
+
+namespace Volo.Abp.Account.Blazor;
+
+[Mapper]
+[MapExtraProperties]
+public partial class ProfileDtoToPersonalInfoModelMapper : MapperBase
+{
+ [MapperIgnoreTarget(nameof(PersonalInfoModel.PhoneNumberConfirmed))]
+ [MapperIgnoreTarget(nameof(PersonalInfoModel.EmailConfirmed))]
+ public override partial PersonalInfoModel Map(ProfileDto source);
+
+ [MapperIgnoreTarget(nameof(PersonalInfoModel.PhoneNumberConfirmed))]
+ [MapperIgnoreTarget(nameof(PersonalInfoModel.EmailConfirmed))]
+ public override partial void Map(ProfileDto source, PersonalInfoModel destination);
+}
+
+[Mapper]
+[MapExtraProperties]
+public partial class PersonalInfoModelToUpdateProfileDtoMapper : MapperBase
+{
+ public override partial UpdateProfileDto Map(PersonalInfoModel source);
+ public override partial void Map(PersonalInfoModel source, UpdateProfileDto destination);
+}
\ No newline at end of file
diff --git a/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountBlazorModule.cs b/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountBlazorModule.cs
index 61b42e1807..6a44f156ee 100644
--- a/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountBlazorModule.cs
+++ b/modules/account/src/Volo.Abp.Account.Blazor/AbpAccountBlazorModule.cs
@@ -2,7 +2,7 @@
using Volo.Abp.Account.Blazor.Pages.Account;
using Volo.Abp.AspNetCore.Components.Web.Theming;
using Volo.Abp.AspNetCore.Components.Web.Theming.Routing;
-using Volo.Abp.AutoMapper;
+using Volo.Abp.Mapperly;
using Volo.Abp.Modularity;
using Volo.Abp.ObjectExtending;
using Volo.Abp.ObjectExtending.Modularity;
@@ -13,21 +13,16 @@ namespace Volo.Abp.Account.Blazor;
[DependsOn(
typeof(AbpAspNetCoreComponentsWebThemingModule),
- typeof(AbpAutoMapperModule),
+ typeof(AbpMapperlyModule),
typeof(AbpAccountApplicationContractsModule)
)]
public class AbpAccountBlazorModule : AbpModule
{
private readonly static OneTimeRunner OneTimeRunner = new OneTimeRunner();
-
+
public override void ConfigureServices(ServiceConfigurationContext context)
{
- context.Services.AddAutoMapperObjectMapper();
-
- Configure(options =>
- {
- options.AddProfile(validate: true);
- });
+ context.Services.AddMapperlyObjectMapper();
Configure(options =>
{
@@ -39,7 +34,7 @@ public class AbpAccountBlazorModule : AbpModule
options.AdditionalAssemblies.Add(typeof(AbpAccountBlazorModule).Assembly);
});
}
-
+
public override void PostConfigureServices(ServiceConfigurationContext context)
{
OneTimeRunner.Run(() =>
diff --git a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj
index 0eaa3cd978..7590216d06 100644
--- a/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj
+++ b/modules/account/src/Volo.Abp.Account.Blazor/Volo.Abp.Account.Blazor.csproj
@@ -10,7 +10,7 @@
-
+
diff --git a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebAutomapperProfile.cs b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebAutomapperProfile.cs
deleted file mode 100644
index cdc92e8b19..0000000000
--- a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebAutomapperProfile.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using Volo.Abp.Account.Web.Pages.Account;
-using Volo.Abp.Identity;
-using AutoMapper;
-using Volo.Abp.Account.Web.Pages.Account.Components.ProfileManagementGroup.PersonalInfo;
-
-namespace Volo.Abp.Account.Web;
-
-public class AbpAccountWebAutoMapperProfile : Profile
-{
- public AbpAccountWebAutoMapperProfile()
- {
- CreateMap()
- .MapExtraProperties();
- }
-}
diff --git a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebMappers.cs b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebMappers.cs
new file mode 100644
index 0000000000..09a2e8373c
--- /dev/null
+++ b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebMappers.cs
@@ -0,0 +1,13 @@
+using Riok.Mapperly.Abstractions;
+using Volo.Abp.Account.Web.Pages.Account.Components.ProfileManagementGroup.PersonalInfo;
+using Volo.Abp.Mapperly;
+
+namespace Volo.Abp.Account.Web;
+
+[Mapper]
+[MapExtraProperties]
+public partial class ProfileDtoToPersonalInfoModelMapper : MapperBase
+{
+ public override partial AccountProfilePersonalInfoManagementGroupViewComponent.PersonalInfoModel Map(ProfileDto source);
+ public override partial void Map(ProfileDto source, AccountProfilePersonalInfoManagementGroupViewComponent.PersonalInfoModel destination);
+}
\ No newline at end of file
diff --git a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs
index 1b41deaff7..f246beed84 100644
--- a/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs
+++ b/modules/account/src/Volo.Abp.Account.Web/AbpAccountWebModule.cs
@@ -8,7 +8,7 @@ using Volo.Abp.AspNetCore.Mvc.Localization;
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Toolbars;
-using Volo.Abp.AutoMapper;
+using Volo.Abp.Mapperly;
using Volo.Abp.ExceptionHandling;
using Volo.Abp.Http.ProxyScripting.Generators.JQuery;
using Volo.Abp.Identity.AspNetCore;
@@ -24,14 +24,14 @@ namespace Volo.Abp.Account.Web;
[DependsOn(
typeof(AbpAccountApplicationContractsModule),
typeof(AbpIdentityAspNetCoreModule),
- typeof(AbpAutoMapperModule),
+ typeof(AbpMapperlyModule),
typeof(AbpAspNetCoreMvcUiThemeSharedModule),
typeof(AbpExceptionHandlingModule)
)]
public class AbpAccountWebModule : AbpModule
{
private readonly static OneTimeRunner OneTimeRunner = new OneTimeRunner();
-
+
public override void PreConfigureServices(ServiceConfigurationContext context)
{
context.Services.PreConfigure(options =>
@@ -59,11 +59,7 @@ public class AbpAccountWebModule : AbpModule
ConfigureProfileManagementPage();
- context.Services.AddAutoMapperObjectMapper();
- Configure(options =>
- {
- options.AddProfile(validate: true);
- });
+ context.Services.AddMapperlyObjectMapper();
Configure(options =>
{
@@ -96,7 +92,7 @@ public class AbpAccountWebModule : AbpModule
});
}
-
+
public override void PostConfigureServices(ServiceConfigurationContext context)
{
OneTimeRunner.Run(() =>
diff --git a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj
index efedb773fe..3f52eae0a4 100644
--- a/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj
+++ b/modules/account/src/Volo.Abp.Account.Web/Volo.Abp.Account.Web.csproj
@@ -39,7 +39,7 @@
-
+
diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj
index 0b3693b5d1..7125af8060 100644
--- a/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj
+++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo.Abp.Identity.Application.csproj
@@ -18,7 +18,7 @@
-
+
diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationMappers.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationMappers.cs
new file mode 100644
index 0000000000..164da27aae
--- /dev/null
+++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationMappers.cs
@@ -0,0 +1,19 @@
+using Riok.Mapperly.Abstractions;
+using Volo.Abp.Identity;
+using Volo.Abp.Mapperly;
+
+[Mapper]
+[MapExtraProperties]
+public partial class IdentityUserToIdentityUserDtoMapper : MapperBase
+{
+ public override partial IdentityUserDto Map(IdentityUser source);
+ public override partial void Map(IdentityUser source, IdentityUserDto destination);
+}
+
+[Mapper]
+[MapExtraProperties]
+public partial class IdentityRoleToIdentityRoleDtoMapper : MapperBase
+{
+ public override partial IdentityRoleDto Map(IdentityRole source);
+ public override partial void Map(IdentityRole source, IdentityRoleDto destination);
+}
diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModule.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModule.cs
index 673a0605c7..07865ab8f5 100644
--- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModule.cs
+++ b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModule.cs
@@ -1,5 +1,5 @@
using Microsoft.Extensions.DependencyInjection;
-using Volo.Abp.AutoMapper;
+using Volo.Abp.Mapperly;
using Volo.Abp.Modularity;
using Volo.Abp.PermissionManagement;
@@ -8,18 +8,13 @@ namespace Volo.Abp.Identity;
[DependsOn(
typeof(AbpIdentityDomainModule),
typeof(AbpIdentityApplicationContractsModule),
- typeof(AbpAutoMapperModule),
+ typeof(AbpMapperlyModule),
typeof(AbpPermissionManagementApplicationModule)
)]
public class AbpIdentityApplicationModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
- context.Services.AddAutoMapperObjectMapper();
-
- Configure(options =>
- {
- options.AddProfile(validate: true);
- });
+ context.Services.AddMapperlyObjectMapper();
}
}
diff --git a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModuleAutoMapperProfile.cs b/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModuleAutoMapperProfile.cs
deleted file mode 100644
index a546a9bca1..0000000000
--- a/modules/identity/src/Volo.Abp.Identity.Application/Volo/Abp/Identity/AbpIdentityApplicationModuleAutoMapperProfile.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using AutoMapper;
-
-namespace Volo.Abp.Identity;
-
-public class AbpIdentityApplicationModuleAutoMapperProfile : Profile
-{
- public AbpIdentityApplicationModuleAutoMapperProfile()
- {
- CreateMap()
- .MapExtraProperties();
-
- CreateMap()
- .MapExtraProperties();
- }
-}
diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorAutoMapperProfile.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorAutoMapperProfile.cs
deleted file mode 100644
index 52a450785e..0000000000
--- a/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorAutoMapperProfile.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using AutoMapper;
-using Volo.Abp.AutoMapper;
-
-namespace Volo.Abp.Identity.Blazor;
-
-public class AbpIdentityBlazorAutoMapperProfile : Profile
-{
- public AbpIdentityBlazorAutoMapperProfile()
- {
- CreateMap()
- .MapExtraProperties()
- .Ignore(x => x.Password)
- .Ignore(x => x.RoleNames);
-
- CreateMap()
- .MapExtraProperties();
- }
-}
diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorMappers.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorMappers.cs
new file mode 100644
index 0000000000..614ca6ae32
--- /dev/null
+++ b/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorMappers.cs
@@ -0,0 +1,25 @@
+using Riok.Mapperly.Abstractions;
+using Volo.Abp.Mapperly;
+
+namespace Volo.Abp.Identity.Blazor;
+
+[Mapper]
+[MapExtraProperties]
+public partial class IdentityUserDtoToIdentityUserUpdateDtoMapper : MapperBase
+{
+ [MapperIgnoreTarget(nameof(IdentityUserUpdateDto.Password))]
+ [MapperIgnoreTarget(nameof(IdentityUserUpdateDto.RoleNames))]
+ public override partial IdentityUserUpdateDto Map(IdentityUserDto source);
+
+ [MapperIgnoreTarget(nameof(IdentityUserUpdateDto.Password))]
+ [MapperIgnoreTarget(nameof(IdentityUserUpdateDto.RoleNames))]
+ public override partial void Map(IdentityUserDto source, IdentityUserUpdateDto destination);
+}
+
+[Mapper]
+[MapExtraProperties]
+public partial class IdentityRoleDtoToIdentityRoleUpdateDtoMapper : MapperBase
+{
+ public override partial IdentityRoleUpdateDto Map(IdentityRoleDto source);
+ public override partial void Map(IdentityRoleDto source, IdentityRoleUpdateDto destination);
+}
diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorModule.cs b/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorModule.cs
index 3367b42a1b..89aba05f89 100644
--- a/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorModule.cs
+++ b/modules/identity/src/Volo.Abp.Identity.Blazor/AbpIdentityBlazorModule.cs
@@ -1,7 +1,7 @@
using Localization.Resources.AbpUi;
using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AspNetCore.Components.Web.Theming.Routing;
-using Volo.Abp.AutoMapper;
+using Volo.Abp.Mapperly;
using Volo.Abp.BlazoriseUI;
using Volo.Abp.Identity.Localization;
using Volo.Abp.Localization;
@@ -16,7 +16,7 @@ namespace Volo.Abp.Identity.Blazor;
[DependsOn(
typeof(AbpIdentityApplicationContractsModule),
- typeof(AbpAutoMapperModule),
+ typeof(AbpMapperlyModule),
typeof(AbpPermissionManagementBlazorModule),
typeof(AbpBlazoriseUIModule)
)]
@@ -26,12 +26,7 @@ public class AbpIdentityBlazorModule : AbpModule
public override void ConfigureServices(ServiceConfigurationContext context)
{
- context.Services.AddAutoMapperObjectMapper();
-
- Configure(options =>
- {
- options.AddProfile(validate: true);
- });
+ context.Services.AddMapperlyObjectMapper();
Configure(options =>
{
@@ -42,7 +37,7 @@ public class AbpIdentityBlazorModule : AbpModule
{
options.AdditionalAssemblies.Add(typeof(AbpIdentityBlazorModule).Assembly);
});
-
+
Configure(options =>
{
options.Resources
diff --git a/modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.csproj b/modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.csproj
index 355cb4294a..777fb1c31e 100644
--- a/modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.csproj
+++ b/modules/identity/src/Volo.Abp.Identity.Blazor/Volo.Abp.Identity.Blazor.csproj
@@ -8,7 +8,7 @@
-
+
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj
index fadd6e4109..a1bde79665 100644
--- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj
+++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo.Abp.Identity.Domain.csproj
@@ -23,7 +23,7 @@
-
+
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs
index baf0871c58..590beb8e09 100644
--- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs
+++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/AbpIdentityDomainModule.cs
@@ -3,7 +3,7 @@ using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.DependencyInjection.Extensions;
using Microsoft.Extensions.Options;
-using Volo.Abp.AutoMapper;
+using Volo.Abp.Mapperly;
using Volo.Abp.Domain;
using Volo.Abp.Domain.Entities.Events.Distributed;
using Volo.Abp.Modularity;
@@ -19,7 +19,7 @@ namespace Volo.Abp.Identity;
typeof(AbpDddDomainModule),
typeof(AbpIdentityDomainSharedModule),
typeof(AbpUsersDomainModule),
- typeof(AbpAutoMapperModule)
+ typeof(AbpMapperlyModule)
)]
public class AbpIdentityDomainModule : AbpModule
{
@@ -35,12 +35,7 @@ public class AbpIdentityDomainModule : AbpModule
public override void ConfigureServices(ServiceConfigurationContext context)
{
- context.Services.AddAutoMapperObjectMapper();
-
- Configure(options =>
- {
- options.AddProfile(validate: true);
- });
+ context.Services.AddMapperlyObjectMapper();
Configure(options =>
{
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappers.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappers.cs
new file mode 100644
index 0000000000..f7d41c9891
--- /dev/null
+++ b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappers.cs
@@ -0,0 +1,33 @@
+using Riok.Mapperly.Abstractions;
+using Volo.Abp.Mapperly;
+using Volo.Abp.Users;
+
+namespace Volo.Abp.Identity;
+
+[Mapper]
+public partial class IdentityUserToUserEtoMapper : MapperBase
+{
+ public override partial UserEto Map(IdentityUser source);
+ public override partial void Map(IdentityUser source, UserEto destination);
+}
+
+[Mapper]
+public partial class IdentityClaimTypeToIdentityClaimTypeEtoMapper : MapperBase
+{
+ public override partial IdentityClaimTypeEto Map(IdentityClaimType source);
+ public override partial void Map(IdentityClaimType source, IdentityClaimTypeEto destination);
+}
+
+[Mapper]
+public partial class IdentityRoleToIdentityRoleEtoMapper : MapperBase
+{
+ public override partial IdentityRoleEto Map(IdentityRole source);
+ public override partial void Map(IdentityRole source, IdentityRoleEto destination);
+}
+
+[Mapper]
+public partial class OrganizationUnitToOrganizationUnitEtoMapper : MapperBase
+{
+ public override partial OrganizationUnitEto Map(OrganizationUnit source);
+ public override partial void Map(OrganizationUnit source, OrganizationUnitEto destination);
+}
diff --git a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs b/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs
deleted file mode 100644
index ae9e5b5065..0000000000
--- a/modules/identity/src/Volo.Abp.Identity.Domain/Volo/Abp/Identity/IdentityDomainMappingProfile.cs
+++ /dev/null
@@ -1,15 +0,0 @@
-using AutoMapper;
-using Volo.Abp.Users;
-
-namespace Volo.Abp.Identity;
-
-public class IdentityDomainMappingProfile : Profile
-{
- public IdentityDomainMappingProfile()
- {
- CreateMap();
- CreateMap();
- CreateMap();
- CreateMap();
- }
-}
diff --git a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebAutoMapperProfile.cs b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebAutoMapperProfile.cs
deleted file mode 100644
index e032b3352f..0000000000
--- a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebAutoMapperProfile.cs
+++ /dev/null
@@ -1,57 +0,0 @@
-using AutoMapper;
-using Volo.Abp.AutoMapper;
-using Volo.Abp.Identity.Web.Pages.Identity.Roles;
-using CreateUserModalModel = Volo.Abp.Identity.Web.Pages.Identity.Users.CreateModalModel;
-using EditUserModalModel = Volo.Abp.Identity.Web.Pages.Identity.Users.EditModalModel;
-
-namespace Volo.Abp.Identity.Web;
-
-public class AbpIdentityWebAutoMapperProfile : Profile
-{
- public AbpIdentityWebAutoMapperProfile()
- {
- CreateUserMappings();
- CreateRoleMappings();
- }
-
- protected virtual void CreateUserMappings()
- {
- //List
- CreateMap()
- .Ignore(x => x.Password);
-
- //CreateModal
- CreateMap()
- .MapExtraProperties()
- .ForMember(dest => dest.RoleNames, opt => opt.Ignore());
-
- CreateMap()
- .ForMember(dest => dest.IsAssigned, opt => opt.Ignore());
-
- //EditModal
- CreateMap()
- .MapExtraProperties()
- .ForMember(dest => dest.RoleNames, opt => opt.Ignore());
-
- CreateMap()
- .ForMember(dest => dest.IsAssigned, opt => opt.Ignore());
-
- CreateMap()
- .ForMember(dest => dest.CreatedBy, opt => opt.Ignore())
- .ForMember(dest => dest.ModifiedBy, opt => opt.Ignore());
- }
-
- protected virtual void CreateRoleMappings()
- {
- //List
- CreateMap();
-
- //CreateModal
- CreateMap()
- .MapExtraProperties();
-
- //EditModal
- CreateMap()
- .MapExtraProperties();
- }
-}
diff --git a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebMappers.cs b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebMappers.cs
new file mode 100644
index 0000000000..1877dac1d8
--- /dev/null
+++ b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebMappers.cs
@@ -0,0 +1,94 @@
+using Riok.Mapperly.Abstractions;
+using Volo.Abp.Mapperly;
+using Volo.Abp.Identity.Web.Pages.Identity.Roles;
+using CreateUserModalModel = Volo.Abp.Identity.Web.Pages.Identity.Users.CreateModalModel;
+using EditUserModalModel = Volo.Abp.Identity.Web.Pages.Identity.Users.EditModalModel;
+
+namespace Volo.Abp.Identity.Web;
+
+[Mapper]
+public partial class IdentityUserDtoToEditUserModalModelUserInfoViewModelMapper : MapperBase
+{
+ [MapperIgnoreTarget(nameof(EditUserModalModel.UserInfoViewModel.Password))]
+ public override partial EditUserModalModel.UserInfoViewModel Map(IdentityUserDto source);
+
+ [MapperIgnoreTarget(nameof(EditUserModalModel.UserInfoViewModel.Password))]
+ public override partial void Map(IdentityUserDto source, EditUserModalModel.UserInfoViewModel destination);
+}
+
+[Mapper]
+[MapExtraProperties]
+public partial class CreateUserModalModelUserInfoViewModelToIdentityUserCreateDtoMapper : MapperBase
+{
+ [MapperIgnoreTarget(nameof(IdentityUserCreateDto.RoleNames))]
+ public override partial IdentityUserCreateDto Map(CreateUserModalModel.UserInfoViewModel source);
+
+ [MapperIgnoreTarget(nameof(IdentityUserCreateDto.RoleNames))]
+ public override partial void Map(CreateUserModalModel.UserInfoViewModel source, IdentityUserCreateDto destination);
+}
+
+[Mapper]
+[MapExtraProperties]
+public partial class IdentityRoleDtoToCreateUserModalModelAssignedRoleViewModelMapper : MapperBase
+{
+ [MapperIgnoreTarget(nameof(CreateUserModalModel.AssignedRoleViewModel.IsAssigned))]
+ public override partial CreateUserModalModel.AssignedRoleViewModel Map(IdentityRoleDto source);
+
+ [MapperIgnoreTarget(nameof(CreateUserModalModel.AssignedRoleViewModel.IsAssigned))]
+ public override partial void Map(IdentityRoleDto source, CreateUserModalModel.AssignedRoleViewModel destination);
+}
+
+[Mapper]
+public partial class EditUserModalModelUserInfoViewModelToIdentityUserUpdateDtoMapper : MapperBase
+{
+ [MapperIgnoreTarget(nameof(IdentityUserUpdateDto.RoleNames))]
+ public override partial IdentityUserUpdateDto Map(EditUserModalModel.UserInfoViewModel source);
+
+ [MapperIgnoreTarget(nameof(IdentityUserUpdateDto.RoleNames))]
+ public override partial void Map(EditUserModalModel.UserInfoViewModel source, IdentityUserUpdateDto destination);
+}
+
+[Mapper]
+public partial class IdentityRoleDtoToEditUserModalModelAssignedRoleViewModelMapper : MapperBase
+{
+ [MapperIgnoreTarget(nameof(EditUserModalModel.AssignedRoleViewModel.IsAssigned))]
+ public override partial EditUserModalModel.AssignedRoleViewModel Map(IdentityRoleDto source);
+
+ [MapperIgnoreTarget(nameof(EditUserModalModel.AssignedRoleViewModel.IsAssigned))]
+ public override partial void Map(IdentityRoleDto source, EditUserModalModel.AssignedRoleViewModel destination);
+}
+
+[Mapper]
+public partial class IdentityUserDtoToEditUserModalModelDetailViewModelMapper : MapperBase
+{
+ [MapperIgnoreTarget(nameof(EditUserModalModel.DetailViewModel.CreatedBy))]
+ [MapperIgnoreTarget(nameof(EditUserModalModel.DetailViewModel.ModifiedBy))]
+ public override partial EditUserModalModel.DetailViewModel Map(IdentityUserDto source);
+
+ [MapperIgnoreTarget(nameof(EditUserModalModel.DetailViewModel.CreatedBy))]
+ [MapperIgnoreTarget(nameof(EditUserModalModel.DetailViewModel.ModifiedBy))]
+ public override partial void Map(IdentityUserDto source, EditUserModalModel.DetailViewModel destination);
+}
+
+[Mapper]
+public partial class IdentityRoleDtoToEditModalModelRoleInfoModelMapper : MapperBase
+{
+ public override partial EditModalModel.RoleInfoModel Map(IdentityRoleDto source);
+ public override partial void Map(IdentityRoleDto source, EditModalModel.RoleInfoModel destination);
+}
+
+[Mapper]
+[MapExtraProperties]
+public partial class CreateModalModelRoleInfoModelToIdentityRoleCreateDtoMapper : MapperBase
+{
+ public override partial IdentityRoleCreateDto Map(CreateModalModel.RoleInfoModel source);
+ public override partial void Map(CreateModalModel.RoleInfoModel source, IdentityRoleCreateDto destination);
+}
+
+[Mapper]
+[MapExtraProperties]
+public partial class EditModalModelRoleInfoModelToIdentityRoleUpdateDtoMapper : MapperBase
+{
+ public override partial IdentityRoleUpdateDto Map(EditModalModel.RoleInfoModel source);
+ public override partial void Map(EditModalModel.RoleInfoModel source, IdentityRoleUpdateDto destination);
+}
diff --git a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs
index ae3e8ebc72..6d2faf6467 100644
--- a/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs
+++ b/modules/identity/src/Volo.Abp.Identity.Web/AbpIdentityWebModule.cs
@@ -3,7 +3,7 @@ using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AspNetCore.Mvc.Localization;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.PageToolbars;
-using Volo.Abp.AutoMapper;
+using Volo.Abp.Mapperly;
using Volo.Abp.Http.ProxyScripting.Generators.JQuery;
using Volo.Abp.Identity.Localization;
using Volo.Abp.Identity.Web.Navigation;
@@ -19,7 +19,7 @@ using Volo.Abp.Threading;
namespace Volo.Abp.Identity.Web;
[DependsOn(typeof(AbpIdentityApplicationContractsModule))]
-[DependsOn(typeof(AbpAutoMapperModule))]
+[DependsOn(typeof(AbpMapperlyModule))]
[DependsOn(typeof(AbpPermissionManagementWebModule))]
[DependsOn(typeof(AbpAspNetCoreMvcUiThemeSharedModule))]
public class AbpIdentityWebModule : AbpModule
@@ -51,12 +51,7 @@ public class AbpIdentityWebModule : AbpModule
options.FileSets.AddEmbedded();
});
- context.Services.AddAutoMapperObjectMapper();
-
- Configure(options =>
- {
- options.AddProfile(validate: true);
- });
+ context.Services.AddMapperlyObjectMapper();
Configure(options =>
{
diff --git a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj
index 8a77024b52..54bd5fd28b 100644
--- a/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj
+++ b/modules/identity/src/Volo.Abp.Identity.Web/Volo.Abp.Identity.Web.csproj
@@ -40,7 +40,7 @@
-
+