feat : radio button add question
continuous-integration/drone/push Build is passing Details

Multiplayer_Php
Maxence GUITARD 1 year ago
parent c8abacb857
commit 2476ba0a78

@ -11,7 +11,8 @@ public class AdministratorModel
public int Id { get; set; } public int Id { get; set; }
[Required(ErrorMessage = "Username is required")] [Required(ErrorMessage = "Username is required")]
[StringLength(50, ErrorMessage = "Username is too long.")] [RegularExpression(@"^[a-zA-Z0-9]+$", ErrorMessage = "La chaîne doit être composée uniquement de lettres et de chiffres, sans espaces.")]
[StringLength(20, ErrorMessage = "{0} length must be between {2} and {1}.", MinimumLength = 3)]
public string Username { get; set; } public string Username { get; set; }
[Required(ErrorMessage = "Password is required")] [Required(ErrorMessage = "Password is required")]

@ -10,7 +10,8 @@ public class PlayerModel
public int Id { get; set; } public int Id { get; set; }
[Required(ErrorMessage = "Nickname is required")] [Required(ErrorMessage = "Nickname is required")]
[StringLength(50, ErrorMessage = "Nickname is too long.")] [RegularExpression(@"^[a-zA-Z0-9]+$", ErrorMessage = "La chaîne doit être composée uniquement de lettres et de chiffres, sans espaces.")]
[StringLength(20, ErrorMessage = "{0} length must be between {2} and {1}.", MinimumLength = 3)]
public string Nickname { get; set; } public string Nickname { get; set; }
[Required(ErrorMessage = "Password is required")] [Required(ErrorMessage = "Password is required")]

@ -38,7 +38,7 @@
<InputText id="@($"answer{answerModel.Id}")" @bind-Value="answerModel.Content" /> <InputText id="@($"answer{answerModel.Id}")" @bind-Value="answerModel.Content" />
</label> </label>
<label for="@($"checkbox{checkbox.Id}")"> <label for="@($"checkbox{checkbox.Id}")">
<InputCheckbox id="@($"checkbox{checkbox.Id}")" @bind-Value="checkbox.IsCorrect" /> Correcte <input type="radio" name="radio" id="@($"checkbox{checkbox.Id}")" checked="@checkbox.IsCorrect" @onchange="() => SetCorrectAnswer(checkbox.Id)" /> @Localizer["Correct"]
</label> </label>
</p> </p>
} }

@ -58,6 +58,11 @@ namespace Blazor.Pages.Questions
checkboxs.Add(new Checkbox(i)); checkboxs.Add(new Checkbox(i));
} }
} }
private void SetCorrectAnswer(int checkboxId)
{
questionModel.IdAnswerGood = checkboxId;
}
private async Task HandleValidSubmit() private async Task HandleValidSubmit()
{ {
if (questionModel != null) if (questionModel != null)
@ -70,15 +75,9 @@ namespace Blazor.Pages.Questions
var answercontent = $"answerContent{answerModel.Id + 1}"; var answercontent = $"answerContent{answerModel.Id + 1}";
formData.Add(new KeyValuePair<string, string>(answercontent, answerModel.Content)); formData.Add(new KeyValuePair<string, string>(answercontent, answerModel.Content));
} }
foreach (var checkbox in checkboxs) var idGood = questionModel.IdAnswerGood + 1;
{ formData.Add(new KeyValuePair<string, string>("idanswergood", idGood.ToString()));
if (checkbox.IsCorrect != false)
{
var idgood = checkbox.Id + 1;
IdAgood = idgood;
formData.Add(new KeyValuePair<string, string>("idanswergood", idgood.ToString()));
}
}
var formContent = new FormUrlEncodedContent(formData); var formContent = new FormUrlEncodedContent(formData);

@ -38,7 +38,7 @@
<InputText id="@($"answer{answer.Id}")" @bind-Value="answer.Content" /> <InputText id="@($"answer{answer.Id}")" @bind-Value="answer.Content" />
</label> </label>
<label for="@($"checkbox{checkbox.Id}")"> <label for="@($"checkbox{checkbox.Id}")">
<InputCheckbox id="@($"checkbox{checkbox.Id}")" @bind-Value="checkbox.IsCorrect" /> @Localizer["Correct"] <input type="radio" name="radio" id="@($"checkbox{checkbox.Id}")" checked="@checkbox.IsCorrect" @onchange="() => SetCorrectAnswer(checkbox.Id)" /> @Localizer["Correct"]
</label> </label>
</p> </p>
} }

@ -82,6 +82,14 @@ namespace Blazor.Pages.Questions
OldQuestionIdChapter = question.IdChapter; OldQuestionIdChapter = question.IdChapter;
OldIdAnswerGood = question.IdAnswerGood; OldIdAnswerGood = question.IdAnswerGood;
} }
private void SetCorrectAnswer(int checkboxId)
{
Console.WriteLine($"SetCorrectAnswer called with checkboxId: {checkboxId}");
questionModel.IdAnswerGood = checkboxId;
}
private async Task HandleValidSubmit() private async Task HandleValidSubmit()
{ {
@ -94,14 +102,8 @@ namespace Blazor.Pages.Questions
var answercontent = $"answerContent{index + 1}"; var answercontent = $"answerContent{index + 1}";
formData.Add(new KeyValuePair<string, string>(answercontent, answer.Content)); formData.Add(new KeyValuePair<string, string>(answercontent, answer.Content));
} }
foreach (var checkbox in checkboxs)
{ formData.Add(new KeyValuePair<string, string>("idanswergood", question.IdAnswerGood.ToString()));
if (checkbox.IsCorrect == true)
{
IdAgood = checkbox.Id;
formData.Add(new KeyValuePair<string, string>("idanswergood", checkbox.Id.ToString()));
}
}
var formContent = new FormUrlEncodedContent(formData); var formContent = new FormUrlEncodedContent(formData);

Loading…
Cancel
Save