Vidyano Documentation
HomepageDemo
  • Vidyano Documentation
  • Vidyano v6 (.NET 8.0 based)
    • Getting started
    • Documentation
      • Courier Feature
      • Managing User Secrets
      • Vidyano.Core
      • Icons
      • Reports
      • Grids
        • Grouping
      • Instant Search
      • Verbose Logs
        • Storage Provider
      • SourceGenerators
    • Migrating from v5.x
      • Migrating an existing Vidyano v5 project
      • Migration scripts for v5 Repository database
  • Release Notes
    • Client
      • 3.0
      • 2.0.0
    • Service
      • 6.0
      • Previous
        • 5.45.0+26864bd
        • 5.44.0+6e65421
        • 5.40.2+2a48896
        • 5.39.1+f04e696
        • 5.38.3+a697611
        • 5.37.1+3fd7ebea
        • 5.36.0+5338103
        • 5.35.5+2316022
        • 5.34.3+d278982
        • 5.33.1+12ad63a
        • 5.32.1+0c41761
        • 5.31.2+c8aabb2
        • 5.30.0+530afaf
        • 5.29.3+30608c3
        • 5.28.2+bc49431
        • 5.27.0+6b9495e
        • 5.26.2+bccf416
        • 5.25.3+8224b3b
        • 5.24.0+a20f7c
        • 5.23.0+9b8b99
        • 5.22.1+557c11
        • 5.21.1+923828
        • 5.20.0+95f4d1
        • 5.19.0+0964f9
        • 5.18.0+de3495
        • 5.17.0+aaa255
        • 5.16.0+aae2a8
        • 5.15.2+5ed89a
        • 5.14.1+ec0dbd
        • 5.13.1+c8fdb1
        • 5.12.0+66cbb5
        • 5.11.1+d7647c
        • 5.10.2+a3acd1
        • 5.9.0+68a51e
        • 5.8.1+67bcab
        • 5.8.0+aab7d8
        • 5.7.1+554316
        • 5.6.4+151e2e
        • 5.1.60401.4035
  • Legacy v5.x
    • Installation (Legacy)
    • Tutorial 1: Your first application (Legacy)
    • Computed attributes
    • Actions
      • Labels
      • Actions classes
    • Security
      • Architecture
      • Allow user registration
      • Forgot password
      • Best Practices
      • Azure AD SAML based Sign-on
      • SCIM 2.0 Service Provider
    • Overriding Vidyano Settings
Powered by GitBook
On this page
  • Soft Delete
  • Cascade Delete
  • Auditing
  • External services

Was this helpful?

Export as PDF
  1. Legacy v5.x
  2. Actions

Actions classes

This information is still applicable to v6

This page provides some common scenarios to use the PersistentObjectActions class.

Soft Delete

By default, Vidyano will tell Entity Framework to delete an entity from the target context when the end user uses the Delete action. We can override this behavior so that the entity is not actually deleted but only marked as deleted (e.g. disabled, not active, obsolete, …).

protected override void MarkForDeletion(Customer entity)
{
    //Context.DeleteObject(entity);
    entity.IsActive = false;
}

Cascade Delete

Another common scenario is to delete related entities when a master entity is deleted (in most cases this can also be done on the database using cascade delete on the foreign key).

protected override void MarkForDeletion(Customer entity)
{
    Context.DeleteObject(entity);
    foreach (var address in entity.Addresses)
        Context.DeleteObject(address);
}

Auditing

Setting audit attributes can be easily implemented by using the UpdateEntity method to set the attributes.

protected override void UpdateEntity(PersistentObject obj, Customer entity)
{
    if (obj.IsNew)
    {
        obj[nameof(Customer.CreatedOn)] = Manager.Current.Now;
        obj[nameof(Customer.CreatedBy)] = Manager.Current.User.Id;
    }
    obj[nameof(Customer.ModifiedOn)] = Manager.Current.Now;
    obj[nameof(Customer.ModifiedBy)] = Manager.Current.User.Id;

    base.UpdateEntity(obj, entity);
}

External services

If we need to inform another external service about new or updated entities we can use the following code.

protected override void PopulateAfterPersist(PersistentObject obj, Customer entity)
{
    base.PopulateAfterPersist(obj, entity);

    var wasNew = obj.IsNew; // The entity will have the correct DB primary key at this moment
    ExternalService.PostCustomer(wasNew, entity);
}
PreviousLabelsNextSecurity

Last updated 2 months ago

Was this helpful?