Activities of "IbrahimSarigoz"

Hello,

In our project role names that include Turkish characters such as "ç", "ö", "ı" are shown in the UI as HTML entities (e.g., ç, ö).

Example: The role name "Bahçıvan" appears as Bahçıvan in the role assignment modal.

But in the Roles page it looks like fine.

How can we solve this problem? Thanks.

Hi, I am trying to trigger an event in my project using DistributedEventBus and RabbitMQ, but I cannot catch the event on the Web side. I would like to explain what I have set up in each layer so you can help me understand if I'm missing something.

My project is MVC and Non-Tiered.

Application.Contracts Layer:

I have created a simple ETO (Event Transfer Object):


[EventName("RecurringJobCreatedOrUpdatedEto")]
public class RecurringJobCreatedOrUpdatedEto
{
    public int JobId { get; set; }
    public string JobName { get; set; }
}

Application Layer:

In my AppService, I am publishing the event:

private readonly IDistributedEventBus _distributedEventBus;

public RecurringJobsAppServiceBase(IDistributedEventBus distributedEventBus)
{
    _distributedEventBus = distributedEventBus;
}

public virtual async Task<RecurringJobDto> UpdateAsync(int id, RecurringJobUpdateDto input)
{
    var recurringJob = await _recurringJobManager.UpdateAsync(
        id,
        input.JobName, input.IsActive, input.CronExpression, input.ConcurrencyStamp
    );

    var eventData = new RecurringJobCreatedOrUpdatedEto
    {
        JobId = id,
        JobName = input.JobName,
    };

    await _distributedEventBus.PublishAsync(eventData);

    return ObjectMapper.Map<RecurringJob, RecurringJobDto>(recurringJob);
}

I did not make any changes to the ApplicationModule.

Web Layer:

I created a handler for the event:


public class RecurringJobCreatedOrUpdatedEventHandler : IDistributedEventHandler<RecurringJobCreatedOrUpdatedEto>, ITransientDependency
{
    private readonly ILogger<RecurringJobCreatedOrUpdatedEventHandler> _logger;

    public RecurringJobCreatedOrUpdatedEventHandler(ILogger<RecurringJobCreatedOrUpdatedEventHandler> logger)
    {
        _logger = logger;
    }

    public Task HandleEventAsync(RecurringJobCreatedOrUpdatedEto eventData)
    {
        _logger.LogInformation($"Event! JobId: {eventData.JobId}, JobName: {eventData.JobName}");
        return Task.CompletedTask;
    }
}

Inside WebModule, I did the following:

Added typeof(AbpEventBusRabbitMqModule) to the dependencies.

In ConfigureServices, I wrote:

context.Services.AddAssemblyOf<RecurringJobCreatedOrUpdatedEventHandler>();

Configure<AbpDistributedEntityEventOptions>(options =>
{
    options.AutoEventSelectors.AddAll();
});

appsettings.json Configuration:


"EventBus": {
    "UseRabbitMq": true
},
"RabbitMQ": {
    "Connections": {
        "Default": {
            "HostName": "localhost",
            "UserName": "myuser",
            "Password": "1q2w3E*",
            "Port": "5672"
        }
    },
    "EventBus": {
        "ClientName": "TEST_Web",
        "ExchangeName": "TESTExchange"
    }
}

I am sure my rabbitmq is working. when i publish exchange is changing

,

Problem: The event is successfully published, but the handler in the Web layer is not triggered, and the event is not being caught.

Thank you in advance for your help!

Hi, I have a personal license, but when I try to run a project, I encounter the following error: 2025-01-17 15:07:52.838 +02:00 [ERR] ABP-LIC-0016 - You are not granted permission to use the module 'Volo.Abp.TextTemplateManagement.Application-v8.2.0.0'. 2025-01-17 15:07:52.838 +02:00 [ERR] ABP-LIC-ERROR - License check failed for 'Volo.Abp.TextTemplateManagement.Application-v8.2.0.0'.

Could you please advise on how I can resolve this issue? Thank you,

  • ABP Framework version: v8.2
  • UI Type: MVC
  • Database System: EF Core (SQL Server)

I need to customize the PermissionManagement page. I want the elements I've circled to be collapsible under the CRM section. I couldn't find the relevant modal in the source code. How can I make this kind of customization?

  • ABP Framework version: v8.3.0
  • UI Type: MVC
  • Database System: EF Core ( Oracle)
  • Tiered (for MVC) or Auth Server Separated (for Angular): Tiered
  • Exception message and full stack trace:
  • Steps to reproduce the issue:
Question

Hello, I read this topic We need to ensure that a transaction starts when a Unit of Work (UOW) begins, with strict handling of concurrent user access. For example, in the provided code snippet, when an admin initiates a Unit of Work, other users should be forced to wait until the transaction completes.

 using (var uow = _unitOfWorkManager.Begin(requiresNew:true,isTransactional:true, isolationLevel: System.Data.IsolationLevel.ReadUncommitted))
 {
     try
     {
         MusteriNumarasiNumarator musteriNumarasiNumarator = await _musteriNumarasiNumaratorManager.CreateAsync();

         if( _currentUser.Name == "admin")
         {
            await Task.Delay(10000);
             //throw new UserFriendlyException("hata");
         }

         var gercekKisi = new GercekKisi(
          GuidGenerator.Create()
          );

         GercekKisi insertGercekKisi = await _gercekKisiRepository.InsertAsync(gercekKisi);
        
         await uow.CompleteAsync();

         return insertGercekKisi;
     }
     catch (Exception)
     {
         throw;
     }
 }

