Aller au contenu principal

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
Module requis

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 :

NomTypeDescription
instanceIdGuidIdentifiant de la séance
pointIdGuidIdentifiant du point à l'ordre du jour

Retour : B2BInstanceResultatsPointItem — résultats complets du point, incluant le décompte par proposition et par option.

Erreurs possibles :

CodeSignification
Instance.NotFoundLa séance n'existe pas ou n'appartient pas à ce locataire
Point.NotFoundLe point n'existe pas dans cette séance
Point.VoteNonOuvertAucun 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 :

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

CodeSignification
Instance.NotFoundLa séance n'existe pas ou n'appartient pas à ce locataire
Moment recommandé pour l'appel

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 :

NomTypeDescription
instanceIdGuidIdentifiant de la séance

Retour : B2BInstanceStatsItem — statistiques agrégées de participation sans révéler les bulletins individuels.

Erreurs possibles :

CodeSignification
Instance.NotFoundLa 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

ÉtatDescription
PreparationSéance en cours de préparation
EnCoursSéance en cours de déroulement
TermineeSéance terminée — résultats définitifs

États de vote d'un point

ÉtatDescription
NonOuvertVote jamais ouvert sur ce point
OuvertVote en cours
FermeVote fermé, résultats disponibles
AnnonceRésultats annoncés aux participant·e·s

Types associés