Activities of "smansuri"

We are implementing a periodic background worker to send daily tasks reminders to users via email. Here, in the worker class we are looping the tasks every 1 hour, which is mentioned inside the constructor of the worker class. Right now since we have mentioned Timer.Period = 3600000; inside the constructor, the worker will be executed every 1 hour for all the tenants. But what we want is that we should be able to set different looping time for different tenants, the value for which would be fetched from the database table.

Currently we have

public class TasksReminderAlertNotificationWorker : AsyncPeriodicBackgroundWorkerBase
{

    public TasksReminderAlertNotificationWorker(
        AbpAsyncTimer timer,
        IServiceScopeFactory serviceScopeFactory)
        : base(timer, serviceScopeFactory)
    {
        Timer.Period = 3600000;
    }
}

Here, as the value of Timer.Period is set as 3600000 milliseconds, the worker will be executed every 1 hour. What we want to achieve is that different tenants should be able to have different value for this Time.Period value (2 hours, 3 hours etc.)

How can we achieve this?

Also, since this worker will be executed every specific time period, it will unnecessarily be executed every hour because we want to run only 1 time in a day and we want to do it at a specific time of the day (for example 10 AM or 5 PM).

Is there a way to achieve that? Instead of looping the worker for the whole day and check for the current time and then based on the condition it will be executed, it should be executed at the exact mentioned time. Please elaborate.

Here's the current piece of code we have implemented.

public class TasksReminderAlertNotificationWorker : AsyncPeriodicBackgroundWorkerBase
{
    private TimeSpan TargetTime;
    protected IConfiguration Configuration;

    public TasksReminderAlertNotificationWorker(
        AbpAsyncTimer timer,
        IServiceScopeFactory serviceScopeFactory,
        IConfiguration configuration)
        : base(timer, serviceScopeFactory)
    {
        Configuration = configuration;
        Timer.Period = Configuration
                      .GetSection("TasksReminderAlertNotificationWorker")
                      .GetValue<int>("Default");
    }

    protected override async Task DoWorkAsync(PeriodicBackgroundWorkerContext workerContext)
    {
        var now = DateTime.UtcNow;

        var sharedRepository = workerContext.ServiceProvider
            .GetRequiredService<ISharedRepository>();

        var items = await sharedRepository.GetOrgTasksALertNotificationTeemplate();

        foreach (var item in items)
        {
            double time = 0;

            if (item.ExecutionTime.HasValue)
            {
                time = item.ExecutionTime.Value;
            }

            TimeSpan localTimeOfDay = TimeSpan.FromMilliseconds(time);
            DateTime localDateTime = DateTime.Today.Add(localTimeOfDay);
            DateTime utcDateTime = TimeZoneInfo.ConvertTimeToUtc(localDateTime);
            TargetTime = utcDateTime.TimeOfDay;

            if (now.TimeOfDay >= TargetTime && (item.LastRunOn == null || item.LastRunOn.Value.Date != now.Date))
            {
                var workersAppService = workerContext.ServiceProvider
                    .GetRequiredService<IWorkersAppService>();

                if (item.TenantId.HasValue)
                {
                    await workersAppService.SendTasksNotification(item.TenantId.Value, TargetTime);
                    await sharedRepository.UpdateLastRunOnDateTime(item.Id, now);
                }
            }
        }

        await Task.CompletedTask;
    }
}
Question
  • ABP Framework version: v8.2.1
  • UI Type: Angular / MVC
  • Database System: EF Core (MySQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): Auth Server Separated
  • Exception message and full stack trace:
  • Steps to reproduce the issue: migrate to .net framework 9

What are database changes introduced in each release? How do we track it if we want to have database first approach for my application?

