| | 1 | | namespace Syki.Back.Features.Student.CreateClassActivityWork; |
| | 2 | |
|
| 10 | 3 | | public class CreateClassActivityWorkService(SykiDbContext ctx) : IStudentService |
| | 4 | | { |
| | 5 | | public async Task<OneOf<ClassActivityWorkOut, SykiError>> Create(Guid classActivityId, Guid userId, CreateClassActiv |
| | 6 | | { |
| 10 | 7 | | var classActivity = await ctx.ClassActivities.AsNoTracking() |
| 10 | 8 | | .Where(x => x.Id == classActivityId) |
| 10 | 9 | | .FirstOrDefaultAsync(); |
| 12 | 10 | | if (classActivity == null) return new ClassActivityNotFound(); |
| | 11 | |
|
| 8 | 12 | | var classesIds = await ctx.ClassesStudents |
| 8 | 13 | | .Where(x => x.SykiStudentId == userId) |
| 8 | 14 | | .Select(x => x.ClassId).ToListAsync(); |
| 8 | 15 | | if (!classesIds.Contains(classActivity.ClassId)) return new ClassActivityNotFound(); |
| | 16 | |
|
| 8 | 17 | | var classActivityWork = await ctx.ClassActivityWorks |
| 8 | 18 | | .Where(x => x.ClassActivityId == classActivityId && x.SykiStudentId == userId) |
| 8 | 19 | | .FirstAsync(); |
| | 20 | |
|
| 8 | 21 | | classActivityWork.AddLink(data.Link); |
| | 22 | |
|
| 8 | 23 | | await ctx.SaveChangesAsync(); |
| | 24 | |
|
| 8 | 25 | | return classActivityWork.ToOut(); |
| 10 | 26 | | } |
| | 27 | | } |