SurveyVista/Web/ViewModel/QuestionnaireVM/ConditionalLogicViewModel.cs

54 lines
1.8 KiB
C#

using Model;
namespace Web.ViewModel.QuestionnaireVM
{
public class SetLogicViewModel
{
public int QuestionnaireId { get; set; }
public string QuestionnaireName { get; set; } = string.Empty;
public List<QuestionLogicViewModel> Questions { get; set; } = new List<QuestionLogicViewModel>();
}
// ViewModel for each question in the logic setup
public class QuestionLogicViewModel
{
public int QuestionId { get; set; }
public string QuestionText { get; set; } = string.Empty;
public QuestionType QuestionType { get; set; }
public int QuestionNumber { get; set; }
public List<AnswerConditionViewModel> Answers { get; set; } = new List<AnswerConditionViewModel>();
}
// ViewModel for each answer's condition
public class AnswerConditionViewModel
{
public int AnswerId { get; set; }
public string AnswerText { get; set; } = string.Empty;
public ConditionActionType ActionType { get; set; } = ConditionActionType.Continue;
public int? TargetQuestionNumber { get; set; }
public int? SkipCount { get; set; }
public string? EndMessage { get; set; }
}
// Enum for condition action types
public enum ConditionActionType
{
Continue = 0,
SkipToQuestion = 1,
SkipCount = 2,
EndSurvey = 3
}
// ViewModel for saving conditions
public class SaveConditionsViewModel
{
public int QuestionnaireId { get; set; }
public List<AnswerConditionSaveViewModel> Conditions { get; set; } = new List<AnswerConditionSaveViewModel>();
}
public class AnswerConditionSaveViewModel
{
public int AnswerId { get; set; }
public string ConditionJson { get; set; } = string.Empty;
}
}