From 59f9374b54b6756b92c2ba1e68f649f9cfe30ac7 Mon Sep 17 00:00:00 2001 From: yuri_ufimtsev Date: Wed, 12 Mar 2025 16:05:21 +0300 Subject: [PATCH 1/4] [backend] remove unused EF package --- .../HwProj.CoursesService.API/HwProj.CoursesService.API.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/HwProj.CoursesService/HwProj.CoursesService.API/HwProj.CoursesService.API.csproj b/HwProj.CoursesService/HwProj.CoursesService.API/HwProj.CoursesService.API.csproj index 1b106a5e3..ef718c9b4 100644 --- a/HwProj.CoursesService/HwProj.CoursesService.API/HwProj.CoursesService.API.csproj +++ b/HwProj.CoursesService/HwProj.CoursesService.API/HwProj.CoursesService.API.csproj @@ -12,7 +12,6 @@ - From eeee463e56997ae5b07c1af1e7ac1ceead41c43a Mon Sep 17 00:00:00 2001 From: yuri_ufimtsev Date: Wed, 12 Mar 2025 16:10:46 +0300 Subject: [PATCH 2/4] [backend] implement homeworks by publication date ordering within EFCore 2.x restrictions --- .../Repositories/CoursesRepository.cs | 6 +++++- .../Services/CoursesService.cs | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) diff --git a/HwProj.CoursesService/HwProj.CoursesService.API/Repositories/CoursesRepository.cs b/HwProj.CoursesService/HwProj.CoursesService.API/Repositories/CoursesRepository.cs index 24fe1b5e6..0197009d4 100644 --- a/HwProj.CoursesService/HwProj.CoursesService.API/Repositories/CoursesRepository.cs +++ b/HwProj.CoursesService/HwProj.CoursesService.API/Repositories/CoursesRepository.cs @@ -15,12 +15,16 @@ public CoursesRepository(CourseContext context) public async Task GetWithCourseMatesAndHomeworksAsync(long id) { - return await Context.Set() + var course = await Context.Set() .Include(c => c.CourseMates) .Include(c => c.Homeworks) .ThenInclude(c => c.Tasks) .AsNoTracking() .FirstOrDefaultAsync(c => c.Id == id); + + // todo: перенести OrderBy в Include после обновления до EF Core 5.x + course.Homeworks = course.Homeworks.OrderBy(h => h.PublicationDate).ToList(); + return course; } public IQueryable GetAllWithCourseMatesAndHomeworks() diff --git a/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs b/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs index ad22ed9c0..74f26c5cf 100644 --- a/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs +++ b/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs @@ -49,6 +49,15 @@ public CoursesService(ICoursesRepository coursesRepository, public async Task GetAllAsync() { var courses = await _coursesRepository.GetAllWithCourseMatesAndHomeworks().ToArrayAsync(); + + // todo: перенести сортировку домашних работ на уровень репозитория после обновления до EF Core 5.x + courses = courses.Select(c => + { + c.Homeworks = c.Homeworks + .OrderBy(h => h.PublicationDate) + .ToList(); + return c; + }).ToArray(); CourseDomain.FillTasksInCourses(courses); @@ -188,6 +197,16 @@ public async Task GetUserCoursesAsync(string userId, string role) .Include(c => c.Homeworks).ThenInclude(t => t.Tasks) .ToArrayAsync(); + // todo: перенести сортировку домашних работ на уровень репозитория после обновления до EF Core 5.x + coursesWithValues = coursesWithValues + .Select(c => + { + c.Homeworks = c.Homeworks + .OrderBy(h => h.PublicationDate) + .ToList(); + return c; + }).ToArray(); + CourseDomain.FillTasksInCourses(coursesWithValues); var result = await _courseFilterService.ApplyFiltersToCourses( From a88284b8cf193a953dc2389b40031fcfdf9f9b95 Mon Sep 17 00:00:00 2001 From: yuri_ufimtsev Date: Tue, 18 Mar 2025 23:48:47 +0300 Subject: [PATCH 3/4] refactor --- .../Services/CoursesService.cs | 22 ------------------- 1 file changed, 22 deletions(-) diff --git a/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs b/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs index 74f26c5cf..93fa1753b 100644 --- a/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs +++ b/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs @@ -49,18 +49,7 @@ public CoursesService(ICoursesRepository coursesRepository, public async Task GetAllAsync() { var courses = await _coursesRepository.GetAllWithCourseMatesAndHomeworks().ToArrayAsync(); - - // todo: перенести сортировку домашних работ на уровень репозитория после обновления до EF Core 5.x - courses = courses.Select(c => - { - c.Homeworks = c.Homeworks - .OrderBy(h => h.PublicationDate) - .ToList(); - return c; - }).ToArray(); - CourseDomain.FillTasksInCourses(courses); - return courses; } @@ -196,17 +185,6 @@ public async Task GetUserCoursesAsync(string userId, string role) .Include(c => c.CourseMates) .Include(c => c.Homeworks).ThenInclude(t => t.Tasks) .ToArrayAsync(); - - // todo: перенести сортировку домашних работ на уровень репозитория после обновления до EF Core 5.x - coursesWithValues = coursesWithValues - .Select(c => - { - c.Homeworks = c.Homeworks - .OrderBy(h => h.PublicationDate) - .ToList(); - return c; - }).ToArray(); - CourseDomain.FillTasksInCourses(coursesWithValues); var result = await _courseFilterService.ApplyFiltersToCourses( From c2a1ad1f668671bfd31e4beb301f910b70c778ff Mon Sep 17 00:00:00 2001 From: yuri_ufimtsev Date: Wed, 19 Mar 2025 00:01:16 +0300 Subject: [PATCH 4/4] refactor: revert empty string --- .../HwProj.CoursesService.API/Services/CoursesService.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs b/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs index 93fa1753b..0ad466e47 100644 --- a/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs +++ b/HwProj.CoursesService/HwProj.CoursesService.API/Services/CoursesService.cs @@ -185,6 +185,7 @@ public async Task GetUserCoursesAsync(string userId, string role) .Include(c => c.CourseMates) .Include(c => c.Homeworks).ThenInclude(t => t.Tasks) .ToArrayAsync(); + CourseDomain.FillTasksInCourses(coursesWithValues); var result = await _courseFilterService.ApplyFiltersToCourses(