public static void AddSolution(string studentEmail, int hwId, string url) { using (var db = new HwProj_DBContext()) { var relatedStudent = db.Student.First(s => s.Email == studentEmail); var relatedHw = db.CurrentHomework.First(hw => hw.Id == hwId); var toAdd = new HomeworkSolution() { StudentId = studentEmail, HomeworkId = hwId, Url = url, Homework = relatedHw, Student = relatedStudent }; relatedStudent.HomeworkSolution.Add(toAdd); relatedHw.HomeworkSolution.Add(toAdd); db.SaveChanges(); } }
public async Task <HomeworkSolutionResponse> Handle(HomeworkSolutionCreateCommand request, CancellationToken cancellationToken) { var currentUserId = identityService.GetCurrentUserId(); var homework = await context.Homeworks.Include(x => x.Lesson) .ThenInclude(x => x.ClassSchoolYearSubject) .ThenInclude(x => x.ClassSchoolYearSubjectStudents) .ThenInclude(x => x.Student) .Include(x => x.Solutions) .ThenInclude(x => x.Student) .SingleAsync(x => x.Id == request.HomeworkId, cancellationToken); var student = homework.Lesson.ClassSchoolYearSubject.ClassSchoolYearSubjectStudents .Where(x => x.Student.UserId == currentUserId) .Select(x => x.Student) .Single(); if (homework.Solutions.Any(x => x.Student.UserId == currentUserId)) { throw new InvalidOperationException( "Már létrehozásra került egy megoldás az adott házi feladathoz ez által a diák által."); } if (homework.Deadline < DateTime.Now) { throw new InvalidOperationException("A határidő lejárt."); } var solution = new HomeworkSolution { Homework = homework, Student = student }; context.HomeworkSolutions.Add(solution); await context.SaveChangesAsync(cancellationToken); return(mapper.Map <HomeworkSolutionResponse>(solution)); }