How is it possible to change the retry count of specific jobs?
With hangfire, this attribute can be used: [AutomaticRetry(Attempts = 0)]. But it doesnt seem to work with ABP. We need different retry attempt counts for each job.
We use iOptions for our settings management throught all application modules (some of which do use the ABP framework).
As ABP provides the ISettingManager, and we want to manage the settings in the UI, we moved all settings to ISettingManager & created UI pages as described in the ABP documentation. Of course we must not have references to the ABP framework in each modules, so for providing the settings we have to stay with iOptions.
Now is there a way to update the iOptions (initialized from appsettings.json) when the ISettingManager is updated? Of course this only applies on restart, as we use iOptions and not iOptionsSnapshot, but we still need to somehow 'merge' these 2.
We saw that the ABP LDAP module does the same (use iOptions combined with ISettingManager), but it seems to have to get the settings values each time when iOptions is read, and not when the settings in ISettingManager change. This is not an option for us.
This is the example similiar to the ABP LDAP application. This does not work, as it has to be called each single time when iOptions is read, and not once when the settings are stored.
Code Snipped:
public class FhirOptionManager : AbpDynamicOptionsManager<FhirOptions>
{
protected ISettingProvider SettingProvider { get; }
public FhirOptionManager(IOptionsFactory<FhirOptions> factory, ISettingProvider settingProvider)
: base(factory)
{
SettingProvider = settingProvider;
}
protected override async Task OverrideOptionsAsync(string name, FhirOptions options)
{
options.Endpoint = await GetSettingOrDefaultValue(MySettings.SettingsFhirEndpoint, options.Endpoint);
}
protected virtual async Task<string> GetSettingOrDefaultValue(string name, string defaultValue)
{
var value = await SettingProvider.GetOrNullAsync(name);
return value.IsNullOrWhiteSpace() ? defaultValue : value;
}
}
Thank you for your time!
When using blazor server, Audit Logs shows "/_blazor" for each HttpRequest property. Altough websockets are used, there should still be proper information in the Auditlog, so we know for which request it is.
Audit logging:
When the paramter is larger than 2000 characters, no parameters are logged.
Is it possible to cut off the parameters at 2000 chars and still log them? The same way 'comments' in audit logs corrently works.
With 4.3.2, we added a Blazor.Server Startup Project to our existing Blazor Project. On Blazor WASM, ABP automatically shows Error Dialogs for exceptions, e.g. for validations or UserFriendlyExceptions.
On Server side blazor no dialog is shown, instead, the whole client freezes. What must be done to get the ABP Error Dialog on Blazor.Server?
How to reproduce:
Thanks you!
There are 2 main issues:
My questions:
In the documentation, there is no information on how to use all our company brand colors with ABP commercial Lapton Theme. https://docs.abp.io/en/abp/latest/UI/Blazor/Branding
What we did:
/* Your Global Styles */
.btn.btn-primary {
color: #fff;
background-color: #1fb787;
border-color: #12b581;
}
.lp-opened-sidebar .lp-sidebar, .lp-closed .lp-sidebar {
background: #1fb787;
background: linear-gradient(7deg, #1fb787, #78c6be);
}
:root {
--primary: #1fb787;
--secondary: #78c6be;
--sidebar-bg: #1fb787;
}
header {
background: #78c6be;
}
Now there are still many small things missing, like focused inputfield color or cancel btn colors,..
Is there somewhere a documentation what needs to be done to change all colors?
Thank you!
Documentation https://docs.abp.io/en/abp/latest/Background-Jobs says that the jobsname can be set via an argument: [BackgroundJobName("emails")]
But in Hangfire, the jobname is then still "HangfireJobExecutionAdapter<EmailArgs>.Execute" instead of "emails".
How can the jobname be set?
Good morning,
I have hangfire job parameters that needs a custom serializer to be serialized.
For newtonsoft, I can add it like this:
var settings = new JsonSerializerSettings {Formatting = Formatting.Indented};
settings.Converters.Add(new LhirModelsJsonConverter());
var serializedData = JsonConvert.SerializeObject(bundle, settings);
How is it possible to define this custom serializer for a specific job, so that it is automatically used for serialization and deserialization of its arguments? I do not want to manually serialize the data before each insert and deserialize on the worker.
I use hangfire with the abp backgroundjob interface:
[BackgroundJobName("lhirInsert")]
public class FhirInsertArgs
{
public LhirData LhirData { get; set; }
}
_backgroundJobManager.EnqueueAsync(new LhirInsertArgs
{
LhirData = serializedData
});
Best regards and thank you for your help, Kevin