Aller au contenu principal

IListeElectoraleClient

Client pour la gestion de la liste électorale d'une campagne de vote. Permet la consultation, la gestion des droits de vote et l'envoi de jetons de vote.

public interface IListeElectoraleClient : IBaseClient

Méthodes

GetListeElectorale

Récupère la liste électorale d'une campagne avec filtres optionnels. Les votants radiés sont automatiquement exclus.

Task<ErrorOr<IEnumerable<B2BListeElectoraleItem>>> GetListeElectorale(
Guid campagneId,
B2BListeElectoraleSearchRequest? searchRequest = null)

Paramètres:

NomTypeDescription
campagneIdGuidIdentifiant de la campagne
searchRequestB2BListeElectoraleSearchRequest?Filtres de recherche (optionnel)

Retour: Liste des membres de la liste électorale.

Exemple:

// Récupérer toute la liste électorale
var result = await _listeElectoraleClient.GetListeElectorale(campagneId);

if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}

foreach (var membre in result.Value)
{
var statut = membre.AVote ? "A voté" : "N'a pas voté";
Console.WriteLine($"{membre.Prenom} {membre.Nom} - {statut}");
}

// Filtrer par syndicat
var search = new B2BListeElectoraleSearchRequest
{
SyndicatIdExterne = "SYN-001"
};

var membresSync = await _listeElectoraleClient.GetListeElectorale(campagneId, search);

// Filtrer par droit de vote
var searchDdv = new B2BListeElectoraleSearchRequest
{
DroitDeVote = true,
AVote = false
};

var nonVotants = await _listeElectoraleClient.GetListeElectorale(campagneId, searchDdv);

EnvoyerJeton

Envoie le jeton de vote par courriel à un membre identifié par son identifiant MCM (Guid).

Task<ErrorOr<Success>> EnvoyerJeton(Guid campagneId, Guid votantId)

Paramètres:

NomTypeDescription
campagneIdGuidIdentifiant de la campagne
votantIdGuidIdentifiant interne MCM du votant
attention

Le jeton ne peut être envoyé qu'à un votant non radié. La campagne doit avoir un gabarit de courriel de type EnvoiLienVote.

Exemple:

var result = await _listeElectoraleClient.EnvoyerJeton(campagneId, votantId);

if (result.IsError)
{
_logger.LogError("Erreur envoi jeton: {Error}", result.FirstError.Description);
return;
}

_logger.LogInformation("Jeton envoyé avec succès");

MettreAJourDroitDeVote

Met à jour le droit de vote d'un membre individuel. Peut également envoyer le jeton de vote lors de l'octroi du droit.

Task<ErrorOr<Success>> MettreAJourDroitDeVote(
Guid campagneId,
Guid votantId,
B2BMettreAJourDroitDeVoteDto dto)

Paramètres:

NomTypeDescription
campagneIdGuidIdentifiant de la campagne
votantIdGuidIdentifiant interne MCM du votant
dtoB2BMettreAJourDroitDeVoteDtoDonnées de mise à jour

Exemple:

// Octroyer le droit de vote et envoyer le jeton
var dto = new B2BMettreAJourDroitDeVoteDto
{
DroitDeVote = true,
EnvoyerJeton = true,
Commentaire = "Admis après vérification" // Optionnel
};

var result = await _listeElectoraleClient.MettreAJourDroitDeVote(
campagneId, votantId, dto);

if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}

// Retirer le droit de vote
var retrait = new B2BMettreAJourDroitDeVoteDto { DroitDeVote = false };
await _listeElectoraleClient.MettreAJourDroitDeVote(
campagneId, votantId, retrait);

Types associés