// get all job seekers for admin seciont

        public List<Jobseeker> GetAllActiveJobSeekersForAdmin()
        {
            List<Jobseeker> GetListOfJobSeekers = new List<Jobseeker>();

            DAL.DALRecruiterWebsiteManager DALGetJobSeekersAdmin = new DALRecruiterWebsiteManager();

            GetListOfJobSeekers = DALGetJobSeekersAdmin.GetListOfActiveJobSeekers();

            return GetListOfJobSeekers;
        }
        //gets a lift of employers for admin section

        public List<Employer> GetListOfEmployerAdmin()
        {

            List<Employer> ListOfEmployersAdmin = new List<Employer>();

            DALRecruiterWebsiteManager GetListOfEmployers = new DALRecruiterWebsiteManager();

            ListOfEmployersAdmin = GetListOfEmployers.GetListOfEmployersAdmin();


            return ListOfEmployersAdmin;
        }
        // get list of active jobs for 

        public List<Job> GetListOfAllActiveJobs()
        {
            List<Job> GettingListOfAllActiveJobs = new List<Job>();


            DAL.DALRecruiterWebsiteManager PassingToDALToGetListOfJobs = new DALRecruiterWebsiteManager();

            GettingListOfAllActiveJobs = PassingToDALToGetListOfJobs.GetAllJobsForAdminSection();


            return GettingListOfAllActiveJobs;

        }
        // gets list of admin users. 

        public List<AdminObj> GetListOfAllActiveAdminUsers()
        {
            //DAL.DALRecruiterWebsiteManager PassingToDAl = new DAL.DALRecruiterWebsiteManager();

        

            try
            {
                DALRecruiterWebsiteManager DALMngr = new DALRecruiterWebsiteManager();
                List<AdminObj> ListOfAdminObject = DALMngr.GetListOfAllAdminUser();
                return ListOfAdminObject;
            }
            catch (Exception)
            {
                
                throw;
            }

            
        }
        // gets job applications for Employer profile. 

        public List<JobApplication> GetApplicationsFormDatabase(int EmployerID)
        {

            List<JobApplication> Application = new List<JobApplication>();

            DALRecruiterWebsiteManager GetListofApplicant = new DALRecruiterWebsiteManager();


            Application = GetListofApplicant.RequestJobApplicationsFormDB(EmployerID);
            

            return Application;

        }
 // update wacthed job details
 public bool UpdateWatchedJob(WatchedJob wJob)
 {
     try
     {
         DALRecruiterWebsiteManager DALMngr = new DALRecruiterWebsiteManager();
         bool result = DALMngr.UpdateWatchedJobDetails(wJob);
         return result;
     }
     catch (Exception ex)
     {
         throw;
     }
 }
        // deletes user for the admin section

        public void DeleteUserAdmin(string Username)
        {
            DALRecruiterWebsiteManager DeletingUserAdmin = new DALRecruiterWebsiteManager();

            DeletingUserAdmin.DeleteUserAdmin(Username);
        }
        // activate employer profile
        public bool ActivateEmpProfile(Employer employer)
        {

            try
            {
                DALRecruiterWebsiteManager DALMngr = new DALRecruiterWebsiteManager();
                bool result = DALMngr.UpdateEmpProfile(employer);
                return result;
            }
            catch (Exception ex)
            {
                throw;
            }
        }
 // returns list of employers
 public List<Employer> ListOfEmployers()
 {
     try
     {
         DALRecruiterWebsiteManager DALMngr = new DALRecruiterWebsiteManager();
         List<Employer> EmpList = DALMngr.GetListOfEmployers();
         return EmpList;
     }
     catch (Exception ex)
     {
         throw;
     }
 }
        // used for the search button on the master page

        public List<Job> SearchJob(string JobType, string Location )
        {
            List<Job> JobList = new List<Job>();

            DALRecruiterWebsiteManager SearchForJobsList = new DALRecruiterWebsiteManager();

            JobList = SearchForJobsList.SearchJobsList(JobType, Location);

            return JobList;
        }
        // delete jjob seekers admin section. 

        public void DeleteJobSeekerAdminSection(string JobID)
        {
            DAL.DALRecruiterWebsiteManager DeleteJobSeeker = new DALRecruiterWebsiteManager();

            DeleteJobSeeker.DeleteJobSeekerAdminSection(JobID);


        }
        //gets a list fo jobs employer profile. 

        public List<Job> ListJobs(int EmployerID)
        {
           // int test = EmployerID;

            List<Job> JobsList = new List<Job>();

            DALRecruiterWebsiteManager GetListofJobs = new DALRecruiterWebsiteManager();

            JobsList = GetListofJobs.GetJobListForEmployerProfile(EmployerID);

            return JobsList;
        }
        // deletes emloyers admin section

        public void DeleteEmployerAdmin(string EmployerID)
        {
            DALRecruiterWebsiteManager DeleteEmployer = new DAL.DALRecruiterWebsiteManager();

            DeleteEmployer.DeleteEmployerAdminSection(EmployerID);

        }
        // deletes job application for employer profile. 

        public bool DeleteJobApplicant(string DeleteFullName, string DeleteJobId, string DeleteEmpId)
        {
            bool CheckDelete = false;

            DALRecruiterWebsiteManager DeleteJobApplicant = new DALRecruiterWebsiteManager();

          //  BLL.BLLRecruiterWebsiteManager DeleteJobApplicant = new BLLRecruiterWebsiteManager();

            CheckDelete = DeleteJobApplicant.DeleteJobApplicant(DeleteFullName, DeleteJobId, DeleteEmpId);

            return CheckDelete;

        }
        //JobSEEKER LOGIN BLL METhod

        public Jobseeker GetJSLogin(string jsUName, string jsSHPwd)
        {
            Jobseeker jobseeker = null;

            DALRecruiterWebsiteManager DALRWebMngr = new DALRecruiterWebsiteManager();
            try
            {
                jobseeker = DALRWebMngr.GetJOBSLogin(jsUName, jsSHPwd);
                
            }
            catch (Exception ex)
            {
                throw;
            }

            return jobseeker;
        }
 // method for entering job into database
 public bool InsertJob(Job job)
 {
     bool result = false;
     
     try
     {
         DALRecruiterWebsiteManager DALMngr = new DALRecruiterWebsiteManager();
         result = DALMngr.InsertJobDetails(job);
     }
     catch (Exception ex)
     {
         throw;
     }
     return result;
 }
        // insert job application form the JobApply page. 

        public bool InsertJobApplication(JobApplication NewApp)
        {
            bool DidItWork;

            DAL.DALRecruiterWebsiteManager InsertNewApp = new DALRecruiterWebsiteManager();

            DidItWork = InsertNewApp.InsertJobApplication(NewApp);

           return DidItWork;

        }
 // return list of jobseekers
 public List<Jobseeker> ListOfJobseekers()
 {
     try
     {
         DALRecruiterWebsiteManager DALMngr = new DALRecruiterWebsiteManager();
         List<Jobseeker> JSList = DALMngr.GetListOfJobseekers();
         return JSList;
     }
     catch (Exception ex)
     {
         throw;
     }
 }
        // Get job details for apply job page. 

        public Job GetJobDetails(int Jobid, int Empid)
        {

            DALRecruiterWebsiteManager RequestingJobDetails = new DALRecruiterWebsiteManager();

            Job GotJobDetails = new Job();

            GotJobDetails = RequestingJobDetails.GetJobDetails(Jobid, Empid);

            return GotJobDetails;
        }
        // activate jobseeker profile
        public bool ActivateJSProfile(Jobseeker jobseeker)
        {

            try
            {
                DALRecruiterWebsiteManager DALMngr = new DALRecruiterWebsiteManager();
                bool result = DALMngr.UpdateJSProfile(jobseeker);
                return result;
            }
            catch (Exception ex)
            {
                throw;
            }
        }
        // gets admin login.
        
        public AdminObj GetAdminLogin(string Username, string PasswordHash)
        {
            AdminObj AdminObject = null;

            DALRecruiterWebsiteManager DALManager = new DALRecruiterWebsiteManager();

            try
            {
                AdminObject = DALManager.GetAdminLogin(Username, PasswordHash);

            }
            catch (Exception)
            {
                
                throw;
            }

            return AdminObject;
        }
 // return list of watched jobs
 public List<WatchedJob> GetListOfWatchedJobsFromDAL()
 {
     try
     {
         DALRecruiterWebsiteManager DALMngr = new DALRecruiterWebsiteManager();
         List<WatchedJob> watchedJobList = DALMngr.GetListOfWatchedJobsFromDB();
         return watchedJobList;
     }
     catch (Exception ex)
     {
         throw;
     }
 }
        // create an admin user. 

        public void CreateAdminUser( AdminObj adminObject)
        {
            DALRecruiterWebsiteManager DALWebMngr = new DALRecruiterWebsiteManager();

            try
            {
                DALWebMngr.CreateAdminProfile(adminObject);
            }
            catch (Exception)
            {
                
                throw;
            }
        }
 public List<Job> GetJobListFromDAL()
 {
     List<Job> JobList = new List<Job>();
     try
     {
         DALRecruiterWebsiteManager DALMngr = new DALRecruiterWebsiteManager();
         JobList = DALMngr.GetJobListFromDB();
     }
     catch (Exception ex)
     {
         throw;
     }
     return JobList;
 }
 // create employer profile
 public bool CreateEmployerProfile(Employer Emp)
 {
     bool result = false;
     // 'using DAL; namespace allows for the created of an instance of the public class DALRecruiterWebsiteManager()
     DALRecruiterWebsiteManager DALRWebMngr = new DALRecruiterWebsiteManager();
     try 
     {
         result = DALRWebMngr.CreateEmpProfile(Emp);
     }
     catch (Exception ex)
     {
         throw;
     }
     return result;
 }
        // get employer login

        public Employer GetEmployerLogin(string empUName, string empSHPwd)
        {
            // string variable to be returned:
            Employer Emp = null;
            
            DALRecruiterWebsiteManager DALRWebMngr = new DALRecruiterWebsiteManager();
            try
            {
                // call method from DAL to return string
                Emp = DALRWebMngr.GetEmpLogin(empUName, empSHPwd);

                
            }
            catch (Exception ex)
            {
                throw;
            }

            return Emp;
        }
        // JOBSEEKER SIGNUP BLL METHOD    

        public bool CreateJobSeekerProfile(Jobseeker js)
        {
            bool result = false;
            DALRecruiterWebsiteManager DALRWebMngr = new DALRecruiterWebsiteManager();

            try
            {
                result = DALRWebMngr.CreateJSProfile(js);
            }
            catch (Exception ex)
            {
                throw;
            }
            return result;
        }
        // gets all the active job applicants. 

        public List<JobApplication> GetListOfAllActiveJobApplicant()
        {
            List<JobApplication> ListOfActiveJobApplication = new List<JobApplication>();

            DAL.DALRecruiterWebsiteManager PassingToDALToGetListOfActiveJobApplicant = new DALRecruiterWebsiteManager();

            ListOfActiveJobApplication = PassingToDALToGetListOfActiveJobApplicant.GetListOfActiveJobApplications();

            return ListOfActiveJobApplication;

        }
        //delets job form employers profile. 

        public void DeleteJobFormEmployerProfile(string JobID)
        {
            DAL.DALRecruiterWebsiteManager DeleteJobEmpProfile = new DALRecruiterWebsiteManager();

            DeleteJobEmpProfile.DeleteJobFormEmployerProfile(JobID);
        }