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
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Xeku.ESign" Version="0.0.0.7" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Xeku.ESign" Version="0.0.0.7" />
                    
Directory.Packages.props
<PackageReference Include="Xeku.ESign" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Xeku.ESign --version 0.0.0.7
                    
#r "nuget: Xeku.ESign, 0.0.0.7"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Xeku.ESign@0.0.0.7
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Xeku.ESign&version=0.0.0.7
                    
Install as a Cake Addin
#tool nuget:?package=Xeku.ESign&version=0.0.0.7
                    
Install as a Cake Tool

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 FormBase class 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 isSuccess flag and handle exceptions
  • Delegation Awareness: Use GetSignAgentableUsers() to check who can sign on behalf
  • Status Validation: Check SignStatus before performing actions

License

MIT License

Product 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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.

Version Downloads Last Updated
0.0.0.7 145 1/28/2026
0.0.0.6 153 1/21/2026