31 lines
No EOL
1,002 B
C#
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();
|
|
}
|
|
} |