From 57ebc7119a8c9c1d79f7937080d17df52df031f5 Mon Sep 17 00:00:00 2001 From: Qais Yousuf Date: Sun, 24 Mar 2024 17:10:30 +0100 Subject: [PATCH] create new question in the edit questionnaire is completed --- .../Implemnetation/QuestionnaireRepository.cs | 17 +- .../Controllers/QuestionnaireController.cs | 22 +- .../Admin/Views/Questionnaire/Create.cshtml | 2 +- .../Admin/Views/Questionnaire/Edit.cshtml | 269 +++++++++--------- 4 files changed, 174 insertions(+), 136 deletions(-) diff --git a/Services/Implemnetation/QuestionnaireRepository.cs b/Services/Implemnetation/QuestionnaireRepository.cs index 9dddbae..2d8a170 100644 --- a/Services/Implemnetation/QuestionnaireRepository.cs +++ b/Services/Implemnetation/QuestionnaireRepository.cs @@ -66,10 +66,21 @@ namespace Services.Implemnetation public async Task Delete(int? id) { - var questionnairId = GetQuesById(id); + if (id == null) + { + throw new ArgumentNullException(nameof(id), "ID cannot be null"); + } - _context.Questionnaires.Remove(questionnairId); - await _context.SaveChangesAsync(); + var questionnaire = GetQuesById(id); + + if (questionnaire == null) + { + throw new ArgumentException("Questionnaire not found", nameof(id)); + } + + _context.Questionnaires.Remove(questionnaire); + await _context.SaveChangesAsync(); } + } } diff --git a/Web/Areas/Admin/Controllers/QuestionnaireController.cs b/Web/Areas/Admin/Controllers/QuestionnaireController.cs index 8e94212..1380c56 100644 --- a/Web/Areas/Admin/Controllers/QuestionnaireController.cs +++ b/Web/Areas/Admin/Controllers/QuestionnaireController.cs @@ -271,6 +271,25 @@ namespace Web.Areas.Admin.Controllers } + else + { + // Add new question + var newQuestion = new Question + { + Text = questionViewModel.Text, // Make sure question text is not null + Type = questionViewModel.Type, // Make sure question type is not null + Answers = new List() // Initialize answers list + }; + + foreach (var answerViewModel in questionViewModel.Answers) + { + // Add new answer + newQuestion.Answers.Add(new Answer { Text = answerViewModel.Text }); + } + + // Add new question to questionnaire + existingQuestionnaire.Questions.Add(newQuestion); + } } @@ -349,8 +368,7 @@ namespace Web.Areas.Admin.Controllers - //return StatusCode(500, "An error occurred while processing your request"); - + } diff --git a/Web/Areas/Admin/Views/Questionnaire/Create.cshtml b/Web/Areas/Admin/Views/Questionnaire/Create.cshtml index b17d900..d407ea8 100644 --- a/Web/Areas/Admin/Views/Questionnaire/Create.cshtml +++ b/Web/Areas/Admin/Views/Questionnaire/Create.cshtml @@ -57,7 +57,7 @@ } - | + - +
@Model.Questions[i].Text - +
+ + + + } + +
| Back to list @@ -115,108 +102,6 @@
- - - - -@*
-
-
-
Edit Survey
- -
-
- -
- - - -
-
- - - -
-
-
- - - @for (int i = 0; i < Model.Questions.Count; i++) - { - -
-
- -
-
-
- -
-

NEXT QUESTION

-
- -
-
-
-
- -
- @Model.Questions[i].Text - - -
- - - -
- } -
-
-
- - | Back to list -
- -
-
-
-
-
*@ - - - - - - - - - @@ -229,8 +114,133 @@ } - - + + + + @* + *@ - @* // $(document).on('click', '.removeQuestion', function () { - // $(this).closest('.question').remove(); - }); *@ + }