Exemple #1
0
        public IActionResult PromoteStudents(StudnetsPromotionReq request)
        {
            /*
             * var response = _dbService.PromoteStudnets(request);
             * if (response == null)
             * {
             *  return BadRequest();
             * }
             * if (response.Error != null)
             * {
             *  return NotFound(response.Error);
             * }
             * return Created($"api/enrollments/{response.IdEnrollment}", response);
             */
            var idStudy = _studentContext.Studies.Where(s => s.Name == request.Studies).Select(s => s.IdStudy).FirstOrDefault();

            if (idStudy == 0) // default
            {
                return(BadRequest("Study not found"));
            }

            var idEnrollment = _studentContext.Enrollment.Where(e => e.IdStudy == idStudy && e.Semester == request.Semester).Select(e => e.IdEnrollment).FirstOrDefault();

            if (idEnrollment == 0) // default
            {
                return(BadRequest("No such enrollment"));
            }

            var idEnrollmentNext = _studentContext.Enrollment.Where(e => e.IdStudy == idStudy && e.Semester == request.Semester + 1).Select(e => e.IdEnrollment).FirstOrDefault();

            if (idEnrollmentNext == 0) // default
            {
                idEnrollmentNext = _studentContext.Enrollment.Select(e => e.IdEnrollment).Max() + 1;
                var enrollment = new Entities.Enrollment
                {
                    IdEnrollment = idEnrollmentNext,
                    IdStudy      = idStudy,
                    Semester     = request.Semester + 1,
                    StartDate    = DateTime.Now
                };
                _studentContext.Add(enrollment);
            }

            var students = _studentContext.Student.Where(s => s.IdEnrollment == idEnrollment)
                           .Select(s => new Entities.Student
            {
                IndexNumber  = s.IndexNumber,
                IdEnrollment = idEnrollmentNext
            }).ToList();

            foreach (var student in students)
            {
                _studentContext.Attach(student);
                _studentContext.Entry(student).Property("IdEnrollment").IsModified = true;
            }
            _studentContext.SaveChanges();
            return(Created($"api/enrollments/{idEnrollmentNext}", idEnrollmentNext));
        }
