hi BernardoTeixeira
Please refer to the module template document.
https://docs.abp.io/en/commercial/latest/startup-templates/module/creating-a-new-solution https://docs.abp.io/en/commercial/latest/startup-templates/module/solution-structure
hi raif
EfCoreRepository does not know the include() info by default.
You need to specify it manually.
Please refer to the implementation of the Identity module: https://github.com/abpframework/abp/blob/dev/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityRoleRepository.cs#L86 https://github.com/abpframework/abp/blob/dev/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityEfCoreQueryableExtensions.cs#L8
These components are not commonly used, and there is no documentation yet.
Not yet.
The class tenant does not have Navigation property: public virtual Edition Edition { get; set; } So this is the limitation for the different commercial level? Thanks but default could get edition navigation property
An aggregate root can be referenced by it's Id. Do not reference it by it's navigation property.
https://docs.abp.io/en/abp/latest/Entities#aggregateroot-class
You can continue to find the Edition entity after finding the Tenant entity.
But commercial do not have phone registration. Right? So we have to implement by ourself. Right?
Yes, Phone number in some countries may not be unique.
hi
Did you override the WithDetailsAsync
and WithDetails
methods?
https://github.com/abpframework/abp/blob/dev/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/EfCoreIdentityRoleRepository.cs#L86
https://github.com/abpframework/abp/blob/dev/modules/identity/src/Volo.Abp.Identity.EntityFrameworkCore/Volo/Abp/Identity/EntityFrameworkCore/IdentityEfCoreQueryableExtensions.cs#L8
https://docs.abp.io/en/abp/latest/Best-Practices/Entity-Framework-Core-Integration#repository-implementation https://docs.abp.io/en/abp/4.2/Entity-Framework-Core#loading-related-entities
hi
You can inject the ICurrentPrincipalAccessor
service. then check its claims. PrincipalAccessor.Principal?.FindEditionId()
If there is no EditionId
claims, you shuold CurrentPrincipalAccessor.Change
to set is as tenant's EditionId
.
using (CurrentPrincipalAccessor.Change(new Claim(AbpClaimTypes.EditionId, currentTenant.EditionId)))
{
}
hi RonaldR
You should use abp.ajax in javascript, it automatically adds anti forgery token to the HTTP header to satisfy CSRF protection validation on the server side.
https://docs.abp.io/en/abp/latest/UI/AspNetCore/JavaScript-API/Ajax