Activities of "marketbus"

Answer

So are you saying don't use Angular for this? and just override what's in Themes/LeptonX/Layouts/Account in the MVC project?

Or are you saying that I would have to use the resource owner password flow if I want to do it in Angular?

Question

I would like to replace the login and register page in MVC using Angular. I was just wondering if there is any guidance or documents in regards to this.

I did see this page, but it recommends using the resource owner password flow, which I would prefer not to. https://docs.abp.io/en/abp/latest/UI/Angular/Account-Module

And as mentioned, I would like to override these pages with my own designs.

Thank you

That seemed to be the issue. Even though the appsettings.secret.json file was loaded, which I confirmed, the key was not being loaded. Copying the license key to appsettings.json works. The issue with isolated function apps is that many errors that are not in-code, are swallowed, and the above generic message is displayed. It's an issue that's been reported many times already. https://github.com/Azure/azure-functions-dotnet-worker/issues/532#issuecomment-1384065083

I might either create a gist or simple guide for this. I lost almost a week trying to get this to work :)

The example you gave is for in-process worker functions. But I did update the code as follows, I am still getting an error on some modules, but the below works and I am able to inject IIdentityUserRepository and query it.

[Program.cs]

using Autofac;
using Autofac.Extensions.DependencyInjection;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Volo.Abp;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Identity;
using Volo.Abp.Threading;
using Sample.SecondProcessor;

var host = new HostBuilder()
    .UseServiceProviderFactory(new AutofacServiceProviderFactory())
    .AddAppSettingsSecretsJson()
    .UseAutofac()
    .ConfigureContainer<ContainerBuilder>(builder =>
    {
    })
    .ConfigureAppConfiguration((hostContext, config) =>
    {
        config.AddJsonFile("appsettings.json", optional: false);
    })
    .ConfigureServices(services =>
    {
        services.AddSingleton<ICancellationTokenProvider>(NullCancellationTokenProvider.Instance);
        services.AddSingleton<IAbpLazyServiceProvider,AbpLazyServiceProvider>();
        
        services.AddApplication<AzureFunctionProcessorModule>(x =>
        {
            x.UseAutofac();
        });        
        
        var serviceProvider = services.BuildServiceProvider();
        
        serviceProvider.GetRequiredService<IAbpApplicationWithExternalServiceProvider>().Initialize(serviceProvider);
    })
    .ConfigureFunctionsWorkerDefaults()
    .Build();

host.Run();


[SampleModule.cs]

using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;
using Volo.Abp.Autofac;
using Volo.Abp.BackgroundJobs;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Domain;
using Volo.Abp.Identity;
using Volo.Abp.Identity.MongoDB;
using Volo.Abp.Modularity;
using Volo.Abp.OpenIddict.Tokens;
using Volo.Abp.Threading;
using Volo.Abp.Uow;
using Sample.MongoDB;

namespace Sample.SecondProcessor;

[DependsOn(
    typeof(AbpIdentityDomainModule),
    typeof(AbpAutofacModule),
    typeof(AbpIdentityMongoDbModule),
    typeof(SampleApplicationContractsModule),
    //typeof(SampleMongoDbModule)
)]

public class AzureFunctionProcessorModule : AbpModule
{
    public override void PreConfigureServices(ServiceConfigurationContext context)
    {
    }

    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        context.Services.AddTransient<IIdentityUserRepository, MongoIdentityUserRepository>();
        
        Configure<AbpUnitOfWorkDefaultOptions>(options =>
        {
            options.TransactionBehavior = UnitOfWorkTransactionBehavior.Disabled;
        });
        
        Configure<AbpBackgroundJobOptions>(options =>
        {
            options.IsJobExecutionEnabled = false;
        });
        
        Configure<TokenCleanupOptions>(options =>
        {
            options.IsCleanupEnabled = false;
        });
    }
    
    public override void OnApplicationInitialization(ApplicationInitializationContext context)
    {
    }
}

If I uncomment SampleMongoDbModule, it fails and I get the generic :

[2023-05-02T17:58:14.180Z] Language Worker Process exited. Pid=30853. [2023-05-02T17:58:14.180Z] dotnet exited with code 214 (0xD6). . [2023-05-02T17:58:14.277Z] Failed to start a new language worker for runtime: dotnet-isolated. [2023-05-02T17:58:14.277Z] System.Private.CoreLib: A task was canceled.

Otherwise it works. Also, most of the Pro modules fail with the same error. I thought it might be a license key issue? So I added .AddAppSettingsSecretsJson() and copied my key over. However, it still fails. Also note, that I had to set both IsJobExecutionEnabled and IsCleanupEnabled to false or else it would throw an exception as in the screenshot in my previous comment.

I believe this will work in In-process mode, but I don't want to have to downgrade my projects to NET 6.0.

Do you mind being a bit more specific? Where exactly are you referring to?

For example, the below produces the same error.

using Volo.Abp;
using Volo.Abp.Autofac;
using Volo.Abp.Identity;
using Volo.Abp.Modularity;
using WholesaleFriendly.MongoDB;

namespace WholesaleFriendly.Processor;

[DependsOn(typeof(WholesaleFriendlyMongoDbModule))]
[DependsOn(typeof(AbpIdentityApplicationModule))]
[DependsOn(typeof(AbpAutofacModule))]
public class AzureFunctionProcessorModule : AbpModule
{
    public override void PreConfigureServices(ServiceConfigurationContext context)
    {
    }

