Exemplo n.º 1
0
        /// <summary>
        /// Gets the score detail.
        /// </summary>
        /// <param name="resultatModel">The resultat model.</param>
        /// <returns></returns>
        private static object GetScoreDetail(IResultatModel resultatModel)
        {
            switch (resultatModel)
            {
            case ResultatMajorityVotingProcessModel scrutinMajoritaireModel:
                return(scrutinMajoritaireModel.IndividualResults);

            case ResultatMajoritaryJudgmentModel jugementMajoritaireModel:
                return(jugementMajoritaireModel.IndividualResults);

            case AlternativeVoteResultatModel voteAlternatifModel:
                return(voteAlternatifModel.Stages);

            case ResultatCondorcetRandomiseModel condorcetModel:
                return(condorcetModel.WinningLottery);

            default:
                return(null);
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// Maps the resultat model to resultat.
        /// </summary>
        /// <param name="scrutinModel">The scrutin model.</param>
        /// <param name="resultatModel">The resultat model.</param>
        /// <returns></returns>
        /// <exception cref="ArgumentNullException">
        /// scrutinModel
        /// or
        /// resultatModel
        /// </exception>
        public Result MapResultatModelToResultat(VotingProcessModel scrutinModel, IResultatModel resultatModel)
        {
            if (scrutinModel is null)
            {
                throw new ArgumentNullException(nameof(scrutinModel));
            }

            if (resultatModel is null)
            {
                throw new ArgumentNullException(nameof(resultatModel));
            }

            return(new Result
            {
                IdVotingProcess = scrutinModel.Id,
                IsValid = resultatModel.IsValidResult,
                NbVoters = resultatModel.Voters,
                IdWinningOption = resultatModel.Winner?.Id,
                ScoreDetail = JsonConvert.SerializeObject(GetScoreDetail(resultatModel))
            });
        }
Exemplo n.º 3
0
        /// <summary>
        /// Saves the resultat.
        /// </summary>
        /// <param name="scrutin">The scrutin.</param>
        /// <param name="resultatModel">The resultat model.</param>
        private void SaveResultat(VotingProcessModel scrutin, IResultatModel resultatModel)
        {
            var resultat = MapperService.MapResultatModelToResultat(scrutin, resultatModel);

            ResultRepository.Add(resultat);
        }