The code uses a UnitOfWorkManager to start a transactional Unit of Work with the isolation level set to ReadUncommitted. This setup ensures that the database transaction begins properly. However, we want to implement a mechanism where if the current user is "admin," the system should delay the transaction, potentially causing other users to wait. In the current state, this delay is simulated by a Task.Delay call.

How can we enforce that other users are blocked from accessing this method while the admin’s transaction is still in progress, ensuring that only one user can execute this Unit of Work at a time?

  • ABP Framework version: v8.3.0
  • UI Type: MVC
  • Database System: EF Core (Oracle)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes tiered.

Hello, when I click on the related user's session and revoke the account, it takes some time. How can we adjust this cache timeout issue?

  • ABP Framework version: v8.2.3
  • UI Type: MVC
  • Database System: EF Core (Oracle)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes seperated
  • Exception message and full stack trace:
  • Steps to reproduce the issue:

Hello;

I have two projects: ModuleA and DemoCenterApp. DemoCenterApp can use ModuleA.

ModuleA contains an entity named Iletisim. DemoCenterApp contains an entity named Musteri.

The databases of both projects are different.

In DemoCenterAppDbContext, I used [ReplaceDbContext(typeof(IModuleADbContext))] and added:

public DbSet&lt;Iletisim&gt; Iletisims { get; set; }

My problem is that I want to perform a single LINQ query in EfCoreMusteriRepository that includes Iletisim.

However, I am getting the following error:

Cannot use multiple context instances within a single query execution. Ensure the query uses a single context instance. System.InvalidOperationException: Cannot use multiple context instances within a single query execution. Ensure the query uses a single context instance.

I followed the method described in this YouTube video. As mentioned there, isn't using ReplaceDbContext sufficient?

  • ABP Framework version: v8.2.2
  • UI Type: Angular / MVC
  • Database System: EF Core (Oracle)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes

We were using ABP version 8.1.3 it works fine and wanted to update the project. After updating to ABP 8.2.2, menu items disappeared. We tried redirection via the URL, but it redirects to the authorization url and then back to the home screen. We have completed our update based on the guide (https://abp.io/docs/latest/release-info/migration-guides/abp-8-2). The authorization project and Swagger are working, but there is an issue with the web application. Even though we logged in with the admin account, it appears this way. We have checked the database, and the seed data seems to have been created successfully.

  • ABP Framework version: v8.2.2
  • UI Type: MVC
  • Database System: EF Core (Oracle)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes seperated
Question

I have created a tiered main application and added a new module to it using the suite. My goal is to enable or disable this module for specific tenants, and I need to do this at runtime, managed by the admin from the main application. I'm having trouble finding the correct approach to achieve this. I'm torn between using features and permissions. If I use features, do I need to add a RequireFeature attribute at the beginning of each ApplicationService within the module? What is the proper way to handle this?

In my main app i created this :

public class MyFeatureDefinitionProvider : FeatureDefinitionProvider
{
    public override void Define(IFeatureDefinitionContext context)
    {
        var myGroup = context.AddGroup("MyFeatureGroup", "My feature group");
        
        myGroup.AddFeature(
                        "MyModuleFeature",
                        defaultValue: "false",
                        displayName: LocalizableString
                                         .Create<FeaturesDemoResource>("MyModuleFeature"),
                        valueType: new ToggleStringValueType()
                    );

    }
}

In my module i created this :

public class MyModule : AbpModule
{
    public override void OnApplicationInitialization(ApplicationInitializationContext context)
    {
        var featureChecker = context.ServiceProvider.GetRequiredService<IFeatureChecker>();
        
        if (!featureChecker.IsEnabledAsync("MyModuleFeature").Result)
        {
            throw new BusinessException("This tenant does not have permission to access this module.");
        }
    }
}
  • ABP Framework version: v8.1.3
  • UI Type: Angular / MVC
  • Database System: EF Core , Oracle
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes tiered
Question

Hi, I'm working on a SignalR project and I prefer not to use a distributed event bus. I've looked at ABP samples where one uses a distributed event bus and the other only relies on the web layer. Is it feasible to implement SignalR in a distributed architecture without using an event bus?

  • ABP Framework version: v8.1.3
  • UI Type: MVC
  • Database System: EF Core (Oracle)
  • Tiered (for MVC) or Auth Server Separated (for Angular): yes tiered
Showing 1 to 10 of 23 entries
Boost Your Development
ABP Live Training
Packages
See Trainings
Mastering ABP Framework Book
The Official Guide
Mastering
ABP Framework
Learn More
Mastering ABP Framework Book
Made with ❤️ on ABP v10.1.0-preview. Updated on December 17, 2025, 07:08
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.