Activities of "raif"

thx

hi thx for response is there any specific reason about set that definition at startup ? How about set it at modules ?

Do you have small example regarding usage of multitenancy with database provider in your hand ?

edit package.json, replace existing lepton theme with "@volo/abp.aspnetcore.mvc.ui.theme.commercial": "~4.2.1"

Why do you do this?
they dependencies is different, which will cause the problems you mentioned above.

https://www.npmjs.com/package/@volo/abp.aspnetcore.mvc.ui.theme.lepton https://www.npmjs.com/package/@volo/abp.aspnetcore.mvc.ui.theme.commercial

Why i have to use @volo/abp.aspnetcore.mvc.ui.theme.lepton Is it like mandatory ? even if i don't use lepton theme should we get it ?

Infact I'm not instrested any client side package. I just created my theme based on shared and commercial packages. I'm just trying to fulfill shared and commercial package requirements.

Steps to reproduce the issue:

  • clear existing node_modules folder
  • clear wwwroot folder (removed only libs)
  • edit package.json, replace existing lepton theme with "@volo/abp.aspnetcore.mvc.ui.theme.commercial": "~4.2.1"
  • npm install
  • run gulp to move files from node_modules to wwwroot

Good job about those Auto Api Controller and documentation https://docs.abp.io/en/abp/latest/API/Auto-API-Controllers cheers

However my IQ level is not high enough to get it first glance

Thx for the response. Please consider my comment as feedback. Volo.Saas.Host Tenant app service has create method which includes user data seeding operation.

public virtual async Task<SaasTenantDto> CreateAsync(SaasTenantCreateDto input)
{
	var tenant = await TenantManager.CreateAsync(input.Name, input.EditionId);
	input.MapExtraPropertiesTo(tenant);
	await TenantRepository.InsertAsync(tenant);

	await CurrentUnitOfWork.SaveChangesAsync();

	using (CurrentTenant.Change(tenant.Id, tenant.Name))
	{
		//TODO: Handle database creation?

		await DataSeeder.SeedAsync(
			new DataSeedContext(tenant.Id)
				.WithProperty("AdminEmail", input.AdminEmailAddress)
				.WithProperty("AdminPassword", input.AdminPassword)
		);
	}

	return ObjectMapper.Map<Tenant, SaasTenantDto>(tenant);
}

And it automatically assumes that all tenants use a shared database which is not the %100 cases. In my case i would like assign seperate database for each tenant and method seeds users to the host AbpUsers table.

Beside that DTO has no property about connection string apart from admin email and password which is also not cool

I think it would be better if you leave the workflow of the database seed operation to the developers.But ofc it may depend logical reason which is not able to understand yet. It just feedback

Another question is I am sure that I have removed the TENANTAPPSERVICE and TENANTCONTROLLER from registered service.

Why swagger still listing volo.saas.host.tenant endpoints ? I also don't use ConventionalControllers.Create method in my HttpApiHostModule. Any hint ?

Is there any posibility that we can add attribute which prevents serialization of property ? How can i remove attribute from property ?

public static class NMMApplicationContractsExtensionConfigurator
{
    private static readonly OneTimeRunner OneTimeRunner = new OneTimeRunner();

    public static void Configure()
    {
        OneTimeRunner.Run(() =>
        {
            ConfigureProperties();
        });
    }
    
    private static void ConfigureProperties()
    {
        ObjectExtensionManager.Instance.AddOrUpdateProperty<SaasTenantCreateDto, string>("AdminEmailAddress",
             options =>
             {
                 options.Attributes.Add(new System.Text.Json.Serialization.JsonIgnoreAttribute());
                 options.Attributes.Remove(new StringLengthAttribute(256));
                 options.Attributes.Add(new StringLengthAttribute(3)
                 {
                     MinimumLength = 1
                 }
             );
        });
     }
}

Definition done at PreConfigure step

public override void PreConfigureServices(ServiceConfigurationContext context)
{
    NMMApplicationContractsExtensionConfigurator.Configure();
} 

However, still able to pass validation, that means i couldn't change DTO properties

Thx, Missed one of the underscore,

HeaderTenantResolveContributor: Tries to find current tenant id from HTTP headers. The header name is __tenant by default.

Showing 21 to 28 of 28 entries
Made with ❤️ on ABP v9.2.0-preview. Updated on January 14, 2025, 14:54