Пример #1
0
        private void UpdateApplication()
        {
            using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
            {
                if (textBoxUpdateDateOutput.Text.ToString() == "" || textBoxStatusOutput.Text.ToString() == "")
                {
                    MessageBox.Show("Please enter both update fields!");
                    return;
                }

                string inputDate   = textBoxUpdateDateOutput.Text.ToString();
                string inputStatus = textBoxStatusOutput.Text.ToString();

                DateTime applicationDate;

                if (!DateTime.TryParse(inputDate, out applicationDate))
                {
                    MessageBox.Show("Please enter the date in correct form!");
                    return;
                }
                context.Applications.Find(applicationID).StatusDate = applicationDate;
                context.Applications.Find(applicationID).Status     = inputStatus;
                context.SaveChanges();

                InitializeUpdateForm();
            }
        }
Пример #2
0
        /// <summary>
        /// Initializes default parameters for Filter and Recruiter Dashboard
        /// </summary>
        private void UpdateForm_Load()
        {
            using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
            {
                context.SeedDatabase();
            }

            //Initialize Form Settings
            InitializeUpdateForm();
        }
        /// <summary>
        /// Initializes default parameters for Filter and Recruiter Dashboard
        /// </summary>
        private void RecruiterMainForm_Load()
        {
            using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
            {
                context.SeedDatabase();
            }

            //Initialize Form Settings
            InitializeFiltersSettings();
            InitializeDashboardSettings();
        }
 private void FilterApplicationList()
 {
     using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
     {
         string status         = comboBoxCompaniesFilter.SelectedText.ToString();
         var    getApplication = from app in context.Applications
                                 where app.Status.Equals(status)
                                 select app;
         dataGridViewApplicationDetails.DataSource = getApplication.ToList();
     }
 }
Пример #5
0
        private void UpdateInterview()
        {
            int interviewId;

            using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
            {
                if (textBoxRecruiterName.Text.ToString() == "" ||
                    textBoxInterviewRound.Text.ToString() == "" ||
                    textBoxMedium.Text.ToString() == "" ||
                    textBoxScore.Text.ToString() == "")
                {
                    MessageBox.Show("Please enter all interview fields!");
                    return;
                }

                string inputRecruiterName  = textBoxRecruiterName.Text.ToString();
                string inputInterviewRound = textBoxInterviewRound.Text.ToString();
                string inputMedium         = textBoxMedium.Text.ToString();
                string inputScore          = textBoxScore.Text.ToString();

                int intInterviewRound, intScore;
                if (!Int32.TryParse(inputInterviewRound, out intInterviewRound))
                {
                    MessageBox.Show("Please enter the interview rounds in numeric form!");
                    return;
                }
                if (!Int32.TryParse(inputScore, out intScore))
                {
                    MessageBox.Show("Please enter the score in numeric form!");
                    return;
                }

                if (dataGridViewInterviewDetails.SelectedRows.Count < 1)
                {
                    MessageBox.Show("Please select the interview first!");
                    return;
                }

                interviewId = Int32.Parse(dataGridViewInterviewDetails.SelectedRows[0].Cells[0].Value.ToString());

                Interview newInterview = context.Interviews.Find(interviewId);
                newInterview.RecruiterName  = inputRecruiterName;
                newInterview.InterviewRound = intInterviewRound;
                newInterview.ApplicationId  = this.applicationID;
                newInterview.Medium         = inputMedium;
                newInterview.Score          = intScore;

                context.SaveChanges();

                InitializeUpdateForm();
            }
        }
        /// <summary>
        /// Fills the listbox with all the posotions available according to filter selected
        /// </summary>
        private void FillRolesListBox()
        {
            //filters by active roles using unit of work
            listBoxJobPositions.Items.Clear();
            using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
            {
                var rolesByStatus = context.Jobs;

                foreach (var job in rolesByStatus)
                {
                    /*Harmeet*/ listBoxJobPositions.Items.Add(job.JobId + ": " + job.Description); // adding job id to the list to fetch the job id for
                }
            }
            // Set role listbox to have no jobs selected
            listBoxJobPositions.SelectedIndex = -1;
        }
