diff --git a/WorkManagementTool/Components/Homework/HomeworkDeletion.razor b/WorkManagementTool/Components/Homework/HomeworkDeletion.razor
new file mode 100644
index 0000000..40eec88
--- /dev/null
+++ b/WorkManagementTool/Components/Homework/HomeworkDeletion.razor
@@ -0,0 +1,21 @@
+@using Microsoft.AspNetCore.Authorization
+@attribute [Authorize]
+@using WorkManagementTool.Services
+@using WorkManagementTool.Data.Entities
+@inject HomeworkService HomeworkService
+
+
+
+@code {
+ [Parameter]
+ public int HomeworkId { get; set; }
+
+ [Parameter]
+ public EventCallback OnDeleted { get; set; }
+
+ private async Task Delete(MouseEventArgs e)
+ {
+ await HomeworkService.DeleteHomeworkAsync(HomeworkId);
+ await OnDeleted.InvokeAsync(HomeworkId);
+ }
+}
diff --git a/WorkManagementTool/Components/SchoolSubject/SchoolSubjectDeletion.razor b/WorkManagementTool/Components/SchoolSubject/SchoolSubjectDeletion.razor
index 4307f2d..99f64b6 100644
--- a/WorkManagementTool/Components/SchoolSubject/SchoolSubjectDeletion.razor
+++ b/WorkManagementTool/Components/SchoolSubject/SchoolSubjectDeletion.razor
@@ -5,7 +5,10 @@
@using WorkManagementTool.Services
@inject SchoolSubjectService SchoolSubjectService
-
+@if (!hasHomeworks)
+{
+
+}
@code {
[Parameter]
@@ -14,6 +17,16 @@
[Parameter]
public EventCallback OnDeleted { get; set; }
+ private bool hasHomeworks;
+
+ protected override async Task OnInitializedAsync()
+ {
+ var schoolSubject = await SchoolSubjectService.GetSchoolSubjectByIdAsync(Id);
+
+ hasHomeworks = schoolSubject is not null
+ && schoolSubject.Homeworks?.Count > 0;
+ }
+
private async Task Delete(MouseEventArgs e)
{
await SchoolSubjectService.DeleteSchoolSubjectAsync(Id);
diff --git a/WorkManagementTool/Data/Entities/SchoolSubject.cs b/WorkManagementTool/Data/Entities/SchoolSubject.cs
index 61766ed..2353464 100644
--- a/WorkManagementTool/Data/Entities/SchoolSubject.cs
+++ b/WorkManagementTool/Data/Entities/SchoolSubject.cs
@@ -13,5 +13,6 @@ namespace WorkManagementTool.Data.Entities
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
public bool Deleted { get; set; } = false;
public ApplicationUser CreatedBy { get; set; } = null!;
+ public List? Homeworks { get; set; }
}
}
diff --git a/WorkManagementTool/Services/SchoolSubjectService.cs b/WorkManagementTool/Services/SchoolSubjectService.cs
index e69f40e..7fa02b5 100644
--- a/WorkManagementTool/Services/SchoolSubjectService.cs
+++ b/WorkManagementTool/Services/SchoolSubjectService.cs
@@ -20,7 +20,10 @@ namespace WorkManagementTool.Services
public async Task GetSchoolSubjectByIdAsync(int id)
{
- return await _context.SchoolSubjects.FindAsync(id);
+ return await _context.SchoolSubjects
+ .Include(i => i.Homeworks)
+ .Where(w => w.Id == id)
+ .FirstOrDefaultAsync();
}
public async Task AddSchoolSubjectAsync(SchoolSubject subject)
diff --git a/WorkManagementTool/work_management.db-shm b/WorkManagementTool/work_management.db-shm
index 96f633c..690ee14 100644
Binary files a/WorkManagementTool/work_management.db-shm and b/WorkManagementTool/work_management.db-shm differ
diff --git a/WorkManagementTool/work_management.db-wal b/WorkManagementTool/work_management.db-wal
index ee497b8..010feb5 100644
Binary files a/WorkManagementTool/work_management.db-wal and b/WorkManagementTool/work_management.db-wal differ