fix : conflit et acces a ajouter

Multiplayer_Php
Maxence GUITARD 1 year ago
commit a602557620

@ -19,14 +19,15 @@ steps:
commands: commands:
- cd Blazor/ - cd Blazor/
- dotnet restore Blazor.sln - 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] depends_on: [build]
- name: code-analysis - name: code-analysis
image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dronesonarplugin-dotnet7 image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dronesonarplugin-dotnet7
commands: commands:
- echo $$PLUGIN_SONAR_TOKEN
- echo $$PLUGIN_SONAR_HOST
- cd Blazor/ - cd Blazor/
- dotnet restore Blazor.sln - dotnet restore Blazor.sln
- dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN} - dotnet sonarscanner begin /k:MuscuMaths /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN}

@ -15,10 +15,10 @@ namespace Blazor.Components
public Question question = new(); public Question question = new();
private List<Answer> answers = new(); private List<Answer> answers = new();
public List<Question> questions; public List<Question> questions = new();
[Inject] [Inject]
public HttpClient Http { get; set; } public required HttpClient Http { get; set; }
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {

@ -9,22 +9,14 @@ namespace Blazor.Modals
public partial class DeleteConfirmation public partial class DeleteConfirmation
{ {
[CascadingParameter] [CascadingParameter]
public BlazoredModalInstance ModalInstance { get; set; } public required BlazoredModalInstance ModalInstance { get; set; }
[Inject] [Inject]
public IDataService DataService { get; set; } public required IDataService DataService { get; set; }
[Parameter] [Parameter]
public int Id { get; set; } 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() void ConfirmDelete()
{ {
ModalInstance.CloseAsync(ModalResult.Ok(true)); ModalInstance.CloseAsync(ModalResult.Ok(true));

@ -8,8 +8,8 @@ namespace Blazor.Models;
public class AdministratorModel public class AdministratorModel
{ {
public int Id { get; set; } public int Id { get; set; }
public string Username { get; set; } public required string Username { get; set; }
public string HashedPassword { get; set; } public required string HashedPassword { get; set; }
public void HashPassword(string password) public void HashPassword(string password)
{ {

@ -4,8 +4,8 @@ public class AnswerModel
{ {
public int Id { get; set; } public int Id { get; set; }
public string Content { get; set; } public string? Content { get; set; }
public int IdQuestion { get; set; } public int? IdQuestion { get; set; }
public AnswerModel(int id) public AnswerModel(int id)
{ {
Id = id; Id = id;

@ -8,6 +8,6 @@ namespace Blazor.Models
[Required(ErrorMessage = "Name is required")] [Required(ErrorMessage = "Name is required")]
[StringLength(50, ErrorMessage = "Name is too long.")] [StringLength(50, ErrorMessage = "Name is too long.")]
public string Name { get; set; } public required string Name { get; set; }
} }
} }

@ -7,8 +7,8 @@ namespace Blazor.Models;
public class PlayerModel public class PlayerModel
{ {
public int Id { get; set; } public int Id { get; set; }
public string Nickname { get; set; } public required string Nickname { get; set; }
public string HashedPassword { get; set; } public required string HashedPassword { get; set; }
public void HashPassword(string password) public void HashPassword(string password)
{ {

@ -3,13 +3,12 @@
public class QuestionModel public class QuestionModel
{ {
public int Id { get; set; } public int Id { get; set; }
public string Content { get; set; } public required string Content { get; set; }
public int IdChapter { get; set; } public int IdChapter { get; set; }
public int? IdAnswerGood { get; set; } public int IdAnswerGood { get; set; }
public int Difficulty { get; set; } public int Difficulty { get; set; }
public int NbFails { get; set; } public int NbFails { get; set; }
public void addFails(int nb) { NbFails += nb; } public void addFails(int nb) { NbFails += nb; }
public void removeFails(int nb) { NbFails -= nb; } public void removeFails(int nb) { NbFails -= nb; }
} }

@ -2,7 +2,6 @@
@using Blazor.Models @using Blazor.Models
<h3>AddAdministrator</h3> <h3>AddAdministrator</h3>
<EditForm Model="@administratorModel" OnValidSubmit="@HandleValidSubmit"> <EditForm Model="@administratorModel" OnValidSubmit="@HandleValidSubmit">
<DataAnnotationsValidator /> <DataAnnotationsValidator />
<ValidationSummary /> <ValidationSummary />

@ -6,19 +6,21 @@ namespace Blazor.Pages.Admins
{ {
public partial class AddAdministrator public partial class AddAdministrator
{ {
private AdministratorModel administratorModel = new(); private AdministratorModel? administratorModel;
[Inject] [Inject]
public IDataService DataService { get; set; } public required IDataService DataService { get; set; }
[Inject] [Inject]
public NavigationManager NavigationManager { get; set; } public required NavigationManager NavigationManager { get; set; }
[Inject] [Inject]
public ILogger<AddAdministrator> Logger { get; set; } public required ILogger<AddAdministrator> Logger { get; set; }
private async Task HandleValidSubmit() private async Task HandleValidSubmit()
{
if (administratorModel != null)
{ {
administratorModel.HashPassword(administratorModel.HashedPassword); administratorModel.HashPassword(administratorModel.HashedPassword);
@ -28,7 +30,7 @@ namespace Blazor.Pages.Admins
var formContent = new FormUrlEncodedContent(formData); var formContent = new FormUrlEncodedContent(formData);
string apiUri = API.API_URL+"add/administrator/"+API.TOKEN; string apiUri = API.API_URL + "add/administrator/" + API.TOKEN;
using (var httpClient = new HttpClient()) using (var httpClient = new HttpClient())
{ {
@ -49,4 +51,5 @@ namespace Blazor.Pages.Admins
NavigationManager.NavigateTo("administrators"); NavigationManager.NavigateTo("administrators");
} }
} }
}
} }

@ -11,26 +11,26 @@ namespace Blazor.Pages.Admins;
public partial class Administrators public partial class Administrators
{ {
public List<Administrator> administrators; public List<Administrator> administrators = new();
private int totalItem; private int totalItem;
[CascadingParameter] [CascadingParameter]
public IModalService Modal { get; set; } public required IModalService Modal { get; set; }
[Inject] [Inject]
public IDataService DataService { get; set; } public required IDataService DataService { get; set; }
[Inject] [Inject]
public IWebHostEnvironment WebHostEnvironment { get; set; } public required IWebHostEnvironment WebHostEnvironment { get; set; }
[Inject] [Inject]
public ILocalStorageService LocalStorage { get; set; } public required ILocalStorageService LocalStorage { get; set; }
[Inject] [Inject]
public HttpClient Http { get; set; } public required HttpClient Http { get; set; }
[Inject] [Inject]
public NavigationManager NavigationManager { get; set; } public required NavigationManager NavigationManager { get; set; }
private async Task OnReadData(DataGridReadDataEventArgs<Administrator> e) private async Task OnReadData(DataGridReadDataEventArgs<Administrator> e)
{ {
@ -41,7 +41,7 @@ public partial class Administrators
var response = Http.GetFromJsonAsync<Administrator[]>(API.API_URL+"administrators/"+API.TOKEN).Result; var response = Http.GetFromJsonAsync<Administrator[]>(API.API_URL+"administrators/"+API.TOKEN).Result;
if (!e.CancellationToken.IsCancellationRequested) if (!e.CancellationToken.IsCancellationRequested && response != null)
{ {
administrators = new List<Administrator>(response); // an actual data for the current page administrators = new List<Administrator>(response); // an actual data for the current page
totalItem = administrators.Count; totalItem = administrators.Count;

@ -10,21 +10,21 @@ namespace Blazor.Pages.Admins
[Parameter] [Parameter]
public int Id { get; set; } public int Id { get; set; }
private AdministratorModel administratorModel = new(); private AdministratorModel? administratorModel;
[Inject] [Inject]
public IDataService DataService { get; set; } public required IDataService DataService { get; set; }
[Inject] [Inject]
public NavigationManager NavigationManager { get; set; } public required NavigationManager NavigationManager { get; set; }
[Inject] [Inject]
public IWebHostEnvironment WebHostEnvironment { get; set; } public required IWebHostEnvironment WebHostEnvironment { get; set; }
[Inject] [Inject]
public ILogger<EditAdministrator> Logger { get; set; } public required ILogger<EditAdministrator> Logger { get; set; }
private string OldAdminName { get; set; } private string OldAdminName { get; set; } = "";
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
@ -40,6 +40,8 @@ namespace Blazor.Pages.Admins
} }
private async Task HandleValidSubmit() private async Task HandleValidSubmit()
{
if (administratorModel != null)
{ {
administratorModel.HashPassword(administratorModel.HashedPassword); administratorModel.HashPassword(administratorModel.HashedPassword);
@ -49,7 +51,7 @@ namespace Blazor.Pages.Admins
var formContent = new FormUrlEncodedContent(formData); var formContent = new FormUrlEncodedContent(formData);
string apiUri = API.API_URL+"update/administrator/" + administratorModel.Id + "/" + API.TOKEN; string apiUri = API.API_URL + "update/administrator/" + administratorModel.Id + "/" + API.TOKEN;
using (var httpClient = new HttpClient()) using (var httpClient = new HttpClient())
{ {
@ -65,9 +67,10 @@ namespace Blazor.Pages.Admins
} }
} }
Logger.LogInformation("Admin '{OldAdminModelName}' edited in '{NewAdminModelName}'",OldAdminName,administratorModel.Username); Logger.LogInformation("Admin '{OldAdminModelName}' edited in '{NewAdminModelName}'", OldAdminName, administratorModel.Username);
NavigationManager.NavigateTo("administrators"); NavigationManager.NavigateTo("administrators");
} }
} }
}
} }

@ -6,20 +6,22 @@ namespace Blazor.Pages.Chapters;
public partial class AddChapter public partial class AddChapter
{ {
private ChapterModel chapterModel = new(); private ChapterModel? chapterModel;
[Inject] [Inject]
public IDataService DataService { get; set; } public required IDataService DataService { get; set; }
[Inject] [Inject]
public NavigationManager NavigationManager { get; set; } public required NavigationManager NavigationManager { get; set; }
[Inject] [Inject]
public ILogger<AddChapter> Logger { get; set; } public required ILogger<AddChapter> Logger { get; set; }
private async Task HandleValidSubmit() private async Task HandleValidSubmit()
{
if (chapterModel != null)
{ {
var formData = new List<KeyValuePair<string, string>>(); var formData = new List<KeyValuePair<string, string>>();
formData.Add(new KeyValuePair<string, string>("name", chapterModel.Name)); formData.Add(new KeyValuePair<string, string>("name", chapterModel.Name));
@ -27,7 +29,7 @@ public partial class AddChapter
var formContent = new FormUrlEncodedContent(formData); var formContent = new FormUrlEncodedContent(formData);
string apiUri = API.API_URL+"add/chapter/"+API.TOKEN; string apiUri = API.API_URL + "add/chapter/" + API.TOKEN;
using (var httpClient = new HttpClient()) using (var httpClient = new HttpClient())
{ {
@ -43,10 +45,10 @@ public partial class AddChapter
} }
} }
Logger.LogInformation("Chapter '{chapterModelName}' added",chapterModel.Name); Logger.LogInformation("Chapter '{chapterModelName}' added", chapterModel.Name);
NavigationManager.NavigateTo("chapters"); NavigationManager.NavigateTo("chapters");
}
} }
} }

@ -9,7 +9,7 @@ public partial class EditChapter
[Parameter] [Parameter]
public int Id { get; set; } public int Id { get; set; }
private ChapterModel chapterModel = new(); private ChapterModel? chapterModel;
[Inject] [Inject]
public IDataService DataService { get; set; } public IDataService DataService { get; set; }

@ -6,16 +6,18 @@ namespace Blazor.Pages.Players
{ {
public partial class AddPlayer public partial class AddPlayer
{ {
private PlayerModel playerModel = new(); private PlayerModel? playerModel;
[Inject] [Inject]
public IDataService DataService { get; set; } public required IDataService DataService { get; set; }
[Inject] [Inject]
public NavigationManager NavigationManager { get; set; } public required NavigationManager NavigationManager { get; set; }
private async Task HandleValidSubmit() private async Task HandleValidSubmit()
{
if (playerModel != null)
{ {
playerModel.HashPassword(playerModel.HashedPassword); playerModel.HashPassword(playerModel.HashedPassword);
@ -25,7 +27,7 @@ namespace Blazor.Pages.Players
var formContent = new FormUrlEncodedContent(formData); var formContent = new FormUrlEncodedContent(formData);
string apiUri =API.API_URL+"add/player/"+API.TOKEN; string apiUri = API.API_URL + "add/player/" + API.TOKEN;
using (var httpClient = new HttpClient()) using (var httpClient = new HttpClient())
{ {
@ -43,4 +45,5 @@ namespace Blazor.Pages.Players
NavigationManager.NavigateTo("players"); NavigationManager.NavigateTo("players");
} }
} }
}
} }

@ -10,16 +10,16 @@ namespace Blazor.Pages.Players
[Parameter] [Parameter]
public int Id { get; set; } public int Id { get; set; }
private PlayerModel playerModel = new(); private PlayerModel? playerModel;
[Inject] [Inject]
public IDataService DataService { get; set; } public required IDataService DataService { get; set; }
[Inject] [Inject]
public NavigationManager NavigationManager { get; set; } public required NavigationManager NavigationManager { get; set; }
[Inject] [Inject]
public IWebHostEnvironment WebHostEnvironment { get; set; } public required IWebHostEnvironment WebHostEnvironment { get; set; }
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {

@ -17,23 +17,24 @@ public partial class Players
private int totalPlayer; private int totalPlayer;
[Inject] [Inject]
public NavigationManager NavigationManager { get; set; } public required NavigationManager NavigationManager { get; set; }
[CascadingParameter] [CascadingParameter]
public IModalService Modal { get; set; } public required IModalService Modal { get; set; }
[Inject] [Inject]
public IDataService DataService { get; set; } public required IDataService DataService { get; set; }
public IWebHostEnvironment WebHostEnvironment { get; set; } [Inject]
public required IWebHostEnvironment WebHostEnvironment { get; set; }
[Inject] [Inject]
public HttpClient Http { get; set; } public required HttpClient Http { get; set; }
[Inject] [Inject]
public ILocalStorageService LocalStorage { get; set; } public required ILocalStorageService LocalStorage { get; set; }
[Inject] [Inject]
public IJSRuntime IJSRuntime { get; set; } public required IJSRuntime IJSRuntime { get; set; }
private async void OnDelete(int id) private async void OnDelete(int id)
{ {

@ -9,13 +9,13 @@ namespace Blazor.Pages.Questions
{ {
public partial class AddQuestion public partial class AddQuestion
{ {
private QuestionModel questionModel = new(); private QuestionModel? questionModel;
public List<Chapter> chapters; public List<Chapter> chapters = new();
private List<AnswerModel> answerModels; private List<AnswerModel> answerModels = new();
private List<Checkbox> checkboxs; public List<Checkbox> checkboxs = new();
[Inject] [Inject]
public required IDataService DataService { get; set; } public required IDataService DataService { get; set; }
@ -24,10 +24,10 @@ namespace Blazor.Pages.Questions
public required NavigationManager NavigationManager { get; set; } public required NavigationManager NavigationManager { get; set; }
[Inject] [Inject]
public HttpClient Http { get; set; } public required HttpClient Http { get; set; }
[Inject] [Inject]
public ILogger<AddAdministrator> Logger { get; set; } public required ILogger<AddAdministrator> Logger { get; set; }
public class Checkbox public class Checkbox
{ {
public int Id { get; set; } public int Id { get; set; }
@ -50,9 +50,17 @@ namespace Blazor.Pages.Questions
checkboxs.Add(new Checkbox(i)); checkboxs.Add(new Checkbox(i));
} }
} }
private async void HandleValidSubmit()
{
protected override async Task OnInitializedAsync()
{
var response = Http.GetFromJsonAsync<Chapter[]>(API.API_URL + "chapters/" + API.TOKEN).Result;
if (response == null) chapters = new List<Chapter>();
else chapters = new List<Chapter>(response);
}
private async Task HandleValidSubmit()
{
if (questionModel != null)
{
await DataService.Add(questionModel); await DataService.Add(questionModel);
var formData = new List<KeyValuePair<string, string>>(); var formData = new List<KeyValuePair<string, string>>();
@ -75,7 +83,7 @@ namespace Blazor.Pages.Questions
var formContent = new FormUrlEncodedContent(formData); var formContent = new FormUrlEncodedContent(formData);
string apiUri = API.API_URL+"add/question/"+API.TOKEN; string apiUri = API.API_URL + "add/question/" + API.TOKEN;
using (var httpClient = new HttpClient()) using (var httpClient = new HttpClient())
{ {
@ -94,4 +102,5 @@ namespace Blazor.Pages.Questions
NavigationManager.NavigateTo("questions"); NavigationManager.NavigateTo("questions");
} }
} }
}
} }

@ -11,7 +11,7 @@ namespace Blazor.Pages.Questions
[Parameter] [Parameter]
public int Id { get; set; } public int Id { get; set; }
private QuestionModel questionModel = new(); private QuestionModel? questionModel;
[Inject] [Inject]
public required IDataService DataService { get; set; } public required IDataService DataService { get; set; }

Loading…
Cancel
Save