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 GetAnswerVariants(IEnumerable answerVariants) { return answerVariants.Select(av => new OutputAnswerVariantDto { Id = av.Id, QuestionId = av.QuestionId, Text = av.Text, }).ToList(); } }