Class Scheduler


  • public class Scheduler
    extends java.lang.Object
    The Scheduler object manages business layer functionality for the overall application.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static javafx.collections.ObservableList<java.lang.String> AppointmentTypes  
      private static javafx.collections.ObservableList<java.time.LocalTime> hour_picker  
      private static java.util.TimeZone tz  
      private static int UserID  
    • Constructor Summary

      Constructors 
      Constructor Description
      Scheduler()  
    • Field Detail

      • AppointmentTypes

        private static javafx.collections.ObservableList<java.lang.String> AppointmentTypes
      • tz

        private static java.util.TimeZone tz
      • hour_picker

        private static javafx.collections.ObservableList<java.time.LocalTime> hour_picker
      • UserID

        private static int UserID
    • Constructor Detail

      • Scheduler

        public Scheduler()
    • Method Detail

      • setUserID

        public static void setUserID​(int user)
        Sets the value of user id to the user who is logged in.
        Parameters:
        user - Integer, UserId
      • getUserID

        public static int getUserID()
        Returns the user id of the user who logged in
        Returns:
        Integer, user id
      • loginToApplication

        public boolean loginToApplication​(java.lang.String username,
                                          java.lang.String password)
                                   throws java.sql.SQLException,
                                          java.io.IOException
        Authenticates a user based on their username and password. Uses the DAO package to handle backend operations. Displays Appointment alerts or error messaging as appropriate.
        Parameters:
        username - is the username for login
        password - is the password for login
        Returns:
        boolean is true if the user / password combination authenticates. Returns false if it does not.
        Throws:
        java.sql.SQLException - in case of error
        java.io.IOException
      • logLoginAttempt

        public void logLoginAttempt​(java.lang.String user,
                                    boolean success)
                             throws java.io.IOException
        Writes to the log file whenever a login attempt is made. Writes the following to the log: Username, date and timestamp, and whether or not the login attempt was successful. Username is recorded as "Unknown" if the username field was left blank during the login attempt. Called by checkAuthentication in the dialogueHandling class.
        Parameters:
        user - the user name
        success - a boolean that represents whether a login attempt was successful. True = Successful attempt. False = Unsuccessful Login attempt.
        Throws:
        java.io.IOException
      • getAllCustomers

        public static javafx.collections.ObservableList<Customer> getAllCustomers()
        Retrieves an list of all Customers
        Returns:
        an observable list of all customers
      • addCustomer

        public static void addCustomer​(Customer C)
        Adds a new customer.
        Parameters:
        C - is the customer object to be added.
      • deleteCustomer

        public static void deleteCustomer​(Customer C)
        Deletes a Customer.
        Parameters:
        C - is the customer object to be deleted.
      • updateCustomer

        public static void updateCustomer​(Customer C)
        Updates a customer's record in the application. It is assumed that the data has already been validated.
        Parameters:
        C - Customer object
      • getAllCountries

        public static javafx.collections.ObservableList<Country> getAllCountries()
        Returns a list of all Countries
        Returns:
        Observable list of all countries
      • getDivision

        public static javafx.collections.ObservableList<Division> getDivision​(Country country_id)
        Returns a list of division id's based on country id
        Parameters:
        country_id - for country for which division is desired
        Returns:
        Observable list of divisions
      • getCountry

        public static Country getCountry​(int country_id)
        Given country_id will return the associated country object.
        Parameters:
        country_id -
        Returns:
      • getDivision

        public static Division getDivision​(int division_id)
        Given a Division ID, will return the associated Division object
        Parameters:
        division_id -
        Returns:
      • getAllContacts

        public static javafx.collections.ObservableList<Contact> getAllContacts()
        Returns all contacts back to the UI
        Returns:
        Observable List
      • getAllAppointments

        public static javafx.collections.ObservableList<Appointment> getAllAppointments()
        Returns all Appointments to the UI
        Returns:
        Observable list of all appointments.
      • getContactByID

        public static Contact getContactByID​(int id)
        Returns a Contact object, given their Contact ID
        Parameters:
        id - , Integer contact ID
        Returns:
        Contact object
      • returnAppointmentTypes

        public static javafx.collections.ObservableList<java.lang.String> returnAppointmentTypes()
        Returns a list of allowable appointment types
        Returns:
        Observable list of appointment types
      • addAppointment

        public static void addAppointment​(Appointment A)
        Adds a new appointment to the application. Assumes error validation has already been completed.
        Parameters:
        A - Appointment object
      • returnCustomerName

        public static java.lang.String returnCustomerName​(int CustID)
        Returns the Name of the Customer with the given ID
        Parameters:
        CustID - Integer
        Returns:
        String, Customer name
      • returnCustomer

        public static Customer returnCustomer​(int CustID)
        Given a particular customer id, returns the whole customer object
        Parameters:
        CustID - Integer, Customer ID
        Returns:
        Customer object
      • modifyAppointment

        public static void modifyAppointment​(Appointment A)
        Modify an already established Appointment record
        Parameters:
        A - in appointment object.
      • deleteAppointment

        public static void deleteAppointment​(Appointment A)
        Delete an existing Appointment record.
        Parameters:
        A - the appointment object that is the record to be deleted.
      • allAppointmentsByCustomer

        public static java.util.LinkedList<Appointment> allAppointmentsByCustomer​(int CustomerID)
        Returns a linked list of all appointments associated with the given customer.
        Parameters:
        CustomerID - , Integer customer id
        Returns:
        Linked List of appointment objects.
      • cascadingDeleteAppointmentByCustomer

        public static void cascadingDeleteAppointmentByCustomer​(int CustID)
        Deletes all appointments associated with a customer. Takes no action if there are no associated appointments.
        Parameters:
        CustID - , Integer customer ID
      • returnAppointmentsByDayInterval

        public static javafx.collections.ObservableList<Appointment> returnAppointmentsByDayInterval​(int interval)
        Returns appointment view of appointments with start dates in the next x days.
        Parameters:
        interval - Number of days in the future in which the appointment should occur. Starts with the value of now()
        Returns:
        Observable list of appointments. Returns an empty list if there are no appointments in the time period.