ABP Commercial 7.0.1 / Blazor Server / EF / Non tiered / Seperated Host and Tenant DBs
Hi, as per the answer to... https://support.abp.io/QA/Questions/4703/Question-on-separate-databases-per-tenant
...we are attempting to override MultiTenantConnectionStringResolver
The problem is that the ResolveAsync
method never gets hit in our overriden/replaced implementation when we set a brake point. Either we are not overriding/replacing the correct Abp class or there is a problem with the way we are attempting to override the resolver.
Our override/replace is defined as follows:
using Volo.Abp.MultiTenancy;
namespace FM.nVision.Saas;
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(MultiTenantConnectionStringResolver))]
public class MyMultiTenantConnectionStringResolver : MultiTenantConnectionStringResolver
{
private readonly ICurrentTenant _currentTenant;
public MyMultiTenantConnectionStringResolver(
IOptionsMonitor<AbpDbConnectionOptions> options,
ICurrentTenant currentTenant,
IServiceProvider serviceProvider)
: base(options, currentTenant, serviceProvider)
{
_currentTenant = currentTenant;
}
public override async Task<string> ResolveAsync(string connectionStringName = null)
{
return await base.ResolveAsync(connectionStringName);
}
}
We are attempting to decrypt the connection string from the database when the framework is reading it.
Please advise and thanks in advance...
Also, LeptonErrorViewComponent's Invoke method is not overridable (virual) so the component cannot be replaced.
We are looking to change only the html on the error page. So we followed the instructions here: https://docs.abp.io/en/abp/latest/UI/AspNetCore/Customization-User-Interface#overriding-a-razor-page-cshtml
In following those instructions, we created a modified Default.cshtml under the same folder structure in our project as defined in Abp (see below). The problem is though that we don't see our changes and the Abp error page still shows. Any ideas?
ABP Commercial 7.0.1 / Blazor Server / EF / Non tiered / Seperated Host and Tenant DBs
Hi, we have a requirement to dynamically change the branding logo on the upper left of the screen when logged in (2 different possible logos).
We understand that we can override the DefaultBrandingProvider to specify a LogoUrl and LogoReverseUrl dynamically.
The problem we are having though is how to specify different sizing depending on which logo we show.
For example, the following works for one logo... but a different height and top value needs to be defined for the other logo.
.navbar-brand {
height: 15px;
top: 26px;
}```
Thanks for confirming the fix in the next version. The workaround for now works as expected.
Hi @maliming,
We are using Lepton.
ABP Commercial 7.0.1 / Blazor Server / EF / Non tiered / Seperated Host and Tenant DBs
When clicking the "Manage Host Features" button, the vertical tabs for each management area is unintentinally on top of the "Feature Management" dialog.
This was reproduced with a newly templated blazor server solution.
ABP Commercial 7.0.1 / Blazor Server / EF / Non tiered / Seperated Host and Tenant DBs
We have a requirement for every tenant to have its own separate database were we cannot use SQL server's integrated security in each tenant's connection string. Therefore, a user name and password needs to be specified in each tenant connection string defined in the SaasTenantConnectionStrings table on the host DB.
Because of this, we have a requirement to encrypt the connection string in the SaasTenantConnectionStrings table.
What is the recommended approach to allow for the connection string to be encrypted when adding/saving a tenant. Additionally what would need to be overridden/replaced in order for the framework to be able to decrypt the connection string when working with a tenant?
Thanks in advance!
Hi @maliming,
You can reproduce 3 sorting issues using the https://github.com/balessi75/FM.Test project.
No property or field 'RoleNames' exists in type 'IdentityUser' (at index 24)
UserManagementTableColumns
.AddRange(new TableColumn[]
{
...
new TableColumn {
Title = L["Roles"],
Data = nameof(IdentityUserDto.RoleNames),
ValueConverter = (data) =>
{
var roleNames = (data as IdentityUserDto)?.RoleNames;
return roleNames == null ? string.Empty : string.Join(", ", roleNames);
},
Sortable = true
}
...
Is sorting with paged result sets supported with this kind of calculated column?