From fd7a1dcac731753474220634a1ea1d610f1191ba Mon Sep 17 00:00:00 2001 From: "Jade.VAN_BRABANDT" Date: Tue, 9 Jan 2024 14:29:40 +0100 Subject: [PATCH] CI : code smells --- .../Components/DisplayQuestions.razor.cs | 4 +- .../Blazor/Modals/DeleteConfirmation.razor.cs | 12 +-- Blazor/Blazor/Models/AdministratorModel.cs | 4 +- Blazor/Blazor/Models/AnswerModel.cs | 4 +- Blazor/Blazor/Models/ChapterModel.cs | 2 +- Blazor/Blazor/Models/PlayerModel.cs | 4 +- Blazor/Blazor/Models/QuestionModel.cs | 5 +- .../Pages/Admins/AddAdministrator.razor | 1 - .../Pages/Admins/AddAdministrator.razor.cs | 57 +++++++------ .../Pages/Admins/Administrators.razor.cs | 2 +- .../Pages/Admins/EditAdministrator.razor.cs | 57 +++++++------ .../Blazor/Pages/Chapters/AddChapter.razor.cs | 54 ++++++------ .../Pages/Chapters/EditChapter.razor.cs | 2 +- .../Blazor/Pages/Players/AddPlayer.razor.cs | 39 +++++---- .../Blazor/Pages/Players/EditPlayer.razor.cs | 2 +- .../Pages/Questions/AddQuestion.razor.cs | 84 ++++++++++--------- .../Pages/Questions/EditQuestion.razor.cs | 2 +- 17 files changed, 169 insertions(+), 166 deletions(-) diff --git a/Blazor/Blazor/Components/DisplayQuestions.razor.cs b/Blazor/Blazor/Components/DisplayQuestions.razor.cs index 91383e1..af7486b 100644 --- a/Blazor/Blazor/Components/DisplayQuestions.razor.cs +++ b/Blazor/Blazor/Components/DisplayQuestions.razor.cs @@ -15,10 +15,10 @@ namespace Blazor.Components public Question question = new(); private List answers = new(); - public List questions; + public List questions = new(); [Inject] - public HttpClient Http { get; set; } + public required HttpClient Http { get; set; } protected override async Task OnInitializedAsync() { diff --git a/Blazor/Blazor/Modals/DeleteConfirmation.razor.cs b/Blazor/Blazor/Modals/DeleteConfirmation.razor.cs index b6f8431..4ff91c2 100644 --- a/Blazor/Blazor/Modals/DeleteConfirmation.razor.cs +++ b/Blazor/Blazor/Modals/DeleteConfirmation.razor.cs @@ -9,22 +9,14 @@ namespace Blazor.Modals public partial class DeleteConfirmation { [CascadingParameter] - public BlazoredModalInstance ModalInstance { get; set; } + public required BlazoredModalInstance ModalInstance { get; set; } [Inject] - public IDataService DataService { get; set; } + public required IDataService DataService { get; set; } [Parameter] public int Id { get; set; } - //private Chapter chapter = new Chapter(); - - //protected override async Task OnInitializedAsync() - - // // Get the chapter - // chapter = await DataService.GetById(Id); - //} - void ConfirmDelete() { ModalInstance.CloseAsync(ModalResult.Ok(true)); diff --git a/Blazor/Blazor/Models/AdministratorModel.cs b/Blazor/Blazor/Models/AdministratorModel.cs index 89e5042..7331a39 100644 --- a/Blazor/Blazor/Models/AdministratorModel.cs +++ b/Blazor/Blazor/Models/AdministratorModel.cs @@ -8,8 +8,8 @@ namespace Blazor.Models; public class AdministratorModel { public int Id { get; set; } - public string Username { get; set; } - public string HashedPassword { get; set; } + public required string Username { get; set; } + public required string HashedPassword { get; set; } public void HashPassword(string password) { diff --git a/Blazor/Blazor/Models/AnswerModel.cs b/Blazor/Blazor/Models/AnswerModel.cs index 2afbb19..6b59e83 100644 --- a/Blazor/Blazor/Models/AnswerModel.cs +++ b/Blazor/Blazor/Models/AnswerModel.cs @@ -4,8 +4,8 @@ public class AnswerModel { public int Id { get; set; } - public string Content { get; set; } - public int IdQuestion { get; set; } + public string? Content { get; set; } + public int? IdQuestion { get; set; } public AnswerModel(int id) { Id = id; diff --git a/Blazor/Blazor/Models/ChapterModel.cs b/Blazor/Blazor/Models/ChapterModel.cs index 44915a5..7a6d9bc 100644 --- a/Blazor/Blazor/Models/ChapterModel.cs +++ b/Blazor/Blazor/Models/ChapterModel.cs @@ -8,6 +8,6 @@ namespace Blazor.Models [Required(ErrorMessage = "Name is required")] [StringLength(50, ErrorMessage = "Name is too long.")] - public string Name { get; set; } + public required string Name { get; set; } } } diff --git a/Blazor/Blazor/Models/PlayerModel.cs b/Blazor/Blazor/Models/PlayerModel.cs index 43c37a0..84572aa 100644 --- a/Blazor/Blazor/Models/PlayerModel.cs +++ b/Blazor/Blazor/Models/PlayerModel.cs @@ -7,8 +7,8 @@ namespace Blazor.Models; public class PlayerModel { public int Id { get; set; } - public string Nickname { get; set; } - public string HashedPassword { get; set; } + public required string Nickname { get; set; } + public required string HashedPassword { get; set; } public void HashPassword(string password) { diff --git a/Blazor/Blazor/Models/QuestionModel.cs b/Blazor/Blazor/Models/QuestionModel.cs index ecdc5df..586a456 100644 --- a/Blazor/Blazor/Models/QuestionModel.cs +++ b/Blazor/Blazor/Models/QuestionModel.cs @@ -3,13 +3,12 @@ public class QuestionModel { public int Id { get; set; } - public string Content { get; set; } + public required string Content { get; set; } public int IdChapter { get; set; } - public int? IdAnswerGood { get; set; } + public int IdAnswerGood { get; set; } public int Difficulty { get; set; } public int NbFails { get; set; } - public void addFails(int nb) { NbFails += nb; } public void removeFails(int nb) { NbFails -= nb; } } diff --git a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor index b198619..7742c74 100644 --- a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor +++ b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor @@ -2,7 +2,6 @@ @using Blazor.Models

AddAdministrator

- diff --git a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs index ab898b7..e73d03a 100644 --- a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs +++ b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs @@ -6,7 +6,7 @@ namespace Blazor.Pages.Admins { public partial class AddAdministrator { - private AdministratorModel administratorModel = new(); + private AdministratorModel? administratorModel; [Inject] public required IDataService DataService { get; set; } @@ -20,33 +20,36 @@ namespace Blazor.Pages.Admins private async Task HandleValidSubmit() { - administratorModel.HashPassword(administratorModel.HashedPassword); - - var formData = new List>(); - formData.Add(new KeyValuePair("username", administratorModel.Username)); - formData.Add(new KeyValuePair("password", administratorModel.HashedPassword)); - - var formContent = new FormUrlEncodedContent(formData); - - string apiUri = API.API_URL+"add/administrator/"+API.TOKEN; - - using (var httpClient = new HttpClient()) - { - var response = await httpClient.PostAsync(apiUri, formContent); - - if (response.IsSuccessStatusCode) - { - var responseBody = await response.Content.ReadAsStringAsync(); - } - else - { - var errorResponse = await response.Content.ReadAsStringAsync(); - } + if (administratorModel != null) + { + administratorModel.HashPassword(administratorModel.HashedPassword); + + var formData = new List>(); + formData.Add(new KeyValuePair("username", administratorModel.Username)); + formData.Add(new KeyValuePair("password", administratorModel.HashedPassword)); + + var formContent = new FormUrlEncodedContent(formData); + + string apiUri = API.API_URL + "add/administrator/" + API.TOKEN; + + using (var httpClient = new HttpClient()) + { + var response = await httpClient.PostAsync(apiUri, formContent); + + if (response.IsSuccessStatusCode) + { + var responseBody = await response.Content.ReadAsStringAsync(); + } + else + { + var errorResponse = await response.Content.ReadAsStringAsync(); + } + } + + Logger.LogInformation("Admin '{administratorsModelName}' added", administratorModel.Username); + + NavigationManager.NavigateTo("administrators"); } - - Logger.LogInformation("Admin '{administratorsModelName}' added", administratorModel.Username); - - NavigationManager.NavigateTo("administrators"); } } } diff --git a/Blazor/Blazor/Pages/Admins/Administrators.razor.cs b/Blazor/Blazor/Pages/Admins/Administrators.razor.cs index 718a4f1..891f1f8 100644 --- a/Blazor/Blazor/Pages/Admins/Administrators.razor.cs +++ b/Blazor/Blazor/Pages/Admins/Administrators.razor.cs @@ -41,7 +41,7 @@ public partial class Administrators var response = Http.GetFromJsonAsync(API.API_URL+"administrators/"+API.TOKEN).Result; - if (!e.CancellationToken.IsCancellationRequested) + if (!e.CancellationToken.IsCancellationRequested && response != null) { administrators = new List(response); // an actual data for the current page totalItem = administrators.Count; diff --git a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs index 9384c34..c5fd294 100644 --- a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs +++ b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs @@ -10,7 +10,7 @@ namespace Blazor.Pages.Admins [Parameter] public int Id { get; set; } - private AdministratorModel administratorModel = new(); + private AdministratorModel? administratorModel; [Inject] public required IDataService DataService { get; set; } @@ -41,33 +41,36 @@ namespace Blazor.Pages.Admins private async Task HandleValidSubmit() { - administratorModel.HashPassword(administratorModel.HashedPassword); - - var formData = new List>(); - formData.Add(new KeyValuePair("username", administratorModel.Username)); - formData.Add(new KeyValuePair("password", administratorModel.HashedPassword)); - - var formContent = new FormUrlEncodedContent(formData); - - string apiUri = API.API_URL+"update/administrator/" + administratorModel.Id + "/" + API.TOKEN; - - using (var httpClient = new HttpClient()) - { - var response = await httpClient.PostAsync(apiUri, formContent); - - if (response.IsSuccessStatusCode) - { - var responseBody = await response.Content.ReadAsStringAsync(); - } - else - { - var errorResponse = await response.Content.ReadAsStringAsync(); - } + if (administratorModel != null) + { + administratorModel.HashPassword(administratorModel.HashedPassword); + + var formData = new List>(); + formData.Add(new KeyValuePair("username", administratorModel.Username)); + formData.Add(new KeyValuePair("password", administratorModel.HashedPassword)); + + var formContent = new FormUrlEncodedContent(formData); + + string apiUri = API.API_URL + "update/administrator/" + administratorModel.Id + "/" + API.TOKEN; + + using (var httpClient = new HttpClient()) + { + var response = await httpClient.PostAsync(apiUri, formContent); + + if (response.IsSuccessStatusCode) + { + var responseBody = await response.Content.ReadAsStringAsync(); + } + else + { + var errorResponse = await response.Content.ReadAsStringAsync(); + } + } + + Logger.LogInformation("Admin '{OldAdminModelName}' edited in '{NewAdminModelName}'", OldAdminName, administratorModel.Username); + + NavigationManager.NavigateTo("administrators"); } - - Logger.LogInformation("Admin '{OldAdminModelName}' edited in '{NewAdminModelName}'",OldAdminName,administratorModel.Username); - - NavigationManager.NavigateTo("administrators"); } } } diff --git a/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs b/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs index 731ea73..150dd2a 100644 --- a/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs +++ b/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs @@ -6,7 +6,7 @@ namespace Blazor.Pages.Chapters; public partial class AddChapter { - private ChapterModel chapterModel = new(); + private ChapterModel? chapterModel; [Inject] public required IDataService DataService { get; set; } @@ -21,32 +21,34 @@ public partial class AddChapter private async Task HandleValidSubmit() { - var formData = new List>(); - formData.Add(new KeyValuePair("name", chapterModel.Name)); - - - var formContent = new FormUrlEncodedContent(formData); - - string apiUri = API.API_URL+"add/chapter/"+API.TOKEN; - - using (var httpClient = new HttpClient()) - { - var response = await httpClient.PostAsync(apiUri, formContent); - - if (response.IsSuccessStatusCode) - { - var responseBody = await response.Content.ReadAsStringAsync(); - } - else - { - var errorResponse = await response.Content.ReadAsStringAsync(); - } + if (chapterModel != null) + { + var formData = new List>(); + formData.Add(new KeyValuePair("name", chapterModel.Name)); + + + var formContent = new FormUrlEncodedContent(formData); + + string apiUri = API.API_URL + "add/chapter/" + API.TOKEN; + + using (var httpClient = new HttpClient()) + { + var response = await httpClient.PostAsync(apiUri, formContent); + + if (response.IsSuccessStatusCode) + { + var responseBody = await response.Content.ReadAsStringAsync(); + } + else + { + var errorResponse = await response.Content.ReadAsStringAsync(); + } + } + + Logger.LogInformation("Chapter '{chapterModelName}' added", chapterModel.Name); + + NavigationManager.NavigateTo("chapters"); } - - Logger.LogInformation("Chapter '{chapterModelName}' added",chapterModel.Name); - - NavigationManager.NavigateTo("chapters"); - } } diff --git a/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs b/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs index 17b71cd..c2dc0d2 100644 --- a/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs +++ b/Blazor/Blazor/Pages/Chapters/EditChapter.razor.cs @@ -9,7 +9,7 @@ public partial class EditChapter [Parameter] public int Id { get; set; } - private ChapterModel chapterModel = new(); + private ChapterModel? chapterModel; [Inject] public IDataService DataService { get; set; } diff --git a/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs b/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs index 02aa732..ffce2cc 100644 --- a/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs +++ b/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs @@ -6,7 +6,7 @@ namespace Blazor.Pages.Players { public partial class AddPlayer { - private PlayerModel playerModel = new(); + private PlayerModel? playerModel; [Inject] public required IDataService DataService { get; set; } @@ -17,30 +17,33 @@ namespace Blazor.Pages.Players private async Task HandleValidSubmit() { - playerModel.HashPassword(playerModel.HashedPassword); - - var formData = new List>(); - formData.Add(new KeyValuePair("nickname", playerModel.Nickname)); - formData.Add(new KeyValuePair("password", playerModel.HashedPassword)); + if (playerModel != null) + { + playerModel.HashPassword(playerModel.HashedPassword); - var formContent = new FormUrlEncodedContent(formData); + var formData = new List>(); + formData.Add(new KeyValuePair("nickname", playerModel.Nickname)); + formData.Add(new KeyValuePair("password", playerModel.HashedPassword)); - string apiUri =API.API_URL+"add/player/"+API.TOKEN; + var formContent = new FormUrlEncodedContent(formData); - using (var httpClient = new HttpClient()) - { - var response = await httpClient.PostAsync(apiUri, formContent); + string apiUri = API.API_URL + "add/player/" + API.TOKEN; - if (response.IsSuccessStatusCode) - { - var responseBody = await response.Content.ReadAsStringAsync(); - } - else + using (var httpClient = new HttpClient()) { - var errorResponse = await response.Content.ReadAsStringAsync(); + var response = await httpClient.PostAsync(apiUri, formContent); + + if (response.IsSuccessStatusCode) + { + var responseBody = await response.Content.ReadAsStringAsync(); + } + else + { + var errorResponse = await response.Content.ReadAsStringAsync(); + } } + NavigationManager.NavigateTo("players"); } - NavigationManager.NavigateTo("players"); } } } diff --git a/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs b/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs index 9602858..515e8a6 100644 --- a/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs +++ b/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs @@ -10,7 +10,7 @@ namespace Blazor.Pages.Players [Parameter] public int Id { get; set; } - private PlayerModel playerModel = new(); + private PlayerModel? playerModel; [Inject] public required IDataService DataService { get; set; } diff --git a/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs b/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs index 25ec7f7..df1de9c 100644 --- a/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs +++ b/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs @@ -9,7 +9,7 @@ namespace Blazor.Pages.Questions { public partial class AddQuestion { - private QuestionModel questionModel = new(); + private QuestionModel? questionModel; public List chapters = new(); @@ -50,50 +50,52 @@ namespace Blazor.Pages.Questions protected override async Task OnInitializedAsync() { var response = Http.GetFromJsonAsync(API.API_URL + "chapters/" + API.TOKEN).Result; - - chapters = new List(response); + if (response == null) chapters = new List(); + else chapters = new List(response); } private async void HandleValidSubmit() { - - await DataService.Add(questionModel); - - var formData = new List>(); - formData.Add(new KeyValuePair("content", questionModel.Content)); - formData.Add(new KeyValuePair("idchapter", questionModel.IdChapter.ToString())); - foreach (var answerModel in answerModels) - { - formData.Add(new KeyValuePair($"answercontent{answerModel.Id+1}", answerModel.Content)); - } - foreach (var checkbox in checkboxs) - { - if (checkbox.IsCorrect == true) - { - var idgood = checkbox.Id + 1; - formData.Add(new KeyValuePair("idanswergood", idgood.ToString())); - } + if (questionModel != null) + { + await DataService.Add(questionModel); + + var formData = new List>(); + formData.Add(new KeyValuePair("content", questionModel.Content)); + formData.Add(new KeyValuePair("idchapter", questionModel.IdChapter.ToString())); + foreach (var answerModel in answerModels) + { + formData.Add(new KeyValuePair($"answercontent{answerModel.Id + 1}", answerModel.Content)); + } + foreach (var checkbox in checkboxs) + { + if (checkbox.IsCorrect == true) + { + var idgood = checkbox.Id + 1; + formData.Add(new KeyValuePair("idanswergood", idgood.ToString())); + } + } + + + var formContent = new FormUrlEncodedContent(formData); + + string apiUri = API.API_URL + "add/question/" + API.TOKEN; + + using (var httpClient = new HttpClient()) + { + var response = await httpClient.PostAsync(apiUri, formContent); + + if (response.IsSuccessStatusCode) + { + var responseBody = await response.Content.ReadAsStringAsync(); + } + else + { + var errorResponse = await response.Content.ReadAsStringAsync(); + } + } + + NavigationManager.NavigateTo("questions"); } - - - var formContent = new FormUrlEncodedContent(formData); - - string apiUri = API.API_URL+"add/question/"+API.TOKEN; - - using (var httpClient = new HttpClient()) - { - var response = await httpClient.PostAsync(apiUri, formContent); - - if (response.IsSuccessStatusCode) - { - var responseBody = await response.Content.ReadAsStringAsync(); - } - else - { - var errorResponse = await response.Content.ReadAsStringAsync(); - } - } - - NavigationManager.NavigateTo("questions"); } } } diff --git a/Blazor/Blazor/Pages/Questions/EditQuestion.razor.cs b/Blazor/Blazor/Pages/Questions/EditQuestion.razor.cs index 897312c..cefdf7d 100644 --- a/Blazor/Blazor/Pages/Questions/EditQuestion.razor.cs +++ b/Blazor/Blazor/Pages/Questions/EditQuestion.razor.cs @@ -10,7 +10,7 @@ namespace Blazor.Pages.Questions [Parameter] public int Id { get; set; } - private QuestionModel questionModel = new(); + private QuestionModel? questionModel; [Inject] public required IDataService DataService { get; set; }