🧐 Hint: If you are using the ABP Studio, you can see all the information about your solution from the configuration window, which opens when you right-click on the [solution](https://abp.io/docs/latest/studio/solcreating angular projectution-explorer#solution) and click on the Solution Configuration button.

  • ABP Framework version: v8.2.2
  • UI Type: Angular
  • Database System: EF Core (MySQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): Auth Server Separated (for Angular)
  • Exception message and full stack trace: ./node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-color.mjs:1:0-65 - Error: Module not found: Error: Can't resolve '@ctrl/tinycolor' in 'D:\G1_Development\G1.health\apps\angular\node_modules\ng-zorro-antd\fesm2022'

./node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-config.mjs:5:0-44 - Error: Module not found: Error: Can't resolve '@ctrl/tinycolor' in 'D:\G1_Development\G1.health\apps\angular\node_modules\ng-zorro-antd\fesm2022'

  • Steps to reproduce the issue: Add a new micro service to the solution using cli command "abp new OrderService -t microservice-service-pro --ui angular". It did not add angular library project. When try to add angular project manually as mentioned here, inthe ticket "https://abp.io/support/questions/6664/Issue-with-Creating-Angular-UI-for-New-Microservice-in-Abp-Microservice-Service-Pro-Template-with-ABP-Suite", through the cli using command : npx ng generate @abp/ng.schematics:create-lib --package-name payment-service --is-secondary-entrypoint false --is-module-template true --override true angular library project created. after reinstalling the npm packges getting the below error on ng serve: "./node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-color.mjs:1:0-65 - Error: Module not found: Error: Can't resolve '@ctrl/tinycolor' in 'D:\G1_Development\G1.health\apps\angular\node_modules\ng-zorro-antd\fesm2022'

./node_modules/ng-zorro-antd/fesm2022/ng-zorro-antd-core-config.mjs:5:0-44 - Error: Module not found: Error: Can't resolve '@ctrl/tinycolor' in 'D:\G1_Development\G1.health\apps\angular\node_modules\ng-zorro-antd\fesm2022' " After cloning the repo again and reinstalling the packages without adding angular project mannualy ng serve works fine.

  • ABP Framework version: v8.2.1
  • UI Type: Angular
  • Database System: EF Core (MySQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): Auth Server Separated (for Angular)
  • Exception message and full stack trace: not getting option to add micro service
  • Steps to reproduce the issue: open abp studio open existing solution right click on the services folder. not getting add module/micro services option under the menu

while clicking on add existing solution getting below error.

Cli getting below error ; File already exists: D:\G1_Health\G1.health.gitignore Volo.Abp.Studio.AbpStudioException: Exception of type 'Volo.Abp.Studio.AbpStudioException' was thrown. at async Task Volo.Abp.Studio.SolutionTemplates.Pipelines.FileEntryListWriteToOutputFolderStep.ExecuteAsync( SolutionBuildPipelineContext context) at async Task Volo.Abp.Studio.SolutionTemplates.Pipelines.PipelinedTemplateSolutionBuilderBase.vgYjx4fcXZ( List<SolutionBuildPipelineStep> , object ) at async Task<string> Volo.Abp.Studio.SolutionTemplates.Pipelines.PipelinedTemplateSolutionBuilderBase.BuildAsync( SolutionBuilderContext context) at async Task<string> Volo.Abp.Studio.SolutionTemplates.SolutionBuilder.BuildAsync(SolutionBuilderContext context) at async Task Volo.Abp.Studio.Cli.Commands.NewSolutionCommand.ExecuteAsync(CommandLineArgs commandLineArgs) at async Task Volo.Abp.Studio.Cli.StudioCliService.RunInternalAsync(CommandLineArgs commandLineArgs) at async Task Volo.Abp.Studio.Cli.StudioCliService.RunAsync(string[] args)

  • ABP Framework version: v8.2.X
  • UI Type: Angular
  • Database System: EF Core (SQL Server, Oracle, MySQL, PostgreSQL, etc..) / MongoDB
  • Tiered (for MVC) or Auth Server Separated (for Angular): Auth Server Separated (for Angular)
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

Download the ABP studio version 0.9.22 and create a solution with microservice template and react native. The downloaded folder structure has mobile UI as react native with js files. see the screenshot below.

However the layered application template is downloaded correctly with tsx files.

  • ABP Framework version: v8.2.1
  • UI Type: Angular / MVC
  • Database System: EF Core (MySQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): Auth Server Separated (for Angular)
  • Exception message and full stack trace:
  • Steps to reproduce the issue:
  • We are trying to store user info like which user has access to which all branches and each branch has what roles, ex: Branches : [{"Id":123, "Roles:['admin','user']},{"Id":113, "Roles:['subadmin','user']}] as object globally for filter purpose. Could you please suggest best way to integrate this in abp framework. storing this in access token looks incorrect as the information can have more arrays. We need to apply this filter with each db query like imultitenant filter. Filter is im clear how to implement.
  • ABP Framework version: 8.2.1
  • UI Type: Angular
  • Database System: EF Core ( MySQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): Auth Server Separated (for Angular)
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

using permission checker how do i use IsGrantedAsyn function to pass permission name and role to check if permission exists or not in the specified role?

Check the docs before asking a question: https://abp.io/docs/latest Check the samples to see the basic tasks: https://abp.io/docs/latest/samples The exact solution to your question may have been answered before, and please first use the search on the homepage. Provide us with the following info: 🧐 Hint: If you are using the ABP Studio, you can see all the information about your solution from the configuration window, which opens when you right-click on the solution and click on the Solution Configuration button.

  • ABP Framework version: v8.2.0
  • UI Type: Angular /
  • Database System: EF Core (MySQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): Auth server separated
  • Exception message and full stack trace:
  • 2024-11-25T15:21:29.5962270Z #53 10.12 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:21:40.9428738Z #53 21.47 /src/shared/G1.health.Shared.Localization/G1.health.Shared.Localization.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:21:47.4367070Z #53 27.97 /src/shared/G1.health.Shared.Localization/G1.health.Shared.Localization.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:21:53.5493931Z #53 33.93 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:21:59.5278354Z #53 39.90 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:22:05.3842075Z #53 45.91 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:22:10.8929260Z #53 51.42 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:22:16.7914035Z #53 57.17 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:22:22.4997820Z #53 63.03 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:22:28.4573487Z #53 68.83 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:22:34.0912815Z #53 74.62 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:22:39.7400729Z #53 80.27 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:22:45.5016942Z #53 86.03 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:22:51.2074438Z #53 91.74 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:22:56.8441812Z #53 97.37 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:23:02.5904866Z #53 103.1 /src/shared/G1.health.Shared.Localization/G1.health.Shared.Localization.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:23:02.5906803Z #53 103.1 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:23:08.2975546Z #53 108.8 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln] 2024-11-25T15:23:14.3339258Z #53 114.7 /src/services/product/src/G1.health.ProductService.HttpApi.Host/G1.health.ProductService.HttpApi.Host.csproj : error NU1301: Unable to load the service index for source https://nuget.abp.io/38b072fc-680c-446c-9cde-4ccba860d8b8/v3/index.json. [/src/G1.health.sln]
  • Steps to reproduce the issue: ran existing yaml pipeline to deploy the product service on a linux cloud machine. the pipelines are in used since more than 6 months and used work till date, is now giving nuget.abp.io related above errors. URGENT attention needed.
  • ABP Framework version: v8.2.1
  • UI Type: Angular / MVC / Blazor Server
  • Database System: EF Core (MySQL)
  • Tiered (for MVC) or Auth Server Separated (for Angular): Auth server separated angular
  • Exception message and full stack trace: NA
  • Steps to reproduce the issue: NA

We have use case where we want to configure authentication scheme based on the user type. if a user is not a backend user/company user but a consumer than we want to configure mobile OTP based authentication and for company/tenant backend user , we want to use user name password authentication. Please suggest how to achieve this.

  • ABP Framework version: v8.2.1
  • UI Type: Angular / MVC
  • Database System: EF Core (MySQL) ** Tiered (for MVC) or Auth Server Separated (for Angular): Auth Server Separated (for Angular)
  • Exception message and full stack trace: lnvalid grant type
  • Steps to reproduce the issue:
  • record login page using blazemeter and run the scripts in jmeter. login gets successfull but connect/token request fails with invalid grant type when you run the recorded scripts with jmeter.
  • i have observe that connect/authorize request not getting correct location header in reponse correctly due to which conect/token request is failing.
Showing 1 to 10 of 34 entries
Learn More, Pay Less
33% OFF
All Trainings!
Get Your Deal
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.0.0-preview. Updated on September 12, 2025, 10:20