Xeku.ESign
0.0.0.7
dotnet add package Xeku.ESign --version 0.0.0.7
NuGet\Install-Package Xeku.ESign -Version 0.0.0.7
<PackageReference Include="Xeku.ESign" Version="0.0.0.7" />
<PackageVersion Include="Xeku.ESign" Version="0.0.0.7" />
<PackageReference Include="Xeku.ESign" />
paket add Xeku.ESign --version 0.0.0.7
#r "nuget: Xeku.ESign, 0.0.0.7"
#:package Xeku.ESign@0.0.0.7
#addin nuget:?package=Xeku.ESign&version=0.0.0.7
#tool nuget:?package=Xeku.ESign&version=0.0.0.7
Xeku.ESign
Core XAF module for electronic signature workflow management. Provides a flexible, multi-step signing architecture with delegation and status tracking.
Features
- Multi-Step Signing Workflow: Support for sequential, parallel, and take-one signing patterns
- Delegation System: SignAgent-based delegation for when signers are unavailable
- Status Management: Complete lifecycle tracking (Draft → Approving → Approved/Rejected/Invalid)
- Attachment Support: File attachments can be added during signing steps
- Extensible Form Base: Abstract
FormBaseclass for building custom forms with automatic numbering
Architecture
graph TB
subgraph "Presentation (#e1f5ff)"
BlazorUI["Xeku.ESign.Blazor"]
Controller["Controllers"]
end
subgraph "Service/Logic (#fff4e1)"
StatusMgr["SignStatusManager"]
StepMgr["SignStepManager"]
Module["ESignModule"]
end
subgraph "Data/Entity (#e8f5e9)"
FormBase["FormBase"]
SignStep["SignStep"]
SignAgent["SignAgent"]
SignStepAttachment["SignStepAttachment"]
end
subgraph "Forms Extension (#f3e5f5)"
Forms["Xeku.ESign.Forms"]
end
subgraph "Storage (#fce4ec)"
DB[(Database)]
end
BlazorUI --> Module
Controller --> StatusMgr
Controller --> StepMgr
StatusMgr --> SignStep
StepMgr --> SignStep
Module --> FormBase
Forms --> FormBase
SignStep --> DB
FormBase --> DB
SignAgent --> DB
style BlazorUI fill:#e1f5ff
style Controller fill:#e1f5ff
style StatusMgr fill:#fff4e1
style StepMgr fill:#fff4e1
style Module fill:#fff4e1
style FormBase fill:#e8f5e9
style SignStep fill:#e8f5e9
style SignAgent fill:#e8f5e9
style SignStepAttachment fill:#e8f5e9
style Forms fill:#f3e5f5
style DB fill:#fce4ec
Installation
1. NuGet Package
dotnet add package Xeku.ESign
2. Add Module Reference
// In your module constructor
RequiredModuleTypes.Add(typeof(Xeku.ESign.ESignModule));
Since FormBase inherits from UserFriendlyIdPersistentObject, you must initialize the SequenceGenerator in your application startup. See Xeku.Core README for details.
Core Concepts
Sign Step Types
| Type | Description |
|---|---|
Single |
One designated signer must sign |
Parallel |
All signers in the step must sign |
TakeOne |
Any one signer from the group can sign |
Notice |
Notification only, no action required |
Insert |
Dynamically inserted additional signer |
Sign Status Lifecycle
stateDiagram-v2
[*] --> Draft
Draft --> Approving: Submit
Approving --> Approved: All steps completed
Approving --> Rejected: Any step rejected
Draft --> Invalid: Invalidate
Approving --> Invalid: Invalidate
Implementing Custom Forms
Extend FormBase and implement IFixedSignStepObject or ICustomizeSignStepObject:
using Xeku.ESign.BusinessObjects;
using Xeku.ESign;
[XpandNavigationItem("MyModule/MyForm")]
public class MyCustomForm : FormBase, IFixedSignStepObject
{
public MyCustomForm(Session session) : base(session) { }
public override string NumberPrefix => "MYF";
public void OnStepCreating(ref CancelMessageEventArgs e)
{
// Define signing steps
SignStepManager.AddSingleSignStep(this, 1, "Manager Approval",
GetManagerUser());
SignStepManager.AddParallelSignStep(this, 2, "Finance Review",
GetFinanceUsers());
}
}
Sign Delegation
// Create delegation record
var agent = new SignAgent(session)
{
User = originalSigner, // The user who delegates
Agent = delegateUser, // The user who can sign on behalf
StartDate = DateTime.Today,
EndDate = DateTime.Today.AddDays(7)
};
AI Agent Integration
AI Agents can leverage Xeku.ESign for automated workflow management.
Use Cases
- Dynamic Task Execution: Automatically route approval requests based on business rules
- Automated Status Monitoring: Track document approval progress programmatically
- Intelligent Delegation: Set up delegation rules based on calendar availability
API Integration
// Programmatically submit a form for signing
var result = SignStatusManager.Approve(myForm);
if (result.isSuccess)
{
// Form is now in Approving status
}
// Check current pending signers
var pendingSteps = SignStepManager.GetCurrentlyAwaitingSignStepList(myForm);
// Process a signing action
var signResult = SignStatusManager.Sign(myForm, signParameter, currentUser);
Best Practices
- Error Handling: Always check the
isSuccessflag and handle exceptions - Delegation Awareness: Use
GetSignAgentableUsers()to check who can sign on behalf - Status Validation: Check
SignStatusbefore performing actions
Related Packages
- Xeku.ESign.Blazor - Blazor Server UI components
- Xeku.ESign.Forms - Pre-built HR and accounting forms
License
MIT License
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- DevExpress.ExpressApp (>= 25.2.3)
- DevExpress.ExpressApp.CodeAnalysis (>= 25.2.3)
- DevExpress.ExpressApp.Security (>= 25.2.3)
- DevExpress.ExpressApp.Xpo (>= 25.2.3)
- DevExpress.Persistent.Base (>= 25.2.3)
- DevExpress.Persistent.BaseImpl.Xpo (>= 25.2.3)
- Xeku.Core (>= 0.0.0.7)
- Xeku.Editors (>= 0.0.0.7)
NuGet packages (3)
Showing the top 3 NuGet packages that depend on Xeku.ESign:
| Package | Downloads |
|---|---|
|
Xeku.ESign.WebApi
Package Description |
|
|
Xeku.ESign.Blazor
eSign Blazor module for Devexpress XAF Blazor |
|
|
Xeku.ESign.Forms
eSign Forms module for Devexpress XAF |
GitHub repositories
This package is not used by any popular GitHub repositories.