Untitled

 avatar
unknown
java
2 years ago
7.5 kB
9
Indexable
package org.student;

import org.misc.Connect;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Scanner;

public class CourseEnrollment {

    Scanner scan = new Scanner(System.in);
    Connect conn = new Connect();
    public void enrollCourse() {

        String in = "";

        do {

            System.out.println("1.Register\n2.De-Register");
            System.out.print("Input: ");
            in = scan.nextLine();



            if (!in.equals("1") && !in.equals("2")) {
                System.out.println("Invalid Input! Press try again");
            }

        } while (!in.equals("1") && !in.equals("2"));

        if ( in.equals("1"))
            courseRegister();

        if ( in.equals("2"))
            courseDeregister();

    }



    private void courseRegister() {

        String code = "",id = "",min_cg="",user_cg="";

        System.out.print("Course code: ");
        code = scan.nextLine();

        ResultSet rs3 = null,rs4=null,rs5=null,rs6=null,rs7=null;
        int y = 0,statusCount = 0;

        String sql3 = "SELECT * FROM offered_courses WHERE course_code = ?";
        String sql4 = "SELECT  semester_id FROM offered_courses WHERE course_code = ?";
        String sql5 = "SELECT min_cgpa FROM offered_courses WHERE course_code = ?";
        String sql6 = "SELECT current_cgpa FROM students WHERE email = ?";
        String sql7 = "SELECT status FROM semester WHERE id = ?";


        try {

            PreparedStatement stmt3 = conn.Database().prepareStatement(sql3,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            PreparedStatement stmt4 = conn.Database().prepareStatement(sql4,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            PreparedStatement stmt5 = conn.Database().prepareStatement(sql5,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            PreparedStatement stmt6 = conn.Database().prepareStatement(sql6,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            PreparedStatement stmt7 = conn.Database().prepareStatement(sql7,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

            stmt3.setString(1,code);
            stmt4.setString(1,code);
            stmt5.setString(1,code);


            rs3 = stmt3.executeQuery();

            while (rs3.next()){
                String course = rs3.getString("course_code");
                if (course.equals(code)){
                    y++;
                }
            }

            if ( y == 0) {
                System.out.println("This course has not been offered yet");
                StudentOptions temp = new StudentOptions();

                temp.optionsStudent();
            }

            rs4 = stmt4.executeQuery();

            if(rs4.next()) {
                id = rs4.getString(1);

            }

            stmt7.setString(1,id);
            rs7 = stmt7.executeQuery();

            while(rs7.next()) {

                String status = rs7.getString("status");
                if(status.equals("1")){
                    statusCount++;
                    break;
                }
            }



            if (statusCount == 0) {
                System.out.println("The associated semester has already ended");
                StudentOptions myVar = new StudentOptions();
                myVar.optionsStudent();
            }

            rs5 = stmt5.executeQuery();
            if(rs5.next()) {
                min_cg = rs5.getString("min_cgpa");
            }

            LoggedinMail var1 = new LoggedinMail();
            String mailID = var1.getEmail();

            stmt6.setString(1,mailID);

            rs6 = stmt6.executeQuery();

            if(rs6.next()) {
                user_cg = rs6.getString(1);
            }

            Double min_gpa = Double.parseDouble(min_cg);
            Double user_gpa = Double.parseDouble(user_cg);

            if ( user_gpa < min_gpa) {
                System.out.println("You are not eligible to register for this course");
                StudentOptions mytemp = new StudentOptions();
                mytemp.optionsStudent();
            }

            else {
                String sql9 = "SELECT student_email,course_code FROM student_courses WHERE student_email = ? AND course_code = ?";
                PreparedStatement stmt9 = conn.Database().prepareStatement(sql9,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

                stmt9.setString(1,mailID);
                stmt9.setString(2,code);

                ResultSet rs9 = stmt9.executeQuery();

                while(rs9.next()) {
                    String stu = rs9.getString("student_email");
                    String tempCode = rs9.getString("course_code");

                    if ( stu.equals(mailID) && tempCode.equals(code)) {
                        System.out.println("You have already registered for this course");
                        StudentOptions temp9 = new StudentOptions();
                        temp9.optionsStudent();
                    }
                }
            }

            String sql8 = "INSERT INTO student_courses( student_email, course_code, semester_id ) VALUES (?,?,?)";

            PreparedStatement stmt8 = conn.Database().prepareStatement(sql8,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

            stmt8.setString(1,mailID);
            stmt8.setString(2,code);
            stmt8.setString(3,id);

            stmt8.executeUpdate();


        } catch (Exception e) {
            e.printStackTrace();
        }

        System.out.println("You have successfully registered for the desired course");
        StudentOptions temp6 = new StudentOptions();
        temp6.optionsStudent();
    }

    private void courseDeregister() {

        String courseCode = "",temp="";
        int y = 0;

        System.out.print("Course Code: ");
        courseCode = scan.nextLine();

        String sql1 = "SELECT * FROM student_courses WHERE course_code = ?";
        try{
            PreparedStatement stmt1 = conn.Database().prepareStatement(sql1,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
            stmt1.setString(1,courseCode);

            ResultSet rs1 = stmt1.executeQuery();

            while(rs1.next()) {
                temp = rs1.getString("course_code");
                if ( temp.equals(courseCode)) {
                    y++;
                }
            }

            if ( y == 0 ) {
                System.out.println("You are not registered for this course");
                StudentOptions var5 = new StudentOptions();
                var5.optionsStudent();
            }

            String sql2 =  "DELETE FROM student_courses WHERE course_code = ?";
            PreparedStatement stmt2 = conn.Database().prepareStatement(sql2,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);

            stmt2.setString(1,courseCode);

            stmt2.executeUpdate();


        } catch ( Exception e) {
            e.printStackTrace();
        }

        System.out.println("You have been deregistered for the course: " + courseCode );
        StudentOptions temp6 = new StudentOptions();
        temp6.optionsStudent();

    }


}