/// <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); } }
/// <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)) }); }
/// <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); }