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:
| Nom | Type | Description |
|---|---|---|
campagneId | Guid | Identifiant de la campagne |
searchRequest | B2BListeElectoraleSearchRequest? | 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:
| Nom | Type | Description |
|---|---|---|
campagneId | Guid | Identifiant de la campagne |
votantId | Guid | Identifiant 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:
| Nom | Type | Description |
|---|---|---|
campagneId | Guid | Identifiant de la campagne |
votantId | Guid | Identifiant interne MCM du votant |
dto | B2BMettreAJourDroitDeVoteDto | Donné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
B2BListeElectoraleItem- Informations d'un membreB2BListeElectoraleSearchRequest- Paramètres de rechercheB2BMettreAJourDroitDeVoteDto- DTO pour mise à jour individuelle