Пример #7
0
        static void Main(string[] args)
        {
            using (RecruitmentEntities context = new RecruitmentEntities())
            {
                context.SeedDatabase();

                DisplayTable(context.Jobs);
                DisplayTable(context.Perks);
                DisplayTable(context.Applications);
                DisplayTable(context.Candidates);
                DisplayTable(context.Companies);
                DisplayTable(context.Interviews);

                Console.Read();
            }
        }
        /// <summary>
        /// Initialize Perks DatagridView
        /// </summary>
        /// <param name="jobId"></param>
        public void InitializeDataGridViewJobPerks(int jobId)
        {
            //Sets grid controls
            dataGridViewPerksOutput.AllowUserToAddRows    = false;
            dataGridViewPerksOutput.AllowUserToDeleteRows = false;
            dataGridViewPerksOutput.ReadOnly            = true;
            dataGridViewPerksOutput.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;

            dataGridViewPerksOutput.Columns.Clear();

            DataGridViewTextBoxColumn[] Columns = new DataGridViewTextBoxColumn[]
            {
                new DataGridViewTextBoxColumn()
                {
                    Name = "PerkID"
                },
                new DataGridViewTextBoxColumn()
                {
                    Name = "Description"
                },
                new DataGridViewTextBoxColumn()
                {
                    Name = "Amount"
                },
                new DataGridViewTextBoxColumn()
                {
                    Name = "AvailableAfterMonth"
                }
            };

            dataGridViewPerksOutput.Columns.AddRange(Columns);

            using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
            {
                foreach (Job job in context.Jobs)
                {
                    if (job.JobId == jobId)
                    {
                        foreach (Perk perk in job.Perks)
                        {
                            dataGridViewPerksOutput.Rows.Add(perk.PerkId, perk.Description, perk.Amount, perk.AvailableAfterMonth);
                        }
                    }
                }
            }
        }
Пример #9
0
        private void AddInterview()
        {
            using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
            {
                if (textBoxRecruiterName.Text.ToString() == "" ||
                    textBoxInterviewRound.Text.ToString() == "" ||
                    textBoxMedium.Text.ToString() == "" ||
                    textBoxScore.Text.ToString() == "")
                {
                    MessageBox.Show("Please enter all interview fields!");
                    return;
                }

                string inputRecruiterName  = textBoxRecruiterName.Text.ToString();
                string inputInterviewRound = textBoxInterviewRound.Text.ToString();
                string inputMedium         = textBoxMedium.Text.ToString();
                string inputScore          = textBoxScore.Text.ToString();

                int intInterviewRound, intScore;
                if (!Int32.TryParse(inputInterviewRound, out intInterviewRound))
                {
                    MessageBox.Show("Please enter the interview rounds in numeric form!");
                    return;
                }
                if (!Int32.TryParse(inputScore, out intScore))
                {
                    MessageBox.Show("Please enter the score in numeric form!");
                    return;
                }

                Interview newInterview = new Interview()
                {
                    RecruiterName  = inputRecruiterName,
                    InterviewRound = intInterviewRound,
                    ApplicationId  = this.applicationID,
                    Medium         = inputMedium,
                    Score          = intScore
                };


                context.Interviews.Add(newInterview);
                context.SaveChanges();

                InitializeUpdateForm();
            }
        }
        /// <summary>
        /// Fills the combobox with a list of unique companies present in the database
        /// </summary>
        private void FillCompaniesComboBox()
        {
            //Fills combobox with distinct companies

            using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
            {
                var items = context.Companies.Select(c => new
                {
                    company = c.Name
                }).Distinct()
                            .AsEnumerable().Select(c => new
                {
                    displayMember = String.Format(c.company)
                });

                comboBoxCompaniesFilter.DisplayMember = "displayMember";
                comboBoxCompaniesFilter.DataSource    = items.ToList();

                // Default is none selected
                comboBoxCompaniesFilter.SelectedIndex = -1;
            }
        }
        /// <summary>
        /// Filter listbox based on radiobutton
        /// and combobox selection (if applicable)
        /// </summary>
        private void FilterJobList()
        {
            listBoxJobPositions.Items.Clear();
            using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
            {
                var filteredRoles = from job in context.Jobs
                                    select job;
                if (comboBoxCompaniesFilter.SelectedIndex != -1)
                {
                    filteredRoles = from job in filteredRoles
                                    join company in context.Companies on job.CompanyId equals company.CompanyId
                                    where company.Name.Equals(comboBoxCompaniesFilter.Text)
                                    select job;
                }

                if (radioButtonActiveApplications.Checked == true)
                {
                    filteredRoles = from job in filteredRoles
                                    where job.Active == 1
                                    select job;
                }

                if (radioButtonFinalizedApplications.Checked == true)
                {
                    filteredRoles = from job in filteredRoles
                                    where job.Active == 0
                                    select job;
                }

                foreach (var job in filteredRoles)
                {
                    listBoxJobPositions.Items.Add(job.JobId + ": " + job.Description);
                }
            }
            // Set role listbox to have no jobs selected
            listBoxJobPositions.SelectedIndex = -1;
        }
        /// <summary>
        /// Updates the Recruiter Dashboard
        /// Takes the role selected by the list box and fills the dashboard with details about that role and it's applications
        /// </summary>
        private void UpdateDashboard()
        {
            //this.role = listBoxJobPositions.SelectedItem.ToString();

            using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
            {
                //var getRoleDetails = context.Jobs.Find(listBoxJobPositions.SelectedIndex + 1); // Harmeet: index starts from 0 and job id starts from 1.

                String selectedRole = listBoxJobPositions.SelectedItem.ToString();
                int    index        = selectedRole.IndexOf(":");
                /*Harmeet*/
                var getRoleDetails = context.Jobs.Find(Int16.Parse(selectedRole.Substring(0, index)));
                int jobID          = getRoleDetails.JobId;
                int companyID      = getRoleDetails.CompanyId;

                // Initialize Role depedent labels
                /*Harmeet*/
                this.role = getRoleDetails.Description; // Harmeet: Getting the job description from the job found in the database using selected role
                labelSelectedRoleOutput.Text = role;

                var getApplications = context.Applications.Where(a => a.JobId == jobID).ToList().Count();
                labelNumberOfCandidatesOutput.Text = getApplications.ToString();

                labelNumberOfRoundsOutput.Text = getRoleDetails.RoundsRequired.ToString();
                labelSalaryOutput.Text         = getRoleDetails.Salary.ToString();

                if (getRoleDetails.Active == 1)
                {
                    labelRoleStatusOutput.Text = "Active";
                }
                else
                {
                    labelRoleStatusOutput.Text = "Finalized";
                }

                var getCompany = from company in context.Companies
                                 where company.CompanyId == companyID
                                 select company;

                var getCompanyDetails = context.Companies.Find(companyID);
                labelCompanyNameOutput.Text      = getCompanyDetails.Name;
                labelHiringDepartmentOutput.Text = getCompanyDetails.HiringDepartment;
                labelHiringManagerOutput.Text    = getCompanyDetails.HiringManager;
                labelCompanySizeOutput.Text      = getCompanyDetails.Size.ToString();


                //Initialize datagridviews
                InitializeDataGridView <RecruitmentCodeFirstFromDB.Application>(dataGridViewApplicationDetails, "Candidate", "Job", "Interviews");

                //TODO: Filter so that the only applications information that shows is the one that matches the jobID for the role selected
                for (int i = 0; i < dataGridViewApplicationDetails.Rows.Count; i++)
                {
                    if (!string.Equals(dataGridViewApplicationDetails[1, i].Value.ToString(), jobID.ToString()))
                    {
                        dataGridViewApplicationDetails.Rows.RemoveAt(i);
                        i--;
                    }
                }

                InitializeDataGridViewJobPerks(jobID);
            }
        }
