I just installed ABP Studio from the Microsoft Store for Windows 11. I created a new solution and gave it a name (only A-Z characters, no numbers, spaces, or special characters) and the solution that was created was called AbpSolution1. I thought I did something wrong so I created another solution and kept checking the step in the create solution wizard where I provided the solution name to ensure it wasn't overwritten and this solution was named AbpSolution2. I gave up, uninstalled ABP Studio, and used the CLI which did not modify my chosen solution name.

MyAppMenuContributor : IMenuContributor
private async Task ConfigureUserMenuAsync(MenuConfigurationContext context)
    {
        var accountStringLocalizer = context.GetLocalizer<AccountResource>();
        var identityServerUrl = _configuration["AuthServer:Authority"] ?? "";
        context.Menu.AddItem(new ApplicationMenuItem(
            "Account.Manage",
            accountStringLocalizer["MyAccount"],
            $"{identityServerUrl.EnsureEndsWith('/')}Account/Manage?returnUrl={_configuration["App:SelfUrl"]}",
            icon: "fa fa-cog",
            order: 1000,
            null).RequireAuthenticated());
        context.Menu.AddItem(new ApplicationMenuItem(
            "Account.SecurityLogs",
            accountStringLocalizer["MySecurityLogs"],
            $"{identityServerUrl.EnsureEndsWith('/')}Account/SecurityLogs?returnUrl={_configuration["App:SelfUrl"]}",
            icon: "fa fa-cog",
            order: 1001,
            null).RequireAuthenticated());
        await Task.CompletedTask;
        
    }
Module.cs
private void ConfigureMenu(ServiceConfigurationContext context)
{
    Configure<AbpNavigationOptions>(options =>
    {
        options.MenuContributors.Add(new MyAppMenuContributor (context.Services.GetConfiguration()));
    });
}
The current licence includes 5 developers. It needs to be reduced to 3. The UI only allows for adding developers rather than reducing the count.
I'd like to navigate to a specific menu with a query parameter and I also like the menu selected(highlighted)
NavigationManager.NavigateTo($"/companies?companyName=apple");// something like this.
this navigates to the companies page and works as I want but the Companies menu is not highlighted(selected).
To make it highlight, I alwasy need to call Navigates twice like below
NavigationManager.NavigateTo($"/companies");//This highlights Companies menu
NavigationManager.NavigateTo($"/companies?companyName=apple");// and I need to call this again.
Above code some times works and some times does not, I think it depends on how heavy loads are in OnInitializedAsync method.
How can I NOT log SQL query syntax?
The log file size is huge and most of the text are from EFCore query.
Hi there,
I'm trying to use CancellationToken for long running task, I cannot make it work in AppService. but it works well on my local api calls.
protected override async Task OnInitializedAsync()
{
    cts.CancelAfter(2000);//To test CancellationToken
    //Below cancellation work well. 
    //forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("https://localhost:44320/WeatherForecast/", cts.Token);
    
    //This does not work.
    var pageResult = await CallsAppService.GetListAsync(new GetCallsInput { }, cts.Token);
    Calls = pageResult.Items;
}
This is my GetListAsync from CallsAppService
public virtual async Task<PagedResultDto<CallDto>> GetListAsync(GetCallsInput input, CancellationToken ct = default)
{
    Thread.Sleep(3000);//On purpose to test CancellationToken
    var totalCount = await _callRepository.GetCountAsync(input.FilterText, input.Number, ct);
    var items = await _callRepository.GetListAsync(input.FilterText, input.Number, input.Sorting, input.MaxResultCount, input.SkipCount, ct);
    return new PagedResultDto<CallDto>
    {
        TotalCount = totalCount,
        Items = ObjectMapper.Map<List<Call>, List<CallDto>>(items)
    };
}
This is my CallController
[HttpGet]
public virtual Task<PagedResultDto<CallDto>> GetListAsync(GetCallsInput input, CancellationToken ct = default)
{
    return _callsAppService.GetListAsync(input, ct);
}
Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
1.Create a model with 15+ properties. e.t.c Customer model with 15 properties.
2. Click New Customer to open Modal window.[The first time, the vertical scroll works well]
3. Close Modal
4. Click New User [or something else that has few properties]
5. Close Modal.
6. Click New Customer again. [This time the vertical scroll bar does not work propelry]

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
<br>
I'd like to enable Ldap login with Blazor template but I cannot find Features menu.

Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
Hi,
I'd like to use a open source [https://github.com/Blazored/Modal] in my project. To use it, I need to use below code.
<CascadingBlazoredModal>
    <Router AppAssembly="typeof(Program).Assembly">
        ...
    </Router>
</CascadingBlazoredModal>
Some open soures need to be added into "Main" page, how can I handle this?
Thanks.
Check the docs before asking a question: https://docs.abp.io/en/commercial/latest/ Check the samples, to see the basic tasks: https://docs.abp.io/en/commercial/latest/samples/index The exact solution to your question may have been answered before, please use the search on the homepage.
I'd like to use app services that requires permission on Console application. The console application does not know of web host existing. How can I sign in or get pass the permission check?
var user = await _userManager.FindByNameAsync("admin");
var newPrincipal = new ClaimsPrincipal(
    new ClaimsIdentity(
        new[]
        {
            new(AbpClaimTypes.UserId, user.Id.ToString()),
            new Claim(AbpClaimTypes.UserName, user.UserName)
        }
    ));
using (_currentPrincipalAccessor.Change(newPrincipal))
{
    // Below method requires authentication and authorization.
    var lastRunTimeCoreSetting = await _coreSettingAppService.GetByNameAsync("LastRunTime");
}
<br> I'm using AddAlwaysAllowAuthorization for testing now, but this is not ideal for production.
 
                                