abpframework / abpframework/abp
Design a system to allow to work with the soft-deleted entities
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 14.4k
- Forks
- 3.7k
- Avg merge
- 15h 32m
- Merged PRs (30d)
- 106
Description
My thoughts:
- Create an AspNet Core middleware that disables soft-delete if requested by the client via a cookie or http header. So, we can create a global or page based switch to the UI that sets the cookie/header.
- We should relate this to a permission, surely.
This is very easy way to make the UI working with soft delete entities. But the remaining system should suppose use cases, like undelete an entity. For example;
- Always make the related DTO implementing the
ISoftDelete(or inherit from FullAuditedEntityDto or something like that) for the soft-delete entities, so the UI can know if the entity is in the deleted state. - Add an "undelete" action on the data table for deleted entities.
Actually, anyone can implement it like that for their applications. But we can add this included in the framework level and also implement this for the pre-built modules.
Any other suggestion would be appreciated.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the framework's existing soft-delete handling, permissions, DTO conventions, and pre-built modules. The issue does not name files or tests; work is complete only after the framework-level scope and design for viewing, identifying, and undeleting soft-deleted entities are agreed.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp
- Domain
- authorization, backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100