Пример #13
0
        /// <summary>
        /// Initializes Update Form
        ///
        /// Fills all datagrids
        /// Checks the application status to see if application can be updated or not
        /// Clears all textboxes
        /// </summary>
        private void InitializeUpdateForm()
        {
            //gets role and applicationID from main form
            labelRole.Text = role;
            labelApplicationIDOutput.Text = applicationID.ToString();

            // clears all textboxes
            textBoxUpdateDateOutput.ResetText();
            textBoxStatusOutput.ResetText();
            textBoxRecruiterName.ResetText();
            textBoxInterviewRound.ResetText();
            textBoxMedium.ResetText();
            textBoxScore.ResetText();

            //Checks if the application status is active and allows for updates
            using (RecruitmentEntities context = Controller <RecruitmentEntities, DbSet> .SetContext())
            {
                if (context.Applications.Find(applicationID).Status.Equals("discarded") ||
                    context.Applications.Find(applicationID).Status.Equals("hired"))
                {
                    buttonAddInterview.Enabled = false;
                }
                else
                {
                    buttonAddInterview.Enabled = true;
                }

                //get candidateID from Application Table
                var getApplicationDetails = context.Applications.Find(applicationID);
                var cadidateID            = getApplicationDetails.CandidateId;

                //get Candidate
                var getCandidate = from candidate in context.Candidates
                                   where candidate.CandidateId == cadidateID
                                   select new {
                    FirstName       = candidate.FirstName,
                    LastName        = candidate.LastName,
                    Address         = candidate.Address,
                    Language        = candidate.Language,
                    Gender          = candidate.Gender,
                    ExpectedSalary  = candidate.ExpectedSalary,
                    LatestPosition  = candidate.LatestPosition,
                    ExperienceYears = candidate.ExperienceYears
                };
                dataGridViewCandidateDetails.DataSource = getCandidate.ToList();

                //get Application

                var getApplication = from app in context.Applications
                                     where app.ApplicationId == applicationID
                                     select new
                {
                    SubmissionDate   = app.SubmissionDate,
                    EmployeeReferral = app.EmployeeReferral,
                    Status           = app.Status,
                    StatusDate       = app.StatusDate
                };
                dataGridViewApplicationDetails.DataSource = getApplication.ToList();

                //get interviews

                var getInterviews = from interview in context.Interviews
                                    where interview.ApplicationId == applicationID
                                    select new
                {
                    InterviewID    = interview.InterviewId,
                    InterviewRound = interview.InterviewRound,
                    Recruiter      = interview.RecruiterName,
                    Medium         = interview.Medium,
                    Score          = interview.Score
                };
                dataGridViewInterviewDetails.DataSource = getInterviews.ToList();
            }
        }