Aller au contenu principal

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:

NomTypeDescription
depuisDateTimeDate à 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:

NomTypeDescription
idExternestringIdentifiant 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:

NomTypeDescription
depuisDateTimeDate à partir de laquelle récupérer les signatures

Retour: Liste des adhésions V2 avec snapshot des coordonnées au moment de la signature.

V2 recommandée

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:

NomTypeDescription
idExternestringIdentifiant 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:

NomTypeDescription
requestB2BAdhesionSearchRequestV2Objet 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.

Tous les filtres sont optionnels

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:

NomTypeDescription
idUniqueGuidIdentifiant unique de l'adhésion à supprimer
Opération destructrice

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:

NomTypeDescription
idExterneMembrestringIdentifiant externe du membre dont les adhésions doivent être supprimées
idExterneSyndicatstring?Identifiant externe du syndicat pour limiter la suppression à un syndicat précis. Si null, toutes les adhésions du membre sont supprimées.
Opération destructrice

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

AspectV1 (B2BAdhesionItem)V2 (B2BAdhesionItemV2)
CoordonnéesDonné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ésNon disponiblesValeursChampUtilisateur inclus
AdresseVia EmployeDirectement sur l'adhésion

Types associés