IInstancesClient
Client pour la lecture des résultats de vote et des statistiques de participation d'une séance (Module Instances). Surface en lecture seule — les systèmes de mission interrogent les résultats après la fin d'une réunion.
public interface IInstancesClient : IBaseClient
Ce client nécessite que le Module Instances soit activé pour le locataire. Les appels retournent une erreur 403 Forbidden si le module n'est pas disponible.
Méthodes
GetResultatsPoint
Récupère les résultats de vote d'un point précis : décompte par proposition et par option, pondéré par le poids (Poids) de chaque votant·e.
Task<ErrorOr<B2BInstanceResultatsPointItem>> GetResultatsPoint(Guid instanceId, Guid pointId)
Route : GET b2b/v1/instances/{instanceId}/points/{pointId}/resultats
Paramètres :
| Nom | Type | Description |
|---|---|---|
instanceId | Guid | Identifiant de la séance |
pointId | Guid | Identifiant du point à l'ordre du jour |
Retour : B2BInstanceResultatsPointItem — résultats complets du point, incluant le décompte par proposition et par option.
Erreurs possibles :
| Code | Signification |
|---|---|
Instance.NotFound | La séance n'existe pas ou n'appartient pas à ce locataire |
Point.NotFound | Le point n'existe pas dans cette séance |
Point.VoteNonOuvert | Aucun vote n'a été ouvert sur ce point |
Exemple :
var result = await _instancesClient.GetResultatsPoint(instanceId, pointId);
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
var point = result.Value;
Console.WriteLine($"Point {point.Numero} — {point.Titre}");
Console.WriteLine($"Total bulletins : {point.TotalBulletins}");
foreach (var proposition in point.Propositions)
{
Console.WriteLine($" Proposition : {proposition.Nom}");
Console.WriteLine($" Réponses : {proposition.TotalReponses} ({proposition.TotalPoidsReponses} poids)");
Console.WriteLine($" Abstentions : {proposition.TotalAbstentions} ({proposition.TotalPoidsAbstentions} poids)");
foreach (var option in proposition.Options)
{
Console.WriteLine($" Option '{option.Texte}' : {option.Votes} vote(s), {option.PoidsTotal} poids");
}
}
GetResultatsInstance
Récupère les résultats de tous les points votables d'une séance en un seul appel. Pratique pour les systèmes de mission qui souhaitent obtenir l'ensemble des résultats d'une réunion sans effectuer un appel par point.
Task<ErrorOr<B2BInstanceResultatsInstanceItem>> GetResultatsInstance(Guid instanceId)
Route : GET b2b/v1/instances/{instanceId}/resultats
Paramètres :
| Nom | Type | Description |
|---|---|---|
instanceId | Guid | Identifiant de la séance |
Retour : B2BInstanceResultatsInstanceItem — résultats de l'ensemble des points votables de la séance, triés par position à l'ordre du jour.
Erreurs possibles :
| Code | Signification |
|---|---|
Instance.NotFound | La séance n'existe pas ou n'appartient pas à ce locataire |
Interrogez cet endpoint une fois que la séance est à l'état Terminee pour garantir que tous les résultats sont définitifs.
Exemple :
var result = await _instancesClient.GetResultatsInstance(instanceId);
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
var instance = result.Value;
Console.WriteLine($"Séance : {instance.Titre} (état : {instance.Etat})");
Console.WriteLine($"Points votés : {instance.Points.Count}");
foreach (var point in instance.Points)
{
Console.WriteLine($" {point.Numero}. {point.Titre} — {point.TotalBulletins} bulletin(s)");
}
GetInstanceStats
Récupère les statistiques de participation d'une séance : inscriptions, présences, taux de présence, points votés. Ne divulgue pas les bulletins individuels.
Task<ErrorOr<B2BInstanceStatsItem>> GetInstanceStats(Guid instanceId)
Route : GET b2b/v1/instances/{instanceId}/stats
Paramètres :
| Nom | Type | Description |
|---|---|---|
instanceId | Guid | Identifiant de la séance |
Retour : B2BInstanceStatsItem — statistiques agrégées de participation sans révéler les bulletins individuels.
Erreurs possibles :
| Code | Signification |
|---|---|
Instance.NotFound | La séance n'existe pas ou n'appartient pas à ce locataire |
Exemple :
var result = await _instancesClient.GetInstanceStats(instanceId);
if (result.IsError)
{
_logger.LogError("Erreur: {Error}", result.FirstError.Description);
return;
}
var stats = result.Value;
Console.WriteLine($"Séance : {stats.Titre} (état : {stats.Etat})");
Console.WriteLine($"Inscriptions : {stats.TotalInscriptions}");
Console.WriteLine($" Avec droit de vote : {stats.TotalInscriptionsAvecDroitDeVote}");
Console.WriteLine($"Présent·e·s : {stats.TotalPresents}");
Console.WriteLine($"Taux de présence : {stats.TauxPresence:F1} %");
Console.WriteLine($"Appels de présence : {stats.TotalAppelsPresence}");
Console.WriteLine($"Points à l'ordre du jour : {stats.TotalPoints}");
Console.WriteLine($"Points votés : {stats.TotalPointsVotes}");
États d'une séance
| État | Description |
|---|---|
Preparation | Séance en cours de préparation |
EnCours | Séance en cours de déroulement |
Terminee | Séance terminée — résultats définitifs |
États de vote d'un point
| État | Description |
|---|---|
NonOuvert | Vote jamais ouvert sur ce point |
Ouvert | Vote en cours |
Ferme | Vote fermé, résultats disponibles |
Annonce | Résultats annoncés aux participant·e·s |
Types associés
B2BInstanceResultatsPointItem— Résultats d'un point (propositions + options)B2BInstanceResultatsInstanceItem— Résultats complets d'une séanceB2BInstanceStatsItem— Statistiques de participationB2BPropositionResultatsItem— Résultats d'une propositionB2BOptionResultatsItem— Décompte d'une option