ISignatureClient
Client pour récupérer les signatures d'adhésion des employés. Prend en charge les versions V1 et V2 de l'API.
public interface ISignatureClient : IBaseClient
Méthodes
GetSignaturesDepuis
Récupère toutes les signatures effectuées depuis une date donnée (V1).
Task<ErrorOr<IEnumerable<B2BAdhesionItem>>> GetSignaturesDepuis(DateTime depuis)
Paramètres:
| Nom | Type | Description |
|---|---|---|
depuis | DateTime | Date à partir de laquelle récupérer les signatures |
Retour: Liste des adhésions signées depuis la date spécifiée.
Exemple:
var result = await _signatureClient.GetSignaturesDepuis(DateTime.UtcNow.AddDays(-7));
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
foreach (var adhesion in result.Value)
{
Console.WriteLine($"{adhesion.Employe.Prenom} {adhesion.Employe.Nom} - {adhesion.DateSignature}");
}
GetSignaturesParIdExterne
Récupère les signatures d'un employé par son identifiant externe (V1).
Task<ErrorOr<IEnumerable<B2BAdhesionItem>>> GetSignaturesParIdExterne(string idExterne)
Paramètres:
| Nom | Type | Description |
|---|---|---|
idExterne | string | Identifiant externe de l'employé |
Exemple:
var result = await _signatureClient.GetSignaturesParIdExterne("EMP-001");
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
foreach (var adhesion in result.Value)
{
Console.WriteLine($"Adhésion {adhesion.IdUniqueAdhesion} - {adhesion.DateSignature}");
Console.WriteLine($" Manuscrite: {adhesion.ASignatureManuscripte}");
Console.WriteLine($" Syndicat: {adhesion.SyndicatNom}");
}
GetSignaturesV2Depuis
Récupère toutes les signatures depuis une date donnée (V2). La V2 retourne un instantané des coordonnées de l'employé au moment de la signature au lieu des données courantes.
Task<ErrorOr<IEnumerable<B2BAdhesionItemV2>>> GetSignaturesV2Depuis(DateTime depuis)
Paramètres:
| Nom | Type | Description |
|---|---|---|
depuis | DateTime | Date à partir de laquelle récupérer les signatures |
Retour: Liste des adhésions V2 avec snapshot des coordonnées au moment de la signature.
Préférez les méthodes V2 pour les nouvelles intégrations. Elles retournent les coordonnées telles qu'elles étaient au moment de la signature, plutôt que les données courantes de l'employé.
Exemple:
var result = await _signatureClient.GetSignaturesV2Depuis(DateTime.UtcNow.AddDays(-30));
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
foreach (var adhesion in result.Value)
{
Console.WriteLine($"{adhesion.EmployePrenom} {adhesion.EmployeNom} - {adhesion.DateSignature}");
Console.WriteLine($" Courriel (au moment de la signature): {adhesion.Courriel}");
Console.WriteLine($" Syndicat: {adhesion.SyndicatNom}");
}
GetSignaturesV2ParIdExterne
Récupère les signatures d'un employé par son identifiant externe (V2).
Task<ErrorOr<IEnumerable<B2BAdhesionItemV2>>> GetSignaturesV2ParIdExterne(string idExterne)
Paramètres:
| Nom | Type | Description |
|---|---|---|
idExterne | string | Identifiant externe de l'employé |
Exemple:
var result = await _signatureClient.GetSignaturesV2ParIdExterne("EMP-001");
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
foreach (var adhesion in result.Value)
{
Console.WriteLine($"Adhésion {adhesion.IdUniqueAdhesion} - {adhesion.DateSignature}");
Console.WriteLine($" Courriel: {adhesion.Courriel}");
Console.WriteLine($" Téléphone: {adhesion.TelephonePrincipal}");
Console.WriteLine($" Adresse: {adhesion.Adresse1}, {adhesion.Ville} {adhesion.CodePostal}");
foreach (var champ in adhesion.ValeursChampUtilisateur)
{
Console.WriteLine($" {champ.Nom}: {champ.Valeur}");
}
}
SearchSignaturesV2
Recherche des adhésions V2 avec un large éventail de filtres optionnels combinés en ET logique (AND). Utilise l'endpoint V2 (b2b/v2/adhesion) avec les filtres en paramètres de requête.
Task<ErrorOr<IEnumerable<B2BAdhesionItemV2>>> SearchSignaturesV2(B2BAdhesionSearchRequestV2 request)
Paramètres:
| Nom | Type | Description |
|---|---|---|
request | B2BAdhesionSearchRequestV2 | Objet contenant les filtres optionnels (dates, syndicat, employé, numéro de membre, signature manuscrite, paiement) |
Retour: Liste des adhésions V2 correspondant aux filtres, triées par DateSignature décroissante.
Si aucun filtre n'est fourni, toutes les adhésions du client sont retournées. Chaque filtre fourni restreint le résultat (combinaison AND).
Exemple — plage de dates + syndicat:
var result = await _signatureClient.SearchSignaturesV2(new B2BAdhesionSearchRequestV2
{
Apres = DateTime.UtcNow.AddDays(-30),
Avant = DateTime.UtcNow,
IdExterneSyndicat = "SYND-042"
});
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
foreach (var adhesion in result.Value)
{
Console.WriteLine($"{adhesion.EmployePrenom} {adhesion.EmployeNom} — {adhesion.DateSignature:yyyy-MM-dd}");
}
Exemple — adhésions avec paiement et signature manuscrite:
var result = await _signatureClient.SearchSignaturesV2(new B2BAdhesionSearchRequestV2
{
AvecPaiement = true,
ASignatureManuscripte = true
});
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
foreach (var adhesion in result.Value)
{
Console.WriteLine($"Adhésion {adhesion.IdUniqueAdhesion} — Transaction {adhesion.TransactionId}");
}
Exemple — recherche par numéro de membre:
var result = await _signatureClient.SearchSignaturesV2(new B2BAdhesionSearchRequestV2
{
NoMembre = "NM-12345"
});
DeleteAdhesionByIdUnique
Supprime une adhésion par son identifiant unique (GUID). Opération destructrice et irréversible.
Task<ErrorOr<Success>> DeleteAdhesionByIdUnique(Guid idUnique)
Paramètres:
| Nom | Type | Description |
|---|---|---|
idUnique | Guid | Identifiant unique de l'adhésion à supprimer |
Cette méthode supprime définitivement l'adhésion. Elle utilise l'endpoint V2 (b2b/v2/adhesion/{idUnique}). Assurez-vous de posséder l'idUnique correct avant d'appeler cette méthode.
Exemple:
var idUnique = Guid.Parse("a1b2c3d4-e5f6-7890-abcd-ef1234567890");
var result = await _signatureClient.DeleteAdhesionByIdUnique(idUnique);
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
_logger.LogInformation("Adhésion supprimée");
DeleteAdhesionsByMembre
Supprime toutes les adhésions d'un membre, avec possibilité de restreindre la suppression à un syndicat donné.
Task<ErrorOr<Success>> DeleteAdhesionsByMembre(string idExterneMembre, string? idExterneSyndicat = null)
Paramètres:
| Nom | Type | Description |
|---|---|---|
idExterneMembre | string | Identifiant externe du membre dont les adhésions doivent être supprimées |
idExterneSyndicat | string? | Identifiant externe du syndicat pour limiter la suppression à un syndicat précis. Si null, toutes les adhésions du membre sont supprimées. |
Cette méthode peut supprimer plusieurs adhésions en une seule opération. Lorsque idExterneSyndicat est null, toutes les adhésions du membre sont supprimées.
Exemple:
// Supprimer toutes les adhésions d'un membre pour un syndicat spécifique
var result = await _signatureClient.DeleteAdhesionsByMembre(
idExterneMembre: "EMP-001",
idExterneSyndicat: "SYND-042"
);
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
_logger.LogInformation("Adhésions du membre supprimées");
Différences V1 vs V2
| Aspect | V1 (B2BAdhesionItem) | V2 (B2BAdhesionItemV2) |
|---|---|---|
| Coordonnées | Données actuelles de l'employé | Snapshot au moment de la signature |
| Structure employé | Objet Employe imbriqué | Propriétés à plat (EmployePrenom, EmployeNom, etc.) |
| Champs personnalisés | Non disponibles | ValeursChampUtilisateur inclus |
| Adresse | Via Employe | Directement sur l'adhésion |
Types associés
B2BAdhesionItem- Adhésion V1 avec données employé courantesB2BAdhesionItemV2- Adhésion V2 avec snapshot des coordonnéesB2BAdhesionSearchRequestV2- Critères de recherche pourSearchSignaturesV2