From 66fbaae2acd84e866861888f6f54309c312b7ca8 Mon Sep 17 00:00:00 2001 From: "Jade.VAN_BRABANDT" Date: Tue, 9 Jan 2024 13:09:56 +0100 Subject: [PATCH 1/8] CI : fix few codesmells --- .../Blazor/Pages/Admins/AddAdministrator.razor.cs | 6 +++--- .../Blazor/Pages/Admins/Administrators.razor.cs | 14 +++++++------- .../Pages/Admins/EditAdministrator.razor.cs | 10 +++++----- Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs | 6 +++--- Blazor/Blazor/Pages/Players/AddPlayer.razor.cs | 4 ++-- Blazor/Blazor/Pages/Players/EditPlayer.razor.cs | 6 +++--- Blazor/Blazor/Pages/Players/Players.razor.cs | 15 ++++++++------- .../Blazor/Pages/Questions/AddQuestion.razor.cs | 10 +++++----- 8 files changed, 36 insertions(+), 35 deletions(-) diff --git a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs index 23b3d6a..ab898b7 100644 --- a/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs +++ b/Blazor/Blazor/Pages/Admins/AddAdministrator.razor.cs @@ -9,13 +9,13 @@ namespace Blazor.Pages.Admins private AdministratorModel administratorModel = new(); [Inject] - public IDataService DataService { get; set; } + public required IDataService DataService { get; set; } [Inject] - public NavigationManager NavigationManager { get; set; } + public required NavigationManager NavigationManager { get; set; } [Inject] - public ILogger Logger { get; set; } + public required ILogger Logger { get; set; } private async Task HandleValidSubmit() diff --git a/Blazor/Blazor/Pages/Admins/Administrators.razor.cs b/Blazor/Blazor/Pages/Admins/Administrators.razor.cs index d99d06e..718a4f1 100644 --- a/Blazor/Blazor/Pages/Admins/Administrators.razor.cs +++ b/Blazor/Blazor/Pages/Admins/Administrators.razor.cs @@ -11,26 +11,26 @@ namespace Blazor.Pages.Admins; public partial class Administrators { - public List administrators; + public List administrators = new(); private int totalItem; [CascadingParameter] - public IModalService Modal { get; set; } + public required IModalService Modal { get; set; } [Inject] - public IDataService DataService { get; set; } + public required IDataService DataService { get; set; } [Inject] - public IWebHostEnvironment WebHostEnvironment { get; set; } + public required IWebHostEnvironment WebHostEnvironment { get; set; } [Inject] - public ILocalStorageService LocalStorage { get; set; } + public required ILocalStorageService LocalStorage { get; set; } [Inject] - public HttpClient Http { get; set; } + public required HttpClient Http { get; set; } [Inject] - public NavigationManager NavigationManager { get; set; } + public required NavigationManager NavigationManager { get; set; } private async Task OnReadData(DataGridReadDataEventArgs e) { diff --git a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs index 3d91c64..9384c34 100644 --- a/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs +++ b/Blazor/Blazor/Pages/Admins/EditAdministrator.razor.cs @@ -13,18 +13,18 @@ namespace Blazor.Pages.Admins private AdministratorModel administratorModel = new(); [Inject] - public IDataService DataService { get; set; } + public required IDataService DataService { get; set; } [Inject] - public NavigationManager NavigationManager { get; set; } + public required NavigationManager NavigationManager { get; set; } [Inject] - public IWebHostEnvironment WebHostEnvironment { get; set; } + public required IWebHostEnvironment WebHostEnvironment { get; set; } [Inject] - public ILogger Logger { get; set; } + public required ILogger Logger { get; set; } - private string OldAdminName { get; set; } + private string OldAdminName { get; set; } = ""; protected override async Task OnInitializedAsync() { diff --git a/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs b/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs index 098045b..731ea73 100644 --- a/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs +++ b/Blazor/Blazor/Pages/Chapters/AddChapter.razor.cs @@ -9,13 +9,13 @@ public partial class AddChapter private ChapterModel chapterModel = new(); [Inject] - public IDataService DataService { get; set; } + public required IDataService DataService { get; set; } [Inject] - public NavigationManager NavigationManager { get; set; } + public required NavigationManager NavigationManager { get; set; } [Inject] - public ILogger Logger { get; set; } + public required ILogger Logger { get; set; } diff --git a/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs b/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs index e46e775..02aa732 100644 --- a/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs +++ b/Blazor/Blazor/Pages/Players/AddPlayer.razor.cs @@ -9,10 +9,10 @@ namespace Blazor.Pages.Players private PlayerModel playerModel = new(); [Inject] - public IDataService DataService { get; set; } + public required IDataService DataService { get; set; } [Inject] - public NavigationManager NavigationManager { get; set; } + public required NavigationManager NavigationManager { get; set; } private async Task HandleValidSubmit() diff --git a/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs b/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs index 1dd4d4a..9602858 100644 --- a/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs +++ b/Blazor/Blazor/Pages/Players/EditPlayer.razor.cs @@ -13,13 +13,13 @@ namespace Blazor.Pages.Players private PlayerModel playerModel = new(); [Inject] - public IDataService DataService { get; set; } + public required IDataService DataService { get; set; } [Inject] - public NavigationManager NavigationManager { get; set; } + public required NavigationManager NavigationManager { get; set; } [Inject] - public IWebHostEnvironment WebHostEnvironment { get; set; } + public required IWebHostEnvironment WebHostEnvironment { get; set; } protected override async Task OnInitializedAsync() { diff --git a/Blazor/Blazor/Pages/Players/Players.razor.cs b/Blazor/Blazor/Pages/Players/Players.razor.cs index 5035e2e..36a5214 100644 --- a/Blazor/Blazor/Pages/Players/Players.razor.cs +++ b/Blazor/Blazor/Pages/Players/Players.razor.cs @@ -17,23 +17,24 @@ public partial class Players private int totalPlayer; [Inject] - public NavigationManager NavigationManager { get; set; } + public required NavigationManager NavigationManager { get; set; } [CascadingParameter] - public IModalService Modal { get; set; } + public required IModalService Modal { get; set; } [Inject] - public IDataService DataService { get; set; } - public IWebHostEnvironment WebHostEnvironment { get; set; } + public required IDataService DataService { get; set; } + [Inject] + public required IWebHostEnvironment WebHostEnvironment { get; set; } [Inject] - public HttpClient Http { get; set; } + public required HttpClient Http { get; set; } [Inject] - public ILocalStorageService LocalStorage { get; set; } + public required ILocalStorageService LocalStorage { get; set; } [Inject] - public IJSRuntime IJSRuntime { get; set; } + public required IJSRuntime IJSRuntime { get; set; } private async void OnDelete(int id) { diff --git a/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs b/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs index 93906bd..25ec7f7 100644 --- a/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs +++ b/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs @@ -11,11 +11,11 @@ namespace Blazor.Pages.Questions { private QuestionModel questionModel = new(); - public List chapters; + public List chapters = new(); - private List answerModels; + private List answerModels = new(); - public List checkboxs; + public List checkboxs = new(); [Inject] public required IDataService DataService { get; set; } @@ -24,10 +24,10 @@ namespace Blazor.Pages.Questions public required NavigationManager NavigationManager { get; set; } [Inject] - public HttpClient Http { get; set; } + public required HttpClient Http { get; set; } [Inject] - public ILogger Logger { get; set; } + public required ILogger Logger { get; set; } public class Checkbox { public int Id { get; set; } From fd7a1dcac731753474220634a1ea1d610f1191ba Mon Sep 17 00:00:00 2001 From: "Jade.VAN_BRABANDT" Date: Tue, 9 Jan 2024 14:29:40 +0100 Subject: [PATCH 2/8] 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; } From 8030adee075bb54d5c1a8ce80b18de2614d725b3 Mon Sep 17 00:00:00 2001 From: "Jade.VAN_BRABANDT" Date: Tue, 9 Jan 2024 14:33:00 +0100 Subject: [PATCH 3/8] CI : Bug --- Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs b/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs index df1de9c..d1be963 100644 --- a/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs +++ b/Blazor/Blazor/Pages/Questions/AddQuestion.razor.cs @@ -53,7 +53,7 @@ namespace Blazor.Pages.Questions if (response == null) chapters = new List(); else chapters = new List(response); } - private async void HandleValidSubmit() + private async Task HandleValidSubmit() { if (questionModel != null) { From 6166a5efec39a601883ab0c9094742fe54cdbb3d Mon Sep 17 00:00:00 2001 From: Jade VAN BRABANDT Date: Tue, 9 Jan 2024 14:46:03 +0100 Subject: [PATCH 4/8] CI : Trying to implement test --- .drone.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index 05bc48e..feccd31 100755 --- a/.drone.yml +++ b/.drone.yml @@ -25,12 +25,13 @@ steps: - name: code-analysis image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dronesonarplugin-dotnet7 commands: - - echo $$PLUGIN_SONAR_TOKEN - - echo $$PLUGIN_SONAR_HOST - cd Blazor/ - dotnet restore Blazor.sln + - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${sonar_host} /d:sonar.login=$${sonar_token} /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml" - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} - dotnet build Blazor.sln -c Release --no-restore + - dotnet test Test.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage" + - reportgenerator -reports:"**/coverage.cobertura.xml" -reporttypes:SonarQube -targetdir:"coveragereport" -verbosity:Verbose - dotnet publish Blazor.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release - dotnet sonarscanner end /d:sonar.login=$${PLUGIN_SONAR_TOKEN} secrets: [ PLUGIN_SONAR_TOKEN ] From 70b66ca7796c426bb499a468e3863dbfcc698a16 Mon Sep 17 00:00:00 2001 From: Jade VAN BRABANDT Date: Tue, 9 Jan 2024 14:47:51 +0100 Subject: [PATCH 5/8] CI : Trying to implement test --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index feccd31..9121208 100755 --- a/.drone.yml +++ b/.drone.yml @@ -27,7 +27,7 @@ steps: commands: - cd Blazor/ - dotnet restore Blazor.sln - - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${sonar_host} /d:sonar.login=$${sonar_token} /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml" + - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml" - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} - dotnet build Blazor.sln -c Release --no-restore - dotnet test Test.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage" From 6a72dbe4e6efe2e789a2a8103862f5151bd28c72 Mon Sep 17 00:00:00 2001 From: Jade VAN BRABANDT Date: Tue, 9 Jan 2024 14:50:14 +0100 Subject: [PATCH 6/8] CI : Trying to implement test --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 9121208..fa3c0bf 100755 --- a/.drone.yml +++ b/.drone.yml @@ -30,7 +30,7 @@ steps: - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml" - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} - dotnet build Blazor.sln -c Release --no-restore - - dotnet test Test.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage" + - dotnet test Blazor.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage" - reportgenerator -reports:"**/coverage.cobertura.xml" -reporttypes:SonarQube -targetdir:"coveragereport" -verbosity:Verbose - dotnet publish Blazor.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release - dotnet sonarscanner end /d:sonar.login=$${PLUGIN_SONAR_TOKEN} From 02393bfc18268ce4bb0627de1151c0f21045a770 Mon Sep 17 00:00:00 2001 From: Jade VAN BRABANDT Date: Tue, 9 Jan 2024 15:20:29 +0100 Subject: [PATCH 7/8] CI : Trying to implement test --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index fa3c0bf..d34edda 100755 --- a/.drone.yml +++ b/.drone.yml @@ -31,7 +31,7 @@ steps: - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} - dotnet build Blazor.sln -c Release --no-restore - dotnet test Blazor.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage" - - reportgenerator -reports:"**/coverage.cobertura.xml" -reporttypes:SonarQube -targetdir:"coveragereport" -verbosity:Verbose + - reportgenerator -reports:"/coverage.cobertura.xml" -reporttypes:SonarQube -targetdir:"coveragereport" -verbosity:Verbose - dotnet publish Blazor.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release - dotnet sonarscanner end /d:sonar.login=$${PLUGIN_SONAR_TOKEN} secrets: [ PLUGIN_SONAR_TOKEN ] From f3fc1794d1a01f6ff94892b6b3a334546ee2fa3d Mon Sep 17 00:00:00 2001 From: Jade VAN BRABANDT Date: Tue, 9 Jan 2024 15:25:52 +0100 Subject: [PATCH 8/8] CI : Trying to implement test --- .drone.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index d34edda..53d61fd 100755 --- a/.drone.yml +++ b/.drone.yml @@ -19,7 +19,10 @@ steps: commands: - cd Blazor/ - dotnet restore Blazor.sln - - dotnet test Blazor.sln --no-restore + - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} + - dotnet test Blazor.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage" + - reportgenerator -reports:"/coverage.cobertura.xml" -reporttypes:SonarQube -targetdir:"coveragereport" -verbosity:Verbose + depends_on: [build] - name: code-analysis @@ -27,11 +30,8 @@ steps: commands: - cd Blazor/ - dotnet restore Blazor.sln - - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} /d:sonar.coverageReportPaths="coveragereport/SonarQube.xml" - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} - dotnet build Blazor.sln -c Release --no-restore - - dotnet test Blazor.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage" - - reportgenerator -reports:"/coverage.cobertura.xml" -reporttypes:SonarQube -targetdir:"coveragereport" -verbosity:Verbose - dotnet publish Blazor.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release - dotnet sonarscanner end /d:sonar.login=$${PLUGIN_SONAR_TOKEN} secrets: [ PLUGIN_SONAR_TOKEN ]