survey-webapp/SurveyBackend/SurveyBackend.API/Mappers/QuestionDTOs/QuestionOutputMapper.cs

31 lines
No EOL
1,002 B
C#

using SurveyBackend.DTOs.Question;
using SurveyLib.Core.Models;
using SurveyLib.Core.Models.QuestionVariants;
namespace SurveyBackend.Mappers.QuestionDTOs;
public static class QuestionOutputMapper
{
public static OutputQuestionDto ModelToQuestionDTO(QuestionBase question)
{
var withAnswerVariants = question.GetType() != typeof(TextQuestion);
return new OutputQuestionDto
{
Id = question.Id,
SurveyId = question.SurveyId,
Title = question.Title,
QuestionType = question.Discriminator,
AnswerVariants = withAnswerVariants ? GetAnswerVariants(question.AnswerVariants) : null,
};
}
private static List<OutputAnswerVariantDto> GetAnswerVariants(IEnumerable<AnswerVariant> answerVariants)
{
return answerVariants.Select(av => new OutputAnswerVariantDto
{
Id = av.Id,
QuestionId = av.QuestionId,
Text = av.Text,
}).ToList();
}
}