-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathBaseQuestionRequest.cs
More file actions
28 lines (22 loc) · 1.27 KB
/
BaseQuestionRequest.cs
File metadata and controls
28 lines (22 loc) · 1.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System.Text.Json.Serialization;
using PolyJson;
using Vote.Monitor.Core.Models;
using Vote.Monitor.Domain.Entities.FormBase.Questions;
namespace Vote.Monitor.Form.Module.Requests;
[PolyJsonConverter(distriminatorPropertyName: "$questionType")]
[PolyJsonConverter.SubType(typeof(TextQuestionRequest), QuestionTypes.TextQuestionType)]
[PolyJsonConverter.SubType(typeof(NumberQuestionRequest), QuestionTypes.NumberQuestionType)]
[PolyJsonConverter.SubType(typeof(DateQuestionRequest), QuestionTypes.DateQuestionType)]
[PolyJsonConverter.SubType(typeof(SingleSelectQuestionRequest), QuestionTypes.SingleSelectQuestionType)]
[PolyJsonConverter.SubType(typeof(MultiSelectQuestionRequest), QuestionTypes.MultiSelectQuestionType)]
[PolyJsonConverter.SubType(typeof(RatingQuestionRequest), QuestionTypes.RatingQuestionType)]
[PolyJsonConverter.SubType(typeof(MatrixQuestionRequest), QuestionTypes.MatrixQuestionType)]
public abstract class BaseQuestionRequest
{
[JsonPropertyName("$questionType")] public string QuestionType => DiscriminatorValue.Get(GetType())!;
public Guid Id { get; set; }
public string Code { get; set; }
public TranslatedString Text { get; set; }
public TranslatedString? Helptext { get; set; }
public DisplayLogicRequest? DisplayLogic { get; set; }
}