Exemple #2
0
        public IActionResult EnrollStudent(EnrollStudentReq request)
        {
            /*
             * var response = _dbService.EnrollStudent(request);
             * if (response.Error != null)
             * {
             *  return BadRequest(response.Error);
             * }
             */

            var idStudy = _studentContext.Studies.Where(s => s.Name == request.Studies).Select(s => s.IdStudy).FirstOrDefault();

            if (idStudy == 0) // default
            {
                return(BadRequest("Study not found"));
            }

            var idEnrollment = _studentContext.Enrollment.Where(e => e.IdStudy == idStudy && e.Semester == 1).Select(e => e.IdEnrollment).FirstOrDefault();

            if (idEnrollment == 0) // default
            {
                idEnrollment = _studentContext.Enrollment.Select(e => e.IdEnrollment).Max() + 1;
                var enrollment = new Entities.Enrollment
                {
                    IdEnrollment = idEnrollment,
                    IdStudy      = idStudy,
                    Semester     = 1,
                    StartDate    = DateTime.Now
                };
                _studentContext.Add(enrollment);
            }

            var student = new Entities.Student
            {
                IndexNumber  = request.IndexNumber,
                FirstName    = request.FirstName,
                LastName     = request.LastName,
                Password     = request.Password,
                RefreshToken = request.Password,
                BirthDate    = request.BirthDate,
                IdEnrollment = idEnrollment,
                IdRole       = request.IdRole,
            };

            _studentContext.Add(student);
            _studentContext.SaveChanges();

            var response = new
            {
                IdEnrollment = idEnrollment
            };

            return(Ok(response));
        }
        public int EnrollStudentInCourse(int studentId, int courseId, Entities.Enrollment enrollment)
        {
            try
            {
                if (context.Enrollments.Any(e => e.Course.Id == courseId && e.Student.Id == studentId))
                {
                    return(2);
                }

                context.Database.ExecuteSqlCommand
                    ("INSERT INTO Enrollments VALUES (@p0,@p1,@p2)",
                    enrollment.EnrollmentDate,
                    courseId.ToString(),
                    studentId.ToString());

                return(1);
            }
            catch (DbEntityValidationException dbex) {
                foreach (var eve in dbex.EntityValidationErrors)
                {
                    string line = string.Format("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                                eve.Entry.Entity.GetType().Name, eve.Entry.State);

                    foreach (var ve in eve.ValidationErrors)
                    {
                        line = string.Format("- Property: \"{0}\", Error: \"{1}\"",
                                             ve.PropertyName, ve.ErrorMessage);
                    }
                }
                return(0);
            }
            catch (Exception ex)
            {
                return(0);
            }
        }
Exemple #4
0
        public EnrollmentResponse EnrollStudent(Models.Student student)
        {
            if (student.IndexNumber == null || student.Firstname == null || student.Lastname == null || student.BirthDate == null || student.Studies == null)
            {
                return(null);
            }
            else
            {
                int result1;
                //int idEnrollment;
                //client.Open();
                //com.Connection = client;
                //var tran = client.BeginTransaction();
                //com.Transaction = tran;
                //com.CommandText = "select * from Studies where Name=@index";
                //com.Parameters.AddWithValue("index", student.Studies);

                var result = _context.Studies.Select(e => new {
                    e.IdStudy,
                    e.Name
                }).Where(d => d.Name.Equals(student.Studies));


                //var dr = com.ExecuteReader();

                if (result == null)
                {
                    return(null);
                }

                int idStudies = result.Select(e => e.IdStudy).First();


                //dr.Close();

                var fromEnr = _context.Enrollment.Select(e => e).Where(e => e.Semester == 1 && e.IdStudy == idStudies);


                //com.CommandText = "SELECT * FROM Enrollment WHERE Semester=1 AND IdStudy=@IdStud";

                //com.Parameters.AddWithValue("IdStud", idStudies);

                //var dr2 = com.ExecuteReader();

                if (fromEnr == null)
                {
                    //dr2.Close();
                    //com.CommandText = "Select max(idenrollment) from enrollment";

                    result1 = _context.Enrollment.Max(e => e.IdEnrollment);

                    //var dr3 = com.ExecuteReader();

                    //dr3.Read();

                    //idEnrollment = dr3.GetInt32(0);

                    //dr3.Close();

                    var newEnroll = new Entities.Enrollment()
                    {
                        IdEnrollment = result1 + 1,
                        Semester     = 1,
                        IdStudy      = idStudies,
                        StartDate    = DateTime.Now
                    };

                    _context.Enrollment.Add(newEnroll);

                    _context.SaveChanges();


                    //com.CommandText = "INSERT INTO Enrollment(idEnrollment, semester, idStudy,StartDate) VALUES (@idE, @Semester,@IdStudy,@sd)";
                    //com.Parameters.AddWithValue("idE", idEnrollment + 1);
                    //com.Parameters.AddWithValue("Semester", 1);
                    //com.Parameters.AddWithValue("IdStudy", idStudies);
                    //com.Parameters.AddWithValue("sd", DateTime.Now.ToString());

                    //var dr6 = com.ExecuteNonQuery();
                }
                else
                {
                    result1 = fromEnr.Select(e => e.IdEnrollment).First();
                }

                var dont2 = _context.Student.Select(e => new { e.IndexNumber }).Where(d => d.IndexNumber.Equals(student.IndexNumber)).FirstOrDefault();

                //com.CommandText = "SELECT * FROM Student WHERE IndexNumber =@indexs";
                //com.Parameters.AddWithValue("indexs", student.IndexNumber);
                //var dr5 = com.ExecuteReader();

                if (dont2 != null)
                {
                    return(null);
                }

                //com.Parameters.AddWithValue("IdStuds", idStudies);

                _context.Add(new Entities.Student()
                {
                    FirstName    = student.Firstname,
                    IndexNumber  = student.IndexNumber,
                    LastName     = student.Lastname,
                    BirthDate    = DateTime.Now,
                    IdEnrollment = result1
                });

                _context.SaveChanges();

                //com.CommandText = "INSERT INTO Student(IndexNumber, FirstName, LastName,Birthdate,IdEnrollment) VALUES (@Indexn,@FirstName, @LastName,@Birthdate,@Studies)";
                ////...
                //com.Parameters.AddWithValue("FirstName", student.Firstname);
                //com.Parameters.AddWithValue("Indexn", student.IndexNumber);
                //com.Parameters.AddWithValue("LastName", student.Lastname);
                //com.Parameters.AddWithValue("Birthdate", DateTime.Parse(student.BirthDate));
                //com.Parameters.AddWithValue("Studies", idEnrollment);

                ////...
                //com.ExecuteNonQuery();


                var hello = _context.Enrollment.Select(e => e).Where(e => e.IdStudy == idStudies && e.Semester == 1 && e.StartDate == _context.Enrollment.Where(e => e.IdStudy == idStudies).Max(e => e.StartDate));

                //com.CommandText = "Select * from enrollment where idstudy=@iDstuds and semester=1 and StartDate=(select max(StartDate) from Enrollment where IdStudy=@IdStuds)";
                //tran.Commit();
                //var dr4 = com.ExecuteReader();


                var enrollment = new Models.Enrollment();

                enrollment.Idenrollment = hello.First().IdEnrollment;
                enrollment.semester     = hello.First().Semester;
                enrollment.IdStudy      = hello.First().IdStudy;
                enrollment.StartDate    = hello.First().StartDate.ToString();

                var er = new EnrollmentResponse(enrollment);

                return(er);
            }
        }