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 dd23b42528..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,7 +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 @@
-
+