コード例 #1
0
        public async Task <IActionResult> PutStudent(string id, Student student)
        {
            if (id != student.IndexNumber)
            {
                return(BadRequest());
            }

            _context.Entry(student).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!StudentExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
コード例 #2
0
ファイル: EnrollmentsController.cs プロジェクト: s7452/Ex10
        public async Task <ActionResult> EnrollStudentAsync(EnrollStudentRequest request)
        {
            var studies = await _context.Studies.FirstOrDefaultAsync(s => s.Name == request.Studies);

            if (studies == null)
            {
                return(BadRequest());
            }

            var lastEnrollment = _context.Enrollments.AsNoTracking().OrderByDescending(e => e.IdEnrollment).First().IdEnrollment;
            var enrollment     = await _context.Enrollments.FirstOrDefaultAsync(e => e.IdStudy == studies.IdStudy && e.Semester == 1);

            if (enrollment == null)
            {
                var newEnrolment = new Enrollment
                {
                    IdEnrollment = lastEnrollment + 1,
                    IdStudy      = studies.IdStudy,
                    Semester     = 1,
                    StartDate    = DateTime.Now
                };

                enrollment = newEnrolment;

                await _context.Enrollments.AddAsync(enrollment);

                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateException)
                {
                    return(Conflict());
                }
            }


            var student = await _context.Students.FirstOrDefaultAsync(stud => stud.IndexNumber == request.IndexNumber);

            if (student == null)
            {
                var newStudent = new Student
                {
                    IndexNumber  = request.IndexNumber,
                    FirstName    = request.FirstName,
                    LastName     = request.LastName,
                    BirthDate    = request.BirthDate,
                    IdEnrollment = enrollment.IdEnrollment
                };

                await _context.Students.AddAsync(newStudent);

                try
                {
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateException)
                {
                    return(Conflict());
                }
            }

            return(Ok("Enrolled"));
        }