Activities of "enisn"

You can't call a service out of a Configure method, because DI Container hasn't be built yet.

In the .AddTransient method, I'm sure it works. When you inject a HttpClient, that method will be executed and create a HttpClient to inject to your required class. If you want to debug, put a breakpoint inside .AddTransient() method, and create a request to an method of appservice which injects HttpClient

Documentation of Background Jobs says:

"Background jobs are persistent that means they will be re-tried and executed later even if your application crashes."

...

  • Retries job execution until the job successfully runs or timeouts. Default timeout is 2 days for a job. Logs all exceptions.
  • Increasingly waits between retries for a job. It waits 1 minute for the first retry, 2 minutes for the second retry, 4 minutes for the third retry and so on.

Background Jobs are designed to execute that job if whatever happens.

Short answer is No. You can't set different retry count for each job with DefaultBackgroundJobManager. If you want a custom implementation, you can replace DefaultBackgroundJobManager with your CustomBackgroundJobManager. So it's open-source: https://github.com/abpframework/abp/blob/dev/framework/src/Volo.Abp.BackgroundJobs/Volo/Abp/BackgroundJobs/DefaultBackgroundJobManager.cs


You can create your own background service like that:

[Dependency(ReplaceServices = true)]
public class CustomBackgroundJobManager : DefaultBackgroundJobManager
{
    public CustomBackgroundJobManager(IClock clock, IBackgroundJobSerializer serializer, IBackgroundJobStore store, IGuidGenerator guidGenerator) : base(clock, serializer, store, guidGenerator)
    {
    }

    protected override Task<Guid> EnqueueAsync(string jobName, object args, BackgroundJobPriority priority = BackgroundJobPriority.Normal, TimeSpan? delay = null)
    {
        // Custom implementation
        throw new NotImplementedException();
    }
}

Will abp suite support file uploads fields in generated field (blob fields) ?

No. ABP Suite won't have that feature in v5.0

I can't recommend an exact bundler. You have to chosse one according to your project requirements.

Again, I can not recommend one of them directly but you may want to browse https://dev.to/underscorecode/javascript-bundlers-an-in-depth-comparative-is-webpack-still-the-best-bundler-in-2021-59jk

Hi Enisn, Thanks for the feedback on this. I will try this, but I thought it was bad practice to spool up new httpclients everytime it was needed and instead we should use httpclientfactory? Can I share what I have done so far for this point and get your feedback?

P.S before opening the question I tried for some hours and couldnt get any service back in configure service, always receive the exception

System.ArgumentNullException: 'Value cannot be null. (Parameter 'provider')'

Can you share more code? I can't understand from this line why your ServiceProvider is null

Hi @cxp920

Dynamic Proxy convention is camelCase. Can you try camilatest.books.book.getList({}) instead of camilatest.Books.book.getList({})?

Hi @ChetanKumbhar

You can configure IdentityServer4 for this.

You can use RefreshTokenExpiration parameter to do that operation.

Following section might help: http://docs.identityserver.io/en/latest/topics/refresh_tokens.html?highlight=expire#additional-client-settings

When you created a module with abp cli (abp new AwesomeModule -t module --preview) you'll see a host folder. You can debug projects under host folder. Those projects reference to your module projects.

Firstly Global-Features and Features aren't same thing.

Basically:

  • Features allows to manage features at runtime.
  • But Global-Featuers allows to manage features at development-time. It doesn't allow change features at runtime.

According to this information, If you want to change features at runtime, you have to implement Feature. You should use [RequiresFeature("FeatureName")] attribute over classes or methods. If that feature is not enabled, that method, or entire class won't work.

About DataSeeders, you can inject IFeatureChecker service to your DataSeederContributor and call IsEnabledAsync() method, check if feature is enabled and then do rest of operation.


Also you can use AsyncHelper to execute async actions in ConfigureServices:

var baseAddress = AsyncHelper.RunSync(() => settingManager.GetOrNullForCurrentTenantAsync("BaseAddress"));
httpClient.BaseAddress = new Uri(baseAddress);
Showing 321 to 330 of 381 entries
Made with ❤️ on ABP v9.2.0-preview. Updated on January 14, 2025, 14:54