    public override void ConfigureServices(ServiceConfigurationContext context)
    {
    }
    
    public override void OnApplicationInitialization(ApplicationInitializationContext context)
    {
    }
}

I updated the code based upon the links that you've send. I am getting the error as below. I am trying to lookup a user, in the Azure Activity Function I have the following:

public CreateTestFunction(IIdentityUserRepository identityUserRepository, IProductRepository productRepository)
{
    _identityUserRepository = identityUserRepository;
    _productRepository = productRepository;
}

Exception:

Volo.Abp. AbpInitializationException Create breakpoint: An error occurred during the initialize Volo. Abp. Modularity. OnApplicationInitializationModuleLifecycleContributor phase of the module sVolo.Abp. BackgroundJobs. AbpBackgroundJobsModule, Volo. Abp.BackgroundJobs, Version=7.0.1.0, 2 Culture=neutral, PublicKeyToken=null: Object reference not set to an instance of an object.. See, § the inner exception for details. ---> System. NullReferenceException Create breakpoint : Object reference not set to an instance of an object. at Volo. Abp. BackgroundWorkers. BackgroundWorkerBase. get_Logger at Volo.Abp. BackgroundWorkers. BackgroundWorkerBase. StartAsync(CancellationToken cancellationToken)

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Volo.Abp;
using Volo.Abp.Threading;
using Sample.Processor;
using Sample.Processor.Options;

var hostBuilder = new HostBuilder()
    .ConfigureFunctionsWorkerDefaults()
    .ConfigureAppConfiguration((hostContext, config) =>
    {
        config.AddJsonFile("appsettings.json", optional: false);
    })
    .ConfigureServices(async (hostBuilderContext, services) =>
    {
        services.AddOptions();

        await services.AddApplicationAsync<AzureFunctionProcessorModule>(x =>
        {
            x.Services.ReplaceConfiguration(hostBuilderContext.Configuration);
        });
        
        services.Configure<ProcessorOptions>(hostBuilderContext.Configuration.GetSection(nameof(ProcessorOptions)));

        services.AddLogging();
    });

var host = hostBuilder.Build();

var application = host.Services.GetRequiredService<IAbpApplicationWithExternalServiceProvider>();
var applicationLifetime = host.Services.GetRequiredService<IHostApplicationLifetime>();

applicationLifetime.ApplicationStopping.Register(() =>
{
    AsyncHelper.RunSync(() => application.ShutdownAsync());
});

applicationLifetime.ApplicationStopped.Register(() =>
{
    application.Dispose();
});

await application.InitializeAsync(host.Services);

host.Run();

using Microsoft.Extensions.DependencyInjection;
using Volo.Abp;
using Volo.Abp.Autofac;
using Volo.Abp.Identity;
using Volo.Abp.Identity.MongoDB;
using Volo.Abp.Modularity;
using Sample.MongoDB;

namespace Sample.Processor;

[DependsOn(typeof(WholesaleFriendlyMongoDbModule))]
[DependsOn(typeof(AbpIdentityApplicationModule))]
[DependsOn(typeof(AbpAutofacModule))]
public class AzureFunctionProcessorModule : AbpModule
{
    public override void PreConfigureServices(ServiceConfigurationContext context)
    {
    }

    public override void ConfigureServices(ServiceConfigurationContext context)
    {
        context.Services.AddTransient<IIdentityUserRepository, MongoIdentityUserRepository>();
    }
    
    public override void OnApplicationInitialization(ApplicationInitializationContext context)
    {
    }
}

Also, which nugets should I include in this project?

Are there any guidelines for integrating ABP with an Azure Durable Function? I am trying to call my Application Services and Repositories.

This is my Program.cs

var host = new HostBuilder()
.ConfigureFunctionsWorkerDefaults(x => x.UseMiddleware(), options => {})
.ConfigureAppConfiguration((hostContext, config) =>
{
   config.AddJsonFile("appsettings.json", optional: false);
})
.ConfigureServices((hostBuilderContext, services) =>
{
   services.AddOptions();
   services.AddApplicationAsync(x =>
   {
       x.Services.ReplaceConfiguration(hostBuilderContext.Configuration);
   });

    services.Configure<ProcessorOptions>(hostBuilderContext.Configuration.GetSection(nameof(ProcessorOptions)));
    var processorOptions = hostBuilderContext.Configuration.Get<ProcessorOptions>();

    services.AddLogging();
})
.Build();

host.Run();

I am getting a lot of exceptions with trying to access any of my Repositories.

Question

If you're creating a bug/problem report, please include followings:

  • ABP Framework version: v7.0.1
  • UI type: Blazor
  • DB provider: MongoDB
  • Tiered (MVC) or Identity Server Separated (Angular): no

Would it be possible to use both menus, the top and side menu at the same time?

As part of my application, I have different tools, which I would like to reside on the top menu. When the user clicks on a tool, I would like the side menu to change to reflect the valid options for that tool. I believe this is possible with the Blasorise Bar component.

Thanks.

Let me clarify my last question. I would like to query on the extra property. So for example, if I wanted to query on where fullname = "Tom" or stripeId = "123".

Showing 1 to 10 of 35 entries
Made with ❤️ on ABP v9.1.0-preview. Updated on December 26, 2024, 06:07