Exemple #1
0
        public PromoteStudentsResponse PromoteStudents(PromoteStudentsRequest request)
        {
            var response = new PromoteStudentsResponse();

            response.setStatus(400, "Unknown Error"); // domyślnie - błąd

            var _studies = _context.Studies.Where(s => s.Name == request.Studies).FirstOrDefault();

            if (_studies == null)
            {
                response.setStatus(404, "ERROR: nie znaleziono studiów");
                return(response);
            }
            ;

            var _enrollment = _context.Enrollment
                              .Where(a => a.IdStudy == _studies.IdStudy && a.Semester == request.Semester)
                              .OrderByDescending(s => s.StartDate).FirstOrDefault();

            if (_enrollment == null)
            {
                response.setStatus(404, "ERROR: nie znaleziono semestru i studiów");
                return(response);
            }
            ;
            Console.WriteLine("tutaj:" + _enrollment.IdEnrollment);
            var _enrollment_next = _context.Enrollment.Where(p => p.Semester == _enrollment.Semester + 1).FirstOrDefault();

            if (_enrollment_next == null)
            {
                _enrollment_next = new Enrollment()
                {
                    IdEnrollment = _context.Enrollment.Max(p => p.IdEnrollment) + 1,
                    Semester     = _enrollment.Semester + 1,
                    IdStudy      = _enrollment.IdStudy,
                    StartDate    = DateTime.Now.Date
                };
                _context.Add(_enrollment_next);
                _context.SaveChanges();
            }

            var _students = _context.Student.Where(s => s.IdEnrollment == _enrollment.IdEnrollment);

            foreach (var s in _students)
            {
                s.IdEnrollment = _enrollment_next.IdEnrollment;
            }
            _context.SaveChanges();
            response.Semester    = _enrollment_next.Semester;
            response.StartDate   = _enrollment_next.StartDate.ToString();
            response.StudiesName = _studies.Name;
            response.setStatus(201, "Studenci zostali promowani na następny semestr");
            return(response);
        }
Exemple #2
0
        public PromoteStudentsResponse PromoteStudents(PromoteStudentsRequest request)
        {
            var response = new PromoteStudentsResponse();

            response.setStatus(400, "Error");

            var _studies = _context.Studies.Where(s => s.Name == request.Studies).FirstOrDefault();

            if (_studies == null)
            {
                response.setStatus(404, "ERROR: studies do not exist");
                return(response);
            }
            ;

            var _enrollment = _context.Enrollment
                              .Where(a => a.IdStudy == _studies.IdStudy && a.Semester == request.Semester)
                              .OrderByDescending(s => s.StartDate).FirstOrDefault();

            if (_enrollment == null)
            {
                response.setStatus(404, "ERROR: semester and studies do not exist in database");
                return(response);
            }
            ;
            Console.WriteLine("here:" + _enrollment.IdEnrollment);
            var _enrollment_next = _context.Enrollment.Where(p => p.Semester == _enrollment.Semester + 1).FirstOrDefault();

            if (_enrollment_next == null)
            {
                _enrollment_next = new Enrollment()
                {
                    IdEnrollment = _context.Enrollment.Max(p => p.IdEnrollment) + 1,
                    Semester     = _enrollment.Semester + 1,
                    IdStudy      = _enrollment.IdStudy,
                    StartDate    = DateTime.Now.Date
                };
                _context.Add(_enrollment_next);
                _context.SaveChanges();
            }

            var _students = _context.Student.Where(s => s.IdEnrollment == _enrollment.IdEnrollment);

            foreach (var s in _students)
            {
                s.IdEnrollment = _enrollment_next.IdEnrollment;
            }
            _context.SaveChanges();
            response.Semester    = _enrollment_next.Semester;
            response.StartDate   = _enrollment_next.StartDate.ToString();
            response.StudiesName = _studies.Name;
            response.setStatus(201, "Students are promoted on the next semester");
            return(response);
        }
        public PromoteStudentsResponse PromoteStudents(PromoteStudentsRequest request)
        {
            var response = new PromoteStudentsResponse();

            response.setStatus(400, "Unknown Error"); // domyślnie - błąd

            using (var connection = new SqlConnection(CONN_STR))
            {
                connection.Open();
                var command     = connection.CreateCommand();
                var transaction = connection.BeginTransaction();

                command.Connection  = connection;
                command.Transaction = transaction;

                command.CommandText = "select e.IdEnrollment from dbo.Enrollment e inner join dbo.Studies s on e.IdStudy = s.IdStudy where s.Name = @studyName and e.Semester = @semesterNumber";
                command.Parameters.AddWithValue("studyName", request.Studies);
                command.Parameters.AddWithValue("semesterNumber", request.Semester);

                var reader = command.ExecuteReader();
                if (!reader.Read())
                {
                    reader.Close();
                    response.setStatus(404, "ERROR: nie znaleziono semestru i/lub studiów");
                    transaction.Rollback();
                }
                else
                {
                    reader.Close();


                    using (SqlConnection conn = new SqlConnection(CONN_STR))
                    {
                        conn.Open();
                        SqlCommand cmd = new SqlCommand("Promote", conn);
                        cmd.CommandType = CommandType.StoredProcedure;

                        cmd.Parameters.Add(new SqlParameter("@studies", request.Studies));
                        cmd.Parameters.Add(new SqlParameter("@semester", request.Semester));
                        cmd.ExecuteReader();
                        conn.Close();
                    }
                    response.Semester    = request.Semester + 1;
                    response.StartDate   = DateTime.Now.ToString("dd.MM.yyyy");
                    response.StudiesName = request.Studies;

                    transaction.Commit();
                    response.setStatus(201, "Studenci zostali promowani na następny semestr");
                }
            }
            return(response);
        }