Ajoutez des fichiers projet.

This commit is contained in:
Namu
2025-11-25 22:40:10 +01:00
parent ade69a816b
commit 31c15c78bd
131 changed files with 65320 additions and 0 deletions

View File

@@ -0,0 +1,34 @@
@page "/school-subjects/creation"
@using WorkManagementTool.Services
@using WorkManagementTool.Data.Entities;
@inject SchoolSubjectService SchoolSubjectService
@inject NavigationManager NavigationManager
<h3>SchoolSubjectCreation</h3>
<form method="post" @onsubmit="Submit" @formname="school-subject-creation">
<AntiforgeryToken />
<div class="form-group">
<label for="name" class="form-label">Name</label>
<InputText class="form-control" @bind-value="Model!.Name" />
</div>
<div class="form-group">
<label for="description" class="form-label">Description</label>
<InputTextArea class="form-control" @bind-value="Model!.Description"></InputTextArea>
</div>
<button type="submit" class="btn btn-primary">Create School Subject</button>
</form>
@code {
[SupplyParameterFromForm]
private SchoolSubject? Model { get; set; }
protected override void OnInitialized() => Model ??= new();
private async Task Submit()
{
await SchoolSubjectService.AddSchoolSubjectAsync(Model!);
NavigationManager.NavigateTo("/school-subjects");
}
}

View File

@@ -0,0 +1,20 @@
@rendermode InteractiveServer
@using WorkManagementTool.Services
@inject SchoolSubjectService SchoolSubjectService
<button type="button" class="btn btn-danger" @onclick="Delete">-</button>
@code {
[Parameter]
public int Id { get; set; }
[Parameter]
public EventCallback<int> OnDeleted { get; set; }
private async Task Delete(MouseEventArgs e)
{
await SchoolSubjectService.DeleteSchoolSubjectAsync(Id);
await OnDeleted.InvokeAsync(Id);
}
}

View File

@@ -0,0 +1,43 @@
@page "/school-subjects/{Id:int}"
@using WorkManagementTool.Services
@using WorkManagementTool.Data.Entities;
@inject SchoolSubjectService SchoolSubjectService
<h3>SchoolSubject</h3>
@if (schoolSubject is null)
{
<p>School subject not found</p>
}
else
{
<dl>
<dh>Name</dh>
<dd>@schoolSubject.Name</dd>
@if (!string.IsNullOrWhiteSpace(schoolSubject.Description))
{
<dh>Description:</dh>
<dd>@schoolSubject.Description</dd>
}
<dh>Created At</dh>
<dd>@schoolSubject.CreatedAt.ToLocalTime()</dd>
<dh>Actions</dh>
</dl>
}
@code {
[Parameter]
public int Id { get; set; }
private SchoolSubject? schoolSubject;
protected override async Task OnInitializedAsync()
{
schoolSubject = await SchoolSubjectService.GetSchoolSubjectByIdAsync(Id);
}
}

View File

@@ -0,0 +1,47 @@
@page "/school-subjects"
@rendermode InteractiveServer
@using WorkManagementTool.Services
@using WorkManagementTool.Data.Entities;
@inject SchoolSubjectService SchoolSubjectService
<h3>SchoolSubjectListing</h3>
<div>
<NavLink class="btn btn-primary" href="school-subjects/creation" Match="NavLinkMatch.All">
Create
</NavLink>
</div>
@if (schoolSubjects.Count == 0)
{
<p>No school subjects found.</p>
}
else
{
<ul>
@foreach (var schoolSubject in schoolSubjects)
{
<SchoolSubjectDisplay Id="@schoolSubject.Id" />
<div class="btn-group">
<SchoolSubjectDeletion Id="@schoolSubject.Id" OnDeleted="HandleDeletion" />
</div>
}
</ul>
}
@code {
private List<SchoolSubject> schoolSubjects = new();
private async Task HandleDeletion(int deletedIt)
{
schoolSubjects.RemoveAll(s => s.Id == deletedIt);
StateHasChanged();
}
protected override async Task OnInitializedAsync()
{
schoolSubjects = await SchoolSubjectService.GetAllSchoolSubjectsAsync();
}
}