Aller au contenu principal

Types Votez

Types utilisés par le module de vote MCM Votez.

Campagnes

B2BCampagneItem

Informations d'une campagne de vote.

public class B2BCampagneItem
{
public required Guid Id { get; init; }
public required string Titre { get; init; }
public required string Slug { get; init; }
public required DateTime OuvertureDuVoteUtc { get; init; }
public required DateTime FermetureDuVoteUtc { get; init; }
public required string Etat { get; init; }
public required bool EstPublie { get; init; }
public required bool EstArchive { get; init; }
public required int NombreVotants { get; init; }
public required int NombreQuestions { get; init; }
public required DateTime DateCreationUtc { get; init; }
public required DateTime DateModificationUtc { get; init; }
}
PropriétéTypeDescription
IdGuidIdentifiant unique
TitrestringTitre de la campagne
SlugstringURL-friendly identifier
OuvertureDuVoteUtcDateTimeDate/heure d'ouverture du vote
FermetureDuVoteUtcDateTimeDate/heure de fermeture du vote
EtatstringÉtat actuel (voir ci-dessous)
EstPublieboolCampagne publiée et accessible
EstArchiveboolCampagne archivée
NombreVotantsintNombre total de votants inscrits
NombreQuestionsintNombre de questions
DateCreationUtcDateTimeDate de création
DateModificationUtcDateTimeDernière modification

États de campagne

ÉtatDescription
BrouillonEn cours de préparation
PlanifiePubliée, en attente d'ouverture
VoteOuvertVote en cours
TermineVote terminé
ArchiveArchivée

B2BCreateCampagneDto

DTO pour la création d'une campagne.

public class B2BCreateCampagneDto
{
public required string Titre { get; init; }
public required DateTime OuvertureDuVoteUtc { get; init; }
public required DateTime FermetureDuVoteUtc { get; init; }
public string? TextePageAccueil { get; init; }
public string? LibelleAbstention { get; init; }
public bool OrdreReponsesAleatoire { get; init; }
}
PropriétéTypeDescription
TitrestringTitre de la campagne (requis)
OuvertureDuVoteUtcDateTimeDate/heure d'ouverture (requis)
FermetureDuVoteUtcDateTimeDate/heure de fermeture (requis)
TextePageAccueilstring?HTML de la page d'accueil
LibelleAbstentionstring?Texte du bouton d'abstention
OrdreReponsesAleatoireboolMélanger l'ordre des options

B2BUpdateCampagneDto

DTO pour la modification d'une campagne.

public class B2BUpdateCampagneDto
{
public required string Titre { get; init; }
public required DateTime OuvertureDuVoteUtc { get; init; }
public required DateTime FermetureDuVoteUtc { get; init; }
public string? TextePageAccueil { get; init; }
public string? LibelleAbstention { get; init; }
public bool OrdreReponsesAleatoire { get; init; }
}

B2BCampagneSearchRequest

Paramètres de recherche pour les campagnes.

public record B2BCampagneSearchRequest
{
public string? Etat { get; init; }
public string? Titre { get; init; }
public DateTime? OuvertureApres { get; init; }
public DateTime? FermetureAvant { get; init; }
}
PropriétéTypeDescription
Etatstring?Filtrer par état
Titrestring?Recherche par titre (contains)
OuvertureApresDateTime?Campagnes ouvrant après cette date
FermetureAvantDateTime?Campagnes fermant avant cette date

B2BCampagneStatsItem

Statistiques agrégées d'une campagne.

public class B2BCampagneStatsItem
{
public required Guid CampagneId { get; init; }
public required string Titre { get; init; }
public required string Etat { get; init; }
public required int TotalVotants { get; init; }
public required int VotantsAyantVote { get; init; }
public required decimal TauxParticipation { get; init; }
public required List<B2BQuestionStatsItem> Questions { get; init; }
}
PropriétéTypeDescription
CampagneIdGuidIdentifiant de la campagne
TitrestringTitre de la campagne
EtatstringÉtat actuel
TotalVotantsintNombre de votants inscrits
VotantsAyantVoteintNombre de votants ayant voté
TauxParticipationdecimalPourcentage de participation (0-100)
QuestionsList<B2BQuestionStatsItem>Statistiques par question

Questions

B2BQuestionItem

Informations d'une question de vote.

public class B2BQuestionItem
{
public required int Id { get; init; }
public required string Texte { get; init; }
public required string Nom { get; init; }
public required string TypeQuestion { get; init; }
public required int MinReponses { get; init; }
public required int MaxReponses { get; init; }
public required bool AbstentionPermise { get; init; }
public required int Ordre { get; init; }
public required int NombreOptions { get; init; }
public required List<B2BOptionReponseItem> Options { get; init; }
public required DateTime DateCreationUtc { get; init; }
public required DateTime DateModificationUtc { get; init; }
}
PropriétéTypeDescription
IdintIdentifiant unique
TextestringTexte/description HTML de la question
NomstringNom court de la question
TypeQuestionstringType (ChoixLibre, Proposition, Election)
MinReponsesintNombre minimum de réponses requises
MaxReponsesintNombre maximum de réponses permises
AbstentionPermiseboolAbstention autorisée
OrdreintPosition dans la campagne
NombreOptionsintNombre d'options de réponse
OptionsList<B2BOptionReponseItem>Options de réponse

B2BCreateQuestionDto

DTO pour la création d'une question.

public class B2BCreateQuestionDto
{
public required string Texte { get; init; }
public required string Nom { get; init; }
public required string TypeQuestion { get; init; }
public required int MinReponses { get; init; }
public required int MaxReponses { get; init; }
public bool AbstentionPermise { get; init; }
public List<B2BCreateOptionReponseDto>? Options { get; init; }
}

B2BUpdateQuestionDto

DTO pour la modification d'une question.

public class B2BUpdateQuestionDto
{
public required string Texte { get; init; }
public required string Nom { get; init; }
public required int MinReponses { get; init; }
public required int MaxReponses { get; init; }
public bool AbstentionPermise { get; init; }
}

B2BQuestionStatsItem

Statistiques d'une question.

public class B2BQuestionStatsItem
{
public required int QuestionId { get; init; }
public required string Nom { get; init; }
public required string Texte { get; init; }
public required int TotalVotes { get; init; }
public required int Abstentions { get; init; }
public required List<B2BOptionStatsItem> Options { get; init; }
}
PropriétéTypeDescription
QuestionIdintIdentifiant de la question
NomstringNom de la question
TextestringTexte de la question
TotalVotesintNombre total de votes
AbstentionsintNombre d'abstentions
OptionsList<B2BOptionStatsItem>Statistiques par option

Options de réponse

B2BOptionReponseItem

Informations d'une option de réponse.

public class B2BOptionReponseItem
{
public required Guid Id { get; init; }
public required string Texte { get; init; }
public string? Information { get; init; }
public required int Ordre { get; init; }
}
PropriétéTypeDescription
IdGuidIdentifiant unique
TextestringTexte de l'option
Informationstring?Information supplémentaire
OrdreintPosition dans la question

B2BCreateOptionReponseDto

DTO pour la création d'une option.

public class B2BCreateOptionReponseDto
{
public required string Texte { get; init; }
public string? Information { get; init; }
}

B2BOptionStatsItem

Statistiques d'une option.

public class B2BOptionStatsItem
{
public required Guid OptionId { get; init; }
public required string Texte { get; init; }
public required int Votes { get; init; }
public required decimal PoidsTotal { get; init; }
public required decimal Pourcentage { get; init; }
}
PropriétéTypeDescription
OptionIdGuidIdentifiant de l'option
TextestringTexte de l'option
VotesintNombre de votes
PoidsTotaldecimalTotal pondéré (somme des poids des votants)
PourcentagedecimalPourcentage des votes (0-100)

Votants

B2BVotantItem

Informations d'un votant.

public class B2BVotantItem
{
public required Guid Id { get; init; }
public required string Courriel { get; init; }
public string? CourrielAlternatif { get; init; }
public string? Identifiant { get; init; }
public required string Nom { get; init; }
public required string Prenom { get; init; }
public required bool DroitDeVote { get; init; }
public required bool EstRadie { get; init; }
public required decimal Poids { get; init; }
public required bool AVote { get; init; }
public required DateTime DateCreationUtc { get; init; }
public required DateTime DateModificationUtc { get; init; }
}
PropriétéTypeDescription
IdGuidIdentifiant interne MCM
CourrielstringAdresse courriel principale
CourrielAlternatifstring?Adresse courriel secondaire
Identifiantstring?Identifiant externe (numéro d'employé)
NomstringNom de famille
PrenomstringPrénom
DroitDeVoteboolA le droit de voter
EstRadieboolEst radié (droit retiré)
PoidsdecimalPoids du vote (1.0 par défaut)
AVoteboolA déjà voté
DateCreationUtcDateTimeDate de création
DateModificationUtcDateTimeDernière modification

B2BUpsertVotantDto

DTO pour la création ou mise à jour d'un votant.

public class B2BUpsertVotantDto
{
public required string Identifiant { get; init; }
public required string Courriel { get; init; }
public string? CourrielAlternatif { get; init; }
public required string Nom { get; init; }
public required string Prenom { get; init; }
public bool DroitDeVote { get; init; } = true;
public decimal Poids { get; init; } = 1.0m;
}
PropriétéTypeDéfautDescription
Identifiantstring-Clé de correspondance (requis)
Courrielstring-Adresse courriel (requis)
CourrielAlternatifstring?nullAdresse secondaire
Nomstring-Nom de famille (requis)
Prenomstring-Prénom (requis)
DroitDeVotebooltrueA le droit de voter
Poidsdecimal1.0Poids du vote

B2BVotantSearchRequest

Paramètres de recherche pour les votants.

public record B2BVotantSearchRequest
{
public string? Courriel { get; init; }
public string? Identifiant { get; init; }
public string? Nom { get; init; }
public bool? DroitDeVote { get; init; }
public bool? EstRadie { get; init; }
public bool? AVote { get; init; }
}
PropriétéTypeDescription
Courrielstring?Recherche par courriel (contains)
Identifiantstring?Recherche par identifiant (exact)
Nomstring?Recherche par nom/prénom (contains)
DroitDeVotebool?Filtrer par droit de vote
EstRadiebool?Filtrer par statut radié
AVotebool?Filtrer par statut de vote