added questions output (SHIT CODE)

This commit is contained in:
Вячеслав 2025-04-20 20:07:04 +05:00
parent 7d76a9f67c
commit ddfb5eff54
11 changed files with 93 additions and 9 deletions

View file

@ -0,0 +1,48 @@
using SurveyBackend.DTOs.Question;
using SurveyLib.Core.Models;
namespace SurveyBackend.Mappers.QuestionDTOs;
public static class QuestionOutputMapper
{
public static object ModelToQuestionDTO(QuestionBase question)
{
return question.Discriminator.ToLower() switch
{
"textquestion" => new OutputTextQuestionDto
{
Id = question.Id,
Title = question.Title,
SurveyId = question.SurveyId,
QuestionType = question.Discriminator
},
"singleanswerquestion" => new OutputSingleAnswerQuestionDto
{
Id = question.Id,
Title = question.Title,
SurveyId = question.SurveyId,
QuestionType = question.Discriminator,
AnswerVariants = GetAnswerVariants(question.AnswerVariants ?? Array.Empty<AnswerVariant>())
},
"multipleanswerquestion" => new OutputMultipleAnswerQuestionDto
{
Id = question.Id,
Title = question.Title,
SurveyId = question.SurveyId,
QuestionType = question.Discriminator,
AnswerVariants = GetAnswerVariants(question.AnswerVariants ?? Array.Empty<AnswerVariant>())
},
_ => throw new Exception($"Unknown question type: {question.Discriminator}")
};
}
private static List<OutputAnswerVariantDto> GetAnswerVariants(IEnumerable<AnswerVariant> answerVariants)
{
return answerVariants.Select(av => new OutputAnswerVariantDto
{
Id = av.Id,
QuestionId = av.QuestionId,
Text = av.Text,
}).ToList();
}
}