Skip to content

Commit 22c0082

Browse files
committed
Refactor
1 parent 561ad61 commit 22c0082

File tree

3 files changed

+24
-9
lines changed

3 files changed

+24
-9
lines changed

grade-management-new/GradeManagement.Bll/Services/AssignmentEventProcessorService.cs

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
using GradeManagement.Data;
1+
using AutSoft.Linq.Enumerable;
2+
3+
using GradeManagement.Data;
24
using GradeManagement.Data.Models;
35
using GradeManagement.Shared.Dtos.AssignmentEvents;
46
using GradeManagement.Shared.Enums;
57

8+
using Microsoft.EntityFrameworkCore;
69
using Microsoft.IdentityModel.Tokens;
710

811
using Assignment = GradeManagement.Shared.Dtos.Assignment;
@@ -107,11 +110,12 @@ public async Task ConsumeCiEvaluationCompletedEventAsync(CiEvaluationCompleted c
107110

108111
if (student.NeptunCode.IsNullOrEmpty())
109112
{
110-
await _studentService.DeleteAsync(student.Id);
111-
student = await _studentService.GetStudentModelByNeptunAsync(ciEvaluationCompleted.StudentNeptun);
112-
student.GithubId = studentGitHubId;
113-
assignment.StudentId = student.Id;
113+
var newStudent = await _studentService.GetStudentModelByNeptunAsync(ciEvaluationCompleted.StudentNeptun);
114+
newStudent.GithubId = studentGitHubId;
115+
await _assignmentService.ChangeStudentIdOnAllAssignmentsAsync(student.Id, newStudent.Id);
114116
await _gradeManagementDbContext.SaveChangesAsync();
117+
await _studentService.DeleteAsync(student.Id);
118+
student = newStudent;
115119
}
116120

117121
foreach (var scoreEvent in ciEvaluationCompleted.Scores)

grade-management-new/GradeManagement.Bll/Services/AssignmentService.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,4 +72,16 @@ public async Task<IEnumerable<PullRequest>> GetAllPullRequestsByIdAsync(long id)
7272
return await _gradeManagementDbContext.Assignment
7373
.SingleEntityAsync(a => githubRepoName == a.GithubRepoName, 0);
7474
}
75+
76+
public async Task ChangeStudentIdOnAllAssignmentsAsync(long studentIdFrom, long studentIdTo)
77+
{
78+
var assignments = await _gradeManagementDbContext.Assignment.Where(a => a.StudentId == studentIdFrom)
79+
.ToListAsync();
80+
foreach (var assignment in assignments)
81+
{
82+
assignment.StudentId = studentIdTo;
83+
}
84+
85+
await _gradeManagementDbContext.SaveChangesAsync();
86+
}
7587
}

grade-management-new/GradeManagement.Bll/Services/StudentService.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -101,8 +101,8 @@ public StudentService(GradeManagementDbContext gradeManagementDbContext, IMapper
101101
public async Task DeleteAsync(long id)
102102
{
103103
var studentEntity = await _gradeManagementDbContext.Student.SingleEntityAsync(s => s.Id == id, id);
104-
_gradeManagementDbContext.GroupStudent.RemoveRange(
105-
await _gradeManagementDbContext.GroupStudent.Where(gs => gs.StudentId == id).ToListAsync());
104+
var groupStudents = await _gradeManagementDbContext.GroupStudent.Where(gs => gs.StudentId == id).ToListAsync();
105+
_gradeManagementDbContext.GroupStudent.RemoveRange(groupStudents);
106106
_gradeManagementDbContext.Student.Remove(studentEntity);
107107
await _gradeManagementDbContext.SaveChangesAsync();
108108
}
@@ -133,8 +133,7 @@ public async Task<List<Assignment>> GetAllAssignmentsByIdAsync(long id)
133133
{
134134
student = new Data.Models.Student
135135
{
136-
Name = "Auto created from GitHub ID: " + studentGitHubId,
137-
GithubId = studentGitHubId
136+
Name = "Auto created from GitHub ID: " + studentGitHubId, GithubId = studentGitHubId
138137
};
139138
_gradeManagementDbContext.Student.Add(student);
140139
await _gradeManagementDbContext.SaveChangesAsync();

0 commit comments

Comments
 (0)