Activities of "maliming"

hi

The LeptonX theme features a simple demo page that explains how to use it with the LeptonX.

If you need to use it, you might need its license, but it depends on how you use it, the LeptonX license does not include the FullCalendar license.

Thanks.

hi

You can override the StripePaymentGateway service.

Please send an email to liming.ma@volosoft.com

I will share the source code of StripePaymentGateway

Thanks.

Configure<PaymentOptions>(options =>
{
    options.Gateways.RemoveAll(x => x.Key == StripeConsts.GatewayName)
    
    options.Gateways.Add(
        new PaymentGatewayConfiguration(
            StripeConsts.GatewayName,
            new FixedLocalizableString("Stripe"),
            isSubscriptionSupported: true,
            typeof(StripePaymentGateway)
        )
    );
});

hi

You can disable the self-registration on the Host side.

Thanks.

hi

Can you share the RegisterAndSubscribeAsync method code?

hi

You can add OpenIddictToken to IgnoredNavigationEntitySelectors instead of overriding AbpEfCoreNavigationHelper.

Configure<AbpEntityChangeOptions>(options =>
{
    options.IgnoredNavigationEntitySelectors.Add("DisableOpenIddictToken", type => type == typeof(OpenIddictToken));
});

hi

You can reconsider requiring authentication for all pages.

options.Conventions.AuthorizeFolder("/");

Perhaps you can find an alternative solution.

What is your real use case?

Thanks.

hi

I will confirm this with the Theme team.

Thanks.

hi

Can you share the solution?

Thanks.

hi

Please try to override the PublishEventsForChangedEntityOnSaveChangeAsync and PublishEventsForTrackedEntity methods and test again.

Thanks.

[ReplaceDbContext(typeof(IIdentityProDbContext))]
[ConnectionStringName("Default")]
public class AbpShowcaseDbContext :
    AbpDbContext<AbpShowcaseDbContext>,
    IIdentityProDbContext
{

    public AbpShowcaseDbContext(DbContextOptions<AbpShowcaseDbContext> options)
        : base(options)
    {

    }

    protected override Task PublishEventsForChangedEntityOnSaveChangeAsync()
    {
        foreach (var entityEntry in AbpEfCoreNavigationHelper.GetChangedEntityEntries())
        {
            if (EntityChangeOptions.Value.PublishEntityUpdatedEventWhenNavigationChanges)
            {
                var ignoredEntity = EntityChangeOptions.Value.IgnoredNavigationEntitySelectors.Any(selector => selector.Predicate(entityEntry.Entity.GetType()));
                var onlyForeignKeyModifiedEntity = entityEntry.State == EntityState.Modified && entityEntry.Properties.Where(x => x.IsModified).All(x => x.Metadata.IsForeignKey());

                if ((entityEntry.State == EntityState.Unchanged && ignoredEntity) || ignoredEntity)
                {
                    continue;
                }

                if (EntityChangeOptions.Value.UpdateAggregateRootWhenNavigationChanges &&
                    EntityChangeOptions.Value.IgnoredUpdateAggregateRootSelectors.All(selector => !selector.Predicate(entityEntry.Entity.GetType())) &&
                    entityEntry.State == EntityState.Unchanged)
                {
                    ApplyAbpConceptsForModifiedEntity(entityEntry, true);
                }

                if (entityEntry.Entity is ISoftDelete && entityEntry.Entity.As<ISoftDelete>().IsDeleted)
                {
                    EntityChangeEventHelper.PublishEntityDeletedEvent(entityEntry.Entity);
                }
                else
                {
                    EntityChangeEventHelper.PublishEntityUpdatedEvent(entityEntry.Entity);
                }
            }
            else if (entityEntry.Properties.Any(x => x.IsModified && (x.Metadata.ValueGenerated == ValueGenerated.Never || x.Metadata.ValueGenerated == ValueGenerated.OnAdd)))
            {
                if (entityEntry.Properties.Where(x => x.IsModified).All(x => x.Metadata.IsForeignKey()))
                {
                    // Skip `PublishEntityDeletedEvent/PublishEntityUpdatedEvent` if only foreign keys have changed.
                    break;
                }

                if (entityEntry.Entity is ISoftDelete && entityEntry.Entity.As<ISoftDelete>().IsDeleted)
                {
                    EntityChangeEventHelper.PublishEntityDeletedEvent(entityEntry.Entity);
                }
                else
                {
                    EntityChangeEventHelper.PublishEntityUpdatedEvent(entityEntry.Entity);
                }
            }
        }

        return Task.CompletedTask;
    }

    protected override void PublishEventsForTrackedEntity(EntityEntry entry)
    {
        switch (entry.State)
        {
            case EntityState.Added:
                ApplyAbpConceptsForAddedEntity(entry);
                EntityChangeEventHelper.PublishEntityCreatedEvent(entry.Entity);
                break;

            case EntityState.Modified:
                if (entry.Properties.Any(x => x.IsModified && (x.Metadata.ValueGenerated == ValueGenerated.Never || x.Metadata.ValueGenerated == ValueGenerated.OnAdd)))
                {
                    // if (entry.Properties.Where(x => x.IsModified).All(x => x.Metadata.IsForeignKey()))
                    // {
                    //     // Skip `PublishEntityDeletedEvent/PublishEntityUpdatedEvent` if only foreign keys have changed.
                    //     break;
                    // }

                    ApplyAbpConceptsForModifiedEntity(entry);
                    if (entry.Entity is ISoftDelete && entry.Entity.As<ISoftDelete>().IsDeleted)
                    {
                        EntityChangeEventHelper.PublishEntityDeletedEvent(entry.Entity);
                    }
                    else
                    {
                        EntityChangeEventHelper.PublishEntityUpdatedEvent(entry.Entity);
                    }
                }
                else if (EntityChangeOptions.Value.PublishEntityUpdatedEventWhenNavigationChanges &&
                         EntityChangeOptions.Value.IgnoredNavigationEntitySelectors.All(selector => !selector.Predicate(entry.Entity.GetType())) &&
                         AbpEfCoreNavigationHelper.IsNavigationEntryModified(entry))
                {
                    if (EntityChangeOptions.Value.UpdateAggregateRootWhenNavigationChanges &&
                        EntityChangeOptions.Value.IgnoredUpdateAggregateRootSelectors.All(selector => !selector.Predicate(entry.Entity.GetType())))
                    {
                        ApplyAbpConceptsForModifiedEntity(entry, true);
                    }

                    if (entry.Entity is ISoftDelete && entry.Entity.As<ISoftDelete>().IsDeleted)
                    {
                        EntityChangeEventHelper.PublishEntityDeletedEvent(entry.Entity);
                    }
                    else
                    {
                        EntityChangeEventHelper.PublishEntityUpdatedEvent(entry.Entity);
                    }
                }
                break;

            case EntityState.Deleted:
                ApplyAbpConceptsForDeletedEntity(entry);
                EntityChangeEventHelper.PublishEntityDeletedEvent(entry.Entity);
                break;
        }
    }

hi

I will check it again.

Thanks.

Showing 961 to 970 of 12033 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.3.0-preview. Updated on February 27, 2026, 05:41
1
ABP Assistant
🔐 You need to be logged in to use the chatbot. Please log in first.