From 579c95b91feab0bea765f3f92037d9059934b5af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Gy=C3=B6rgy=20Gallik?= Date: Fri, 13 Sep 2024 10:49:35 +0200 Subject: [PATCH 01/12] fix: redirect after login --- .../Pages/Authentication.razor | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/grade-management-new/GradeManagement.Client/Pages/Authentication.razor b/grade-management-new/GradeManagement.Client/Pages/Authentication.razor index 71e2db91..41e3409c 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Authentication.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Authentication.razor @@ -1,7 +1,19 @@ @page "/authentication/{action}" @using Microsoft.AspNetCore.Components.WebAssembly.Authentication +@inject NavigationManager Navigation + @code{ [Parameter] public string? Action { get; set; } + + protected override void OnInitialized() + { + if (Action == "login-callback") + { + // Call backend for user data + Navigation.NavigateTo("/"); + } + } + } From e25d80ba518fa657a44e1c7a0bca752a7ff3e286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Gy=C3=B6rgy=20Gallik?= Date: Fri, 13 Sep 2024 10:53:11 +0200 Subject: [PATCH 02/12] fix: issue#38 --- .../GradeManagement.Client/Pages/Subjects.razor | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/grade-management-new/GradeManagement.Client/Pages/Subjects.razor b/grade-management-new/GradeManagement.Client/Pages/Subjects.razor index c2bf7777..8a002afe 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Subjects.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Subjects.razor @@ -16,7 +16,8 @@ - + + From 593eaae15e65008dcad39dd7df98d8a36da33307 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Gy=C3=B6rgy=20Gallik?= Date: Fri, 13 Sep 2024 10:55:32 +0200 Subject: [PATCH 03/12] fix: issue#37 Neptun code length --- .../Components/NewDialogs/NewSubjectDialog.razor | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grade-management-new/GradeManagement.Client/Components/NewDialogs/NewSubjectDialog.razor b/grade-management-new/GradeManagement.Client/Components/NewDialogs/NewSubjectDialog.razor index 3d542816..6e745a8b 100644 --- a/grade-management-new/GradeManagement.Client/Components/NewDialogs/NewSubjectDialog.razor +++ b/grade-management-new/GradeManagement.Client/Components/NewDialogs/NewSubjectDialog.razor @@ -41,8 +41,8 @@ private IEnumerable NeptunCodeValidator(string pw) { - if (pw.Length != 6) - yield return "Neptun code should be exactly 6 characters long."; + if (pw.Length != 11) + yield return "Neptun code should be exactly 11 characters long."; } } From 3fc2fc8870a1761a043b152a5191fca567b985af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Gy=C3=B6rgy=20Gallik?= Date: Fri, 13 Sep 2024 11:09:05 +0200 Subject: [PATCH 04/12] fix: issue#51 card removal --- .../Pages/SingleCourse.razor | 61 ++++++++----------- 1 file changed, 27 insertions(+), 34 deletions(-) diff --git a/grade-management-new/GradeManagement.Client/Pages/SingleCourse.razor b/grade-management-new/GradeManagement.Client/Pages/SingleCourse.razor index ec2ab970..f356972b 100644 --- a/grade-management-new/GradeManagement.Client/Pages/SingleCourse.razor +++ b/grade-management-new/GradeManagement.Client/Pages/SingleCourse.razor @@ -10,40 +10,33 @@ @inject GroupClient GroupClient - - - - @_course.Name - - - - - - @_course.MoodleCourseId - - - @_course.Semester.Name - - - @_course.Language.Name - - - - Exercises: - - New Exercise - - - - - Groups: - - New Group - - - - - + @_course.Name + + + + @_course.MoodleCourseId + + + @_course.Semester.Name + + + @_course.Language.Name + + + + Exercises: + + New Exercise + + + + + Groups: + + New Group + + + @code { From 7ec045e355356001c61fec0dbde5d9c9d2eb1a41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Gy=C3=B6rgy=20Gallik?= Date: Fri, 13 Sep 2024 11:21:57 +0200 Subject: [PATCH 05/12] fix: issue#50: course details --- .../GradeManagement.Client/Pages/Courses.razor | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/grade-management-new/GradeManagement.Client/Pages/Courses.razor b/grade-management-new/GradeManagement.Client/Pages/Courses.razor index edcbcbab..4730f80a 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Courses.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Courses.razor @@ -11,8 +11,20 @@ @inject NavigationManager NavigationManager + + + - + From 43016de30793e937121c5fc2698756b0d446e906 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Gy=C3=B6rgy=20Gallik?= Date: Fri, 13 Sep 2024 11:35:57 +0200 Subject: [PATCH 06/12] fix: issue#49 Teacher edit type --- .../Pages/Teachers.razor | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/grade-management-new/GradeManagement.Client/Pages/Teachers.razor b/grade-management-new/GradeManagement.Client/Pages/Teachers.razor index efa60b37..b441ff8f 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Teachers.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Teachers.razor @@ -18,7 +18,14 @@ - + + + @context.Item.Type + + + + + @@ -38,7 +45,7 @@ { var user = result.Data as User; user = await UserClient.CreateAsync(user); - SnackbarService.ShowMessage("user id:" + user.Id); + //SnackbarService.ShowMessage("user id:" + user.Id); var subject = SubjectService.CurrentSubject; //await SubjectClient.AddTeacherToSubjectAsync(subject.Id, user.Id); _teachers.Add(user); @@ -71,7 +78,12 @@ { await UserClient.UpdateAsync(items.Id, items); SnackbarService.ShowEditSuccess(); - await loadingComponentRef.StartLoading(); + // Run the StartLoading method asynchronously after a short delay + _ = Task.Run(async () => + { + await Task.Delay(1); // Delay for 100 milliseconds + await loadingComponentRef.StartLoading(); + }); } private async Task DeleteItem(User item) From aae509c5c17eaa444b1225962c92572daf5d7b21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Gy=C3=B6rgy=20Gallik?= Date: Fri, 13 Sep 2024 11:36:56 +0200 Subject: [PATCH 07/12] fix: issue#48 Edit/save modal not disappearing --- .../Components/LoadingComponent.razor | 18 +++++++++++------- .../Pages/Teachers.razor | 7 +------ 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/grade-management-new/GradeManagement.Client/Components/LoadingComponent.razor b/grade-management-new/GradeManagement.Client/Components/LoadingComponent.razor index 292c7d62..502a3f9a 100644 --- a/grade-management-new/GradeManagement.Client/Components/LoadingComponent.razor +++ b/grade-management-new/GradeManagement.Client/Components/LoadingComponent.razor @@ -24,14 +24,18 @@ else public async Task StartLoading() { - if (LongTask != null) + _ = Task.Run(async () => { - IsLoading = true; - StateHasChanged(); - await LongTask(); - IsLoading = false; - StateHasChanged(); - } + await Task.Delay(1); // Delay for 100 milliseconds + if (LongTask != null) + { + IsLoading = true; + StateHasChanged(); + await LongTask(); + IsLoading = false; + StateHasChanged(); + } + }); } } diff --git a/grade-management-new/GradeManagement.Client/Pages/Teachers.razor b/grade-management-new/GradeManagement.Client/Pages/Teachers.razor index b441ff8f..8a4531de 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Teachers.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Teachers.razor @@ -78,12 +78,7 @@ { await UserClient.UpdateAsync(items.Id, items); SnackbarService.ShowEditSuccess(); - // Run the StartLoading method asynchronously after a short delay - _ = Task.Run(async () => - { - await Task.Delay(1); // Delay for 100 milliseconds - await loadingComponentRef.StartLoading(); - }); + await loadingComponentRef.StartLoading(); } private async Task DeleteItem(User item) From 5e6d0def99f4e3db672fb3ce4544b3cbfb248c8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Gy=C3=B6rgy=20Gallik?= Date: Fri, 13 Sep 2024 11:38:04 +0200 Subject: [PATCH 08/12] fix: issue#46 typo --- .../Components/NewDialogs/NewCourseDialog.razor | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grade-management-new/GradeManagement.Client/Components/NewDialogs/NewCourseDialog.razor b/grade-management-new/GradeManagement.Client/Components/NewDialogs/NewCourseDialog.razor index f7b8df6e..f9f8c492 100644 --- a/grade-management-new/GradeManagement.Client/Components/NewDialogs/NewCourseDialog.razor +++ b/grade-management-new/GradeManagement.Client/Components/NewDialogs/NewCourseDialog.razor @@ -5,7 +5,7 @@ - + From 25695ec6172ca62ffa5468d69e90821d5c02e71e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Gy=C3=B6rgy=20Gallik?= Date: Fri, 13 Sep 2024 11:49:15 +0200 Subject: [PATCH 09/12] nswag file --- grade-management-new/nswag.nswag | 101 +++++++++++++++++++++++++++++++ 1 file changed, 101 insertions(+) create mode 100644 grade-management-new/nswag.nswag diff --git a/grade-management-new/nswag.nswag b/grade-management-new/nswag.nswag new file mode 100644 index 00000000..3654ab58 --- /dev/null +++ b/grade-management-new/nswag.nswag @@ -0,0 +1,101 @@ +{ + "runtime": "Net80", + "defaultVariables": null, + "documentGenerator": { + "fromDocument": { + "json": "{\r\n \"x-generator\": \"NSwag v14.0.7.0 (NJsonSchema v11.0.0.0 (Newtonsoft.Json v13.0.0.0))\",\r\n \"openapi\": \"3.0.0\",\r\n \"info\": {\r\n \"title\": \"AHK Grade Management API\",\r\n \"version\": \"1.0.0\"\r\n },\r\n \"servers\": [\r\n {\r\n \"url\": \"https://localhost:7136\"\r\n }\r\n ],\r\n \"paths\": {\r\n \"/api/assignments/{id}/pullrequests\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Assignment\"\r\n ],\r\n \"operationId\": \"Assignment_GetAllPullRequestsById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/PullRequest\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/assignments\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Assignment\"\r\n ],\r\n \"operationId\": \"Assignment_GetAll\",\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Assignment\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/assignments/{id}\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Assignment\"\r\n ],\r\n \"operationId\": \"Assignment_GetById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Assignment\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/testassignmentevents/assignmentaccepted\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"AssingmentEventTest\"\r\n ],\r\n \"operationId\": \"AssingmentEventTest_AssignmentAccepted\",\r\n \"requestBody\": {\r\n \"x-name\": \"assignmentAccepted\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/AssignmentAccepted\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n }\r\n },\r\n \"/api/testassignmentevents/pullrequestopened\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"AssingmentEventTest\"\r\n ],\r\n \"operationId\": \"AssingmentEventTest_PullRequestOpened\",\r\n \"requestBody\": {\r\n \"x-name\": \"pullRequestOpened\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/PullRequestOpened\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n }\r\n },\r\n \"/api/testassignmentevents/cievaluationcompleted\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"AssingmentEventTest\"\r\n ],\r\n \"operationId\": \"AssingmentEventTest_CiEvaluationCompleted\",\r\n \"requestBody\": {\r\n \"x-name\": \"ciEvaluationCompleted\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/CiEvaluationCompleted\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n }\r\n },\r\n \"/api/testassignmentevents/teacherassigned\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"AssingmentEventTest\"\r\n ],\r\n \"operationId\": \"AssingmentEventTest_TeacherAssigned\",\r\n \"requestBody\": {\r\n \"x-name\": \"teacherAssigned\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/TeacherAssigned\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n }\r\n },\r\n \"/api/testassignmentevents/assignmentgraded\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"AssingmentEventTest\"\r\n ],\r\n \"operationId\": \"AssingmentEventTest_AssignmentGraded\",\r\n \"requestBody\": {\r\n \"x-name\": \"assignmentGraded\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/AssignmentGradedByTeacher\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n }\r\n },\r\n \"/api/testassignmentevents/pullrequestclosed\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"AssingmentEventTest\"\r\n ],\r\n \"operationId\": \"AssingmentEventTest_PullRequestClosed\",\r\n \"requestBody\": {\r\n \"x-name\": \"pullRequestStatusChanged\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/PullRequestStatusChanged\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n }\r\n },\r\n \"/api/cievaluation/completed\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"CiEvaluation\"\r\n ],\r\n \"operationId\": \"CiEvaluation_CiEvaluationCompleted\",\r\n \"requestBody\": {\r\n \"x-name\": \"ciEvaluationCompleted\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/CiEvaluationCompleted\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n }\r\n },\r\n \"/api/courses/{id}/exercises\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Course\"\r\n ],\r\n \"operationId\": \"Course_GetAllExercisesById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Exercise\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/courses/{id}/groups\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Course\"\r\n ],\r\n \"operationId\": \"Course_GetAllGroupsById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Group\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/courses/{id}\": {\r\n \"put\": {\r\n \"tags\": [\r\n \"Course\"\r\n ],\r\n \"operationId\": \"Course_Update\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Course\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 2\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Course\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"delete\": {\r\n \"tags\": [\r\n \"Course\"\r\n ],\r\n \"operationId\": \"Course_Delete\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"204\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Course\"\r\n ],\r\n \"operationId\": \"Course_GetById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Course\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/courses\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"Course\"\r\n ],\r\n \"operationId\": \"Course_Create\",\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Course\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Course\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Course\"\r\n ],\r\n \"operationId\": \"Course_GetAll\",\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Course\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/dashboard/{subjectId}\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Dashboard\"\r\n ],\r\n \"operationId\": \"Dashboard_GetDashboard\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"subjectId\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Dashboard\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/exercises/{id}/assignments\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Exercise\"\r\n ],\r\n \"operationId\": \"Exercise_GetAssignmentsById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Assignment\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/exercises/{id}/export\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Exercise\"\r\n ],\r\n \"operationId\": \"Exercise_ExportToCsv\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n }\r\n },\r\n \"/api/exercises/{id}\": {\r\n \"put\": {\r\n \"tags\": [\r\n \"Exercise\"\r\n ],\r\n \"operationId\": \"Exercise_Update\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Exercise\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 2\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Exercise\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"delete\": {\r\n \"tags\": [\r\n \"Exercise\"\r\n ],\r\n \"operationId\": \"Exercise_Delete\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"204\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Exercise\"\r\n ],\r\n \"operationId\": \"Exercise_GetById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Exercise\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/exercises\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"Exercise\"\r\n ],\r\n \"operationId\": \"Exercise_Create\",\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Exercise\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Exercise\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Exercise\"\r\n ],\r\n \"operationId\": \"Exercise_GetAll\",\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Exercise\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/groups/{id}/teachers\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Group\"\r\n ],\r\n \"operationId\": \"Group_GetAllTeachersById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/User\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/groups/{id}/students\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Group\"\r\n ],\r\n \"operationId\": \"Group_GetAllStudentsById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Student\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/groups/{id}\": {\r\n \"put\": {\r\n \"tags\": [\r\n \"Group\"\r\n ],\r\n \"operationId\": \"Group_Update\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Group2\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 2\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Group\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"delete\": {\r\n \"tags\": [\r\n \"Group\"\r\n ],\r\n \"operationId\": \"Group_Delete\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"204\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Group\"\r\n ],\r\n \"operationId\": \"Group_GetById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Group\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/groups\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"Group\"\r\n ],\r\n \"operationId\": \"Group_Create\",\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Group2\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Group\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Group\"\r\n ],\r\n \"operationId\": \"Group_GetAll\",\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Group\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/languages\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"Language\"\r\n ],\r\n \"operationId\": \"Language_Create\",\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Language\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Language\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Language\"\r\n ],\r\n \"operationId\": \"Language_GetAll\",\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Language\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/languages/{id}\": {\r\n \"delete\": {\r\n \"tags\": [\r\n \"Language\"\r\n ],\r\n \"operationId\": \"Language_Delete\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"204\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Language\"\r\n ],\r\n \"operationId\": \"Language_GetById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Language\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/pullrequests/{id}/scores\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"PullRequest\"\r\n ],\r\n \"operationId\": \"PullRequest_GetAllScoresById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Score\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/semesters\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"Semester\"\r\n ],\r\n \"operationId\": \"Semester_Create\",\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Semester\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Semester\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Semester\"\r\n ],\r\n \"operationId\": \"Semester_GetAll\",\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Semester\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/semesters/{id}\": {\r\n \"delete\": {\r\n \"tags\": [\r\n \"Semester\"\r\n ],\r\n \"operationId\": \"Semester_Delete\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"204\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Semester\"\r\n ],\r\n \"operationId\": \"Semester_GetById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Semester\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/students/{id}/groups\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Student\"\r\n ],\r\n \"operationId\": \"Student_GetAllGroupsById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Group\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/students/{id}/assignments\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Student\"\r\n ],\r\n \"operationId\": \"Student_GetAllAssignmentsById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Assignment\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/students\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"Student\"\r\n ],\r\n \"operationId\": \"Student_Create\",\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Student2\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Student\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Student\"\r\n ],\r\n \"operationId\": \"Student_GetAll\",\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Student\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/students/{id}\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Student\"\r\n ],\r\n \"operationId\": \"Student_GetById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Student\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/subjects/{id}/courses\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Subject\"\r\n ],\r\n \"operationId\": \"Subject_GetAllCoursesById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Course\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/subjects/{id}/teachers\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"Subject\"\r\n ],\r\n \"operationId\": \"Subject_GetAllTeachersById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/User\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/subjects\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"Subject\"\r\n ],\r\n \"operationId\": \"Subject_Create\",\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Subject2\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Subject\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Subject\"\r\n ],\r\n \"operationId\": \"Subject_GetAll\",\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Subject\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/subjects/{subjectId}/teachers/{teacherId}\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"Subject\"\r\n ],\r\n \"operationId\": \"Subject_AddTeacherToSubjectById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"subjectId\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n },\r\n {\r\n \"name\": \"teacherId\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 2\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/User\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"delete\": {\r\n \"tags\": [\r\n \"Subject\"\r\n ],\r\n \"operationId\": \"Subject_DeleteTeacherFromSubjectById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"subjectId\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n },\r\n {\r\n \"name\": \"teacherId\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 2\r\n }\r\n ],\r\n \"responses\": {\r\n \"204\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n }\r\n },\r\n \"/api/subjects/{id}\": {\r\n \"put\": {\r\n \"tags\": [\r\n \"Subject\"\r\n ],\r\n \"operationId\": \"Subject_Update\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Subject2\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 2\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Subject\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"delete\": {\r\n \"tags\": [\r\n \"Subject\"\r\n ],\r\n \"operationId\": \"Subject_Delete\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"204\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"Subject\"\r\n ],\r\n \"operationId\": \"Subject_GetById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/Subject\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/users/{id}/groups\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"User\"\r\n ],\r\n \"operationId\": \"User_GetAllGroupsById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Group\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/users/{id}/subjects\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"User\"\r\n ],\r\n \"operationId\": \"User_GetAllSubjectsById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Subject\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/users/{id}/pullrequests\": {\r\n \"get\": {\r\n \"tags\": [\r\n \"User\"\r\n ],\r\n \"operationId\": \"User_GetAllPullRequestsById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/PullRequest\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/users/{id}\": {\r\n \"put\": {\r\n \"tags\": [\r\n \"User\"\r\n ],\r\n \"operationId\": \"User_Update\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/User\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 2\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/User\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"delete\": {\r\n \"tags\": [\r\n \"User\"\r\n ],\r\n \"operationId\": \"User_Delete\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"204\": {\r\n \"description\": \"\"\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"User\"\r\n ],\r\n \"operationId\": \"User_GetById\",\r\n \"parameters\": [\r\n {\r\n \"name\": \"id\",\r\n \"in\": \"path\",\r\n \"required\": true,\r\n \"schema\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"x-position\": 1\r\n }\r\n ],\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/User\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"/api/users\": {\r\n \"post\": {\r\n \"tags\": [\r\n \"User\"\r\n ],\r\n \"operationId\": \"User_Create\",\r\n \"requestBody\": {\r\n \"x-name\": \"requestDto\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/User\"\r\n }\r\n }\r\n },\r\n \"required\": true,\r\n \"x-position\": 1\r\n },\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"$ref\": \"#/components/schemas/User\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"get\": {\r\n \"tags\": [\r\n \"User\"\r\n ],\r\n \"operationId\": \"User_GetAll\",\r\n \"responses\": {\r\n \"200\": {\r\n \"description\": \"\",\r\n \"content\": {\r\n \"application/json\": {\r\n \"schema\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/User\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n },\r\n \"components\": {\r\n \"schemas\": {\r\n \"PullRequest\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"url\": {\r\n \"type\": \"string\"\r\n },\r\n \"openingDate\": {\r\n \"type\": \"string\",\r\n \"format\": \"date-time\"\r\n },\r\n \"status\": {\r\n \"$ref\": \"#/components/schemas/PullRequestStatus\"\r\n },\r\n \"branchName\": {\r\n \"type\": \"string\"\r\n },\r\n \"assignmentId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"teacherId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\",\r\n \"nullable\": true\r\n }\r\n }\r\n },\r\n \"PullRequestStatus\": {\r\n \"type\": \"integer\",\r\n \"description\": \"\",\r\n \"x-enumNames\": [\r\n \"Open\",\r\n \"Closed\",\r\n \"Merged\"\r\n ],\r\n \"enum\": [\r\n 1,\r\n 2,\r\n 3\r\n ]\r\n },\r\n \"Assignment\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"githubRepoName\": {\r\n \"type\": \"string\"\r\n },\r\n \"githubRepoUrl\": {\r\n \"type\": \"string\"\r\n },\r\n \"studentId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"exerciseId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n }\r\n }\r\n },\r\n \"AssignmentAccepted\": {\r\n \"allOf\": [\r\n {\r\n \"$ref\": \"#/components/schemas/AssignmentEventBase\"\r\n },\r\n {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false\r\n }\r\n ]\r\n },\r\n \"AssignmentEventBase\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"gitHubRepositoryUrl\": {\r\n \"type\": \"string\"\r\n }\r\n }\r\n },\r\n \"PullRequestOpened\": {\r\n \"allOf\": [\r\n {\r\n \"$ref\": \"#/components/schemas/AssignmentEventBase\"\r\n },\r\n {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"pullRequestUrl\": {\r\n \"type\": \"string\"\r\n },\r\n \"branchName\": {\r\n \"type\": \"string\"\r\n },\r\n \"openingDate\": {\r\n \"type\": \"string\",\r\n \"format\": \"date-time\"\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"CiEvaluationCompleted\": {\r\n \"allOf\": [\r\n {\r\n \"$ref\": \"#/components/schemas/AssignmentEventBase\"\r\n },\r\n {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"pullRequestUrl\": {\r\n \"type\": \"string\"\r\n },\r\n \"studentNeptun\": {\r\n \"type\": \"string\"\r\n },\r\n \"scores\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/EventScore\"\r\n }\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"EventScore\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"value\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"createdDate\": {\r\n \"type\": \"string\",\r\n \"format\": \"date-time\"\r\n },\r\n \"scoreType\": {\r\n \"type\": \"string\"\r\n }\r\n }\r\n },\r\n \"TeacherAssigned\": {\r\n \"allOf\": [\r\n {\r\n \"$ref\": \"#/components/schemas/AssignmentEventBase\"\r\n },\r\n {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"pullRequestUrl\": {\r\n \"type\": \"string\"\r\n },\r\n \"teacherGitHubId\": {\r\n \"type\": \"string\"\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"AssignmentGradedByTeacher\": {\r\n \"allOf\": [\r\n {\r\n \"$ref\": \"#/components/schemas/AssignmentEventBase\"\r\n },\r\n {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"pullRequestUrl\": {\r\n \"type\": \"string\"\r\n },\r\n \"teacherGitHubId\": {\r\n \"type\": \"string\"\r\n },\r\n \"scores\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/EventScore\"\r\n }\r\n },\r\n \"dateOfGrading\": {\r\n \"type\": \"string\",\r\n \"format\": \"date-time\"\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"PullRequestStatusChanged\": {\r\n \"allOf\": [\r\n {\r\n \"$ref\": \"#/components/schemas/AssignmentEventBase\"\r\n },\r\n {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"pullRequestUrl\": {\r\n \"type\": \"string\"\r\n },\r\n \"pullRequestStatus\": {\r\n \"$ref\": \"#/components/schemas/PullRequestStatus\"\r\n }\r\n }\r\n }\r\n ]\r\n },\r\n \"Exercise\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"name\": {\r\n \"type\": \"string\"\r\n },\r\n \"githubPrefix\": {\r\n \"type\": \"string\"\r\n },\r\n \"dueDate\": {\r\n \"type\": \"string\",\r\n \"format\": \"date-time\"\r\n },\r\n \"courseId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n }\r\n }\r\n },\r\n \"Group\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"name\": {\r\n \"type\": \"string\"\r\n },\r\n \"courseId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n }\r\n }\r\n },\r\n \"Course\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"name\": {\r\n \"type\": \"string\"\r\n },\r\n \"moodleCourseId\": {\r\n \"type\": \"string\"\r\n },\r\n \"subjectId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"semester\": {\r\n \"$ref\": \"#/components/schemas/Semester\"\r\n },\r\n \"language\": {\r\n \"$ref\": \"#/components/schemas/Language\"\r\n }\r\n }\r\n },\r\n \"Semester\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"name\": {\r\n \"type\": \"string\"\r\n }\r\n }\r\n },\r\n \"Language\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"name\": {\r\n \"type\": \"string\"\r\n }\r\n }\r\n },\r\n \"Dashboard\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"assignmentName\": {\r\n \"type\": \"string\"\r\n },\r\n \"githubRepoUrl\": {\r\n \"type\": \"string\"\r\n },\r\n \"studentNeptun\": {\r\n \"type\": \"string\",\r\n \"nullable\": true\r\n },\r\n \"exerciseName\": {\r\n \"type\": \"string\"\r\n },\r\n \"courseName\": {\r\n \"type\": \"string\"\r\n },\r\n \"pullRequests\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/PullRequestForDashboard\"\r\n }\r\n }\r\n }\r\n },\r\n \"PullRequestForDashboard\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"url\": {\r\n \"type\": \"string\"\r\n },\r\n \"openingDate\": {\r\n \"type\": \"string\",\r\n \"format\": \"date-time\"\r\n },\r\n \"status\": {\r\n \"$ref\": \"#/components/schemas/PullRequestStatus\"\r\n },\r\n \"branchName\": {\r\n \"type\": \"string\"\r\n },\r\n \"assignmentId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"teacherId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\",\r\n \"nullable\": true\r\n },\r\n \"scores\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/Score\"\r\n }\r\n }\r\n }\r\n },\r\n \"Score\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"value\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"isApproved\": {\r\n \"type\": \"boolean\"\r\n },\r\n \"createdDate\": {\r\n \"type\": \"string\",\r\n \"format\": \"date-time\"\r\n },\r\n \"scoreType\": {\r\n \"$ref\": \"#/components/schemas/ScoreType\"\r\n },\r\n \"teacherId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\",\r\n \"nullable\": true\r\n },\r\n \"pullRequestId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n }\r\n }\r\n },\r\n \"ScoreType\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"type\": {\r\n \"type\": \"string\"\r\n }\r\n }\r\n },\r\n \"User\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"name\": {\r\n \"type\": \"string\"\r\n },\r\n \"neptunCode\": {\r\n \"type\": \"string\"\r\n },\r\n \"githubId\": {\r\n \"type\": \"string\"\r\n },\r\n \"bmeEmail\": {\r\n \"type\": \"string\"\r\n },\r\n \"type\": {\r\n \"$ref\": \"#/components/schemas/UserType\"\r\n }\r\n }\r\n },\r\n \"UserType\": {\r\n \"type\": \"integer\",\r\n \"description\": \"\",\r\n \"x-enumNames\": [\r\n \"User\",\r\n \"Demonstrator\",\r\n \"Teacher\"\r\n ],\r\n \"enum\": [\r\n 1,\r\n 2,\r\n 3\r\n ]\r\n },\r\n \"Student\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"name\": {\r\n \"type\": \"string\"\r\n },\r\n \"neptunCode\": {\r\n \"type\": \"string\",\r\n \"nullable\": true\r\n },\r\n \"githubId\": {\r\n \"type\": \"string\",\r\n \"nullable\": true\r\n }\r\n }\r\n },\r\n \"Group2\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"name\": {\r\n \"type\": \"string\"\r\n },\r\n \"courseId\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"teachers\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/User\"\r\n }\r\n }\r\n }\r\n },\r\n \"Student2\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"name\": {\r\n \"type\": \"string\"\r\n },\r\n \"neptunCode\": {\r\n \"type\": \"string\",\r\n \"nullable\": true\r\n },\r\n \"githubId\": {\r\n \"type\": \"string\",\r\n \"nullable\": true\r\n },\r\n \"groupIds\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n }\r\n }\r\n }\r\n },\r\n \"Subject\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"name\": {\r\n \"type\": \"string\"\r\n },\r\n \"neptunCode\": {\r\n \"type\": \"string\"\r\n },\r\n \"gitHubOrgName\": {\r\n \"type\": \"string\"\r\n }\r\n }\r\n },\r\n \"Subject2\": {\r\n \"type\": \"object\",\r\n \"additionalProperties\": false,\r\n \"properties\": {\r\n \"id\": {\r\n \"type\": \"integer\",\r\n \"format\": \"int64\"\r\n },\r\n \"name\": {\r\n \"type\": \"string\"\r\n },\r\n \"gitHubOrgName\": {\r\n \"type\": \"string\"\r\n },\r\n \"neptunCode\": {\r\n \"type\": \"string\"\r\n },\r\n \"teachers\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"$ref\": \"#/components/schemas/User\"\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}", + "url": "https://localhost:7136/swagger/v1/swagger.json", + "output": null, + "newLineBehavior": "Auto" + } + }, + "codeGenerators": { + "openApiToCSharpClient": { + "clientBaseClass": null, + "configurationClass": null, + "generateClientClasses": true, + "suppressClientClassesOutput": false, + "generateClientInterfaces": false, + "suppressClientInterfacesOutput": false, + "clientBaseInterface": null, + "injectHttpClient": true, + "disposeHttpClient": true, + "protectedMethods": [], + "generateExceptionClasses": true, + "exceptionClass": "ApiException", + "wrapDtoExceptions": true, + "useHttpClientCreationMethod": false, + "httpClientType": "System.Net.Http.HttpClient", + "useHttpRequestMessageCreationMethod": false, + "useBaseUrl": false, + "generateBaseUrlProperty": false, + "generateSyncMethods": false, + "generatePrepareRequestAndProcessResponseAsAsyncMethods": false, + "exposeJsonSerializerSettings": false, + "clientClassAccessModifier": "public", + "typeAccessModifier": "public", + "propertySetterAccessModifier": "", + "generateNativeRecords": false, + "generateContractsOutput": false, + "contractsNamespace": null, + "contractsOutputFilePath": null, + "parameterDateTimeFormat": "s", + "parameterDateFormat": "yyyy-MM-dd", + "generateUpdateJsonSerializerSettingsMethod": true, + "useRequestAndResponseSerializationSettings": false, + "serializeTypeInformation": false, + "queryNullValue": "", + "className": "{controller}Client", + "operationGenerationMode": "MultipleClientsFromOperationId", + "additionalNamespaceUsages": [], + "additionalContractNamespaceUsages": [], + "generateOptionalParameters": false, + "generateJsonMethods": false, + "enforceFlagEnums": false, + "parameterArrayType": "System.Collections.Generic.IEnumerable", + "parameterDictionaryType": "System.Collections.Generic.IDictionary", + "responseArrayType": "System.Collections.Generic.ICollection", + "responseDictionaryType": "System.Collections.Generic.IDictionary", + "wrapResponses": false, + "wrapResponseMethods": [], + "generateResponseClasses": true, + "responseClass": "SwaggerResponse", + "namespace": "GradeManagement.Client.Network", + "requiredPropertiesMustBeDefined": true, + "dateType": "System.DateTimeOffset", + "jsonConverters": null, + "anyType": "object", + "dateTimeType": "System.DateTimeOffset", + "timeType": "System.TimeSpan", + "timeSpanType": "System.TimeSpan", + "arrayType": "System.Collections.Generic.ICollection", + "arrayInstanceType": "System.Collections.ObjectModel.Collection", + "dictionaryType": "System.Collections.Generic.IDictionary", + "dictionaryInstanceType": "System.Collections.Generic.Dictionary", + "arrayBaseType": "System.Collections.ObjectModel.Collection", + "dictionaryBaseType": "System.Collections.Generic.Dictionary", + "classStyle": "Poco", + "jsonLibrary": "NewtonsoftJson", + "generateDefaultValues": true, + "generateDataAnnotations": true, + "excludedTypeNames": [], + "excludedParameterNames": [], + "handleReferences": false, + "generateImmutableArrayProperties": false, + "generateImmutableDictionaryProperties": false, + "jsonSerializerSettingsTransformationMethod": null, + "inlineNamedArrays": false, + "inlineNamedDictionaries": false, + "inlineNamedTuples": true, + "inlineNamedAny": false, + "generateDtoTypes": true, + "generateOptionalPropertiesAsNullable": false, + "generateNullableReferenceTypes": false, + "templateDirectory": null, + "serviceHost": null, + "serviceSchemes": null, + "output": null, + "newLineBehavior": "Auto" + } + } +} \ No newline at end of file From 4b5ebd22d54cf173779d2818eb47b0ac066df427 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Gy=C3=B6rgy=20Gallik?= Date: Fri, 13 Sep 2024 12:01:05 +0200 Subject: [PATCH 10/12] fix: issue#36 titles --- .../GradeManagement.Client/Components/LoadingComponent.razor | 2 +- .../GradeManagement.Client/Pages/Courses.razor | 4 ++++ .../GradeManagement.Client/Pages/Languages.razor | 2 ++ grade-management-new/GradeManagement.Client/Pages/Main.razor | 3 ++- .../GradeManagement.Client/Pages/Semesters.razor | 2 ++ .../GradeManagement.Client/Pages/SingleCourse.razor | 1 + .../GradeManagement.Client/Pages/Students.razor | 4 ++++ .../GradeManagement.Client/Pages/Subjects.razor | 2 ++ .../GradeManagement.Client/Pages/Teachers.razor | 5 ++++- .../GradeManagement.Client/wwwroot/index.html | 2 +- 10 files changed, 23 insertions(+), 4 deletions(-) diff --git a/grade-management-new/GradeManagement.Client/Components/LoadingComponent.razor b/grade-management-new/GradeManagement.Client/Components/LoadingComponent.razor index 502a3f9a..47f66e57 100644 --- a/grade-management-new/GradeManagement.Client/Components/LoadingComponent.razor +++ b/grade-management-new/GradeManagement.Client/Components/LoadingComponent.razor @@ -11,7 +11,7 @@ else @code { - [Parameter] public bool IsLoading { get; set; } + [Parameter] public bool IsLoading { get; set; } = true; [Parameter] public RenderFragment ChildContent { get; set; } diff --git a/grade-management-new/GradeManagement.Client/Pages/Courses.razor b/grade-management-new/GradeManagement.Client/Pages/Courses.razor index 4730f80a..7faf6ad5 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Courses.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Courses.razor @@ -23,7 +23,11 @@ } +Courses + + Courses + diff --git a/grade-management-new/GradeManagement.Client/Pages/Languages.razor b/grade-management-new/GradeManagement.Client/Pages/Languages.razor index 29775c4f..e242ac87 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Languages.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Languages.razor @@ -9,6 +9,8 @@ Languages + Languages + diff --git a/grade-management-new/GradeManagement.Client/Pages/Main.razor b/grade-management-new/GradeManagement.Client/Pages/Main.razor index 63be741b..f0e34953 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Main.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Main.razor @@ -7,7 +7,6 @@ @inject ExerciseClient ExerciseClient @inject AssignmentClient AssignmentClient @inject DashboardClient DashboardClient -AHK Review UI + Dashboard + Semesters + Semesters + diff --git a/grade-management-new/GradeManagement.Client/Pages/SingleCourse.razor b/grade-management-new/GradeManagement.Client/Pages/SingleCourse.razor index f356972b..6c5e5cde 100644 --- a/grade-management-new/GradeManagement.Client/Pages/SingleCourse.razor +++ b/grade-management-new/GradeManagement.Client/Pages/SingleCourse.razor @@ -10,6 +10,7 @@ @inject GroupClient GroupClient + Course @_course.Name @_course.Name diff --git a/grade-management-new/GradeManagement.Client/Pages/Students.razor b/grade-management-new/GradeManagement.Client/Pages/Students.razor index 9a085f20..ed57f319 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Students.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Students.razor @@ -8,7 +8,11 @@ @inject SubjectService SubjectService @inject StudentClient StudentClient +Students + + Students + diff --git a/grade-management-new/GradeManagement.Client/Pages/Subjects.razor b/grade-management-new/GradeManagement.Client/Pages/Subjects.razor index 8a002afe..21e3337e 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Subjects.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Subjects.razor @@ -9,6 +9,8 @@ Subjects +Subjects + diff --git a/grade-management-new/GradeManagement.Client/Pages/Teachers.razor b/grade-management-new/GradeManagement.Client/Pages/Teachers.razor index 8a4531de..be29f0db 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Teachers.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Teachers.razor @@ -9,8 +9,11 @@ @inject SubjectClient SubjectClient @inject UserClient UserClient +Teachers + - Teachers + Teachers + diff --git a/grade-management-new/GradeManagement.Client/wwwroot/index.html b/grade-management-new/GradeManagement.Client/wwwroot/index.html index 9c8cf9c8..9764e807 100644 --- a/grade-management-new/GradeManagement.Client/wwwroot/index.html +++ b/grade-management-new/GradeManagement.Client/wwwroot/index.html @@ -4,7 +4,7 @@ - GradeManagement.Client + AHK Review UI From d11daa1ac30f2feefc5c8ad4198188613ec8a232 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zolt=C3=A1n=20Gy=C3=B6rgy=20Gallik?= Date: Fri, 13 Sep 2024 12:50:45 +0200 Subject: [PATCH 11/12] fix: issue#57/3: select design --- .../Components/Helpers/SelectSubject.razor | 34 +++++++++++++++---- .../Layout/AppBar.razor | 2 +- .../GradeManagement.Client/Pages/Main.razor | 7 ++++ .../Services/SubjectService.cs | 1 + 4 files changed, 37 insertions(+), 7 deletions(-) diff --git a/grade-management-new/GradeManagement.Client/Components/Helpers/SelectSubject.razor b/grade-management-new/GradeManagement.Client/Components/Helpers/SelectSubject.razor index f5490361..99989b87 100644 --- a/grade-management-new/GradeManagement.Client/Components/Helpers/SelectSubject.razor +++ b/grade-management-new/GradeManagement.Client/Components/Helpers/SelectSubject.razor @@ -1,15 +1,37 @@ - + + + @foreach (var semester in PossibleValues) { - + } @code { - [Parameter] public Subject Value { get; set; } - [Parameter] public List PossibleValues { get; set; } - [Parameter] public EventCallback ValueChanged { get; set; } +[Parameter] public Subject Value { get; set; } +[Parameter] public List PossibleValues { get; set; } +[Parameter] public EventCallback ValueChanged { get; set; } - private Func subjectToString = p => p.Name; +private Func subjectToString = p => p.Name; } diff --git a/grade-management-new/GradeManagement.Client/Layout/AppBar.razor b/grade-management-new/GradeManagement.Client/Layout/AppBar.razor index 5189fd6f..b3329949 100644 --- a/grade-management-new/GradeManagement.Client/Layout/AppBar.razor +++ b/grade-management-new/GradeManagement.Client/Layout/AppBar.razor @@ -1,6 +1,6 @@ @inject SubjectService SubjectService - + AHK Review UI diff --git a/grade-management-new/GradeManagement.Client/Pages/Main.razor b/grade-management-new/GradeManagement.Client/Pages/Main.razor index f0e34953..4c240cb0 100644 --- a/grade-management-new/GradeManagement.Client/Pages/Main.razor +++ b/grade-management-new/GradeManagement.Client/Pages/Main.razor @@ -7,6 +7,7 @@ @inject ExerciseClient ExerciseClient @inject AssignmentClient AssignmentClient @inject DashboardClient DashboardClient +@inject CrudSnackbarService SnackbarService