Example #1
0
        /// <summary>
        /// Updates all the jobs shown in the form.
        /// </summary>
        public void UpdateJobs()
        {
            // Clear all controls
            JobPanel.Controls.Clear();
            JobPanel.Visible = false;
            JobPanel.SuspendLayout();

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

            // Filter items by open/ closed/ all]
            if (FilterComboBox.SelectedIndex == 0)
            {
                AllJobs = m_presenter.GetAllJobs();
            }
            else if (FilterComboBox.SelectedIndex == 1)
            {
                AllJobs = m_presenter.GetAllJobs().Where(j => j.Open == true).ToList();
            }
            else if (FilterComboBox.SelectedIndex == 2)
            {
                AllJobs = m_presenter.GetAllJobs().Where(j => j.StaffID == 0).ToList();
            }
            else if (FilterComboBox.SelectedIndex == 3)
            {
                AllJobs = m_presenter.GetAllJobs().Where(j => j.Open == false).ToList();
            }

            // Sort jobs by due date
            AllJobs = AllJobs.OrderBy(j => j.CompletionDate).ToList();

            Queue <JobControlSmall> jobControls = new Queue <JobControlSmall>();

            var titles = new JobControlSmallTitles();

            titles.Dock = DockStyle.Top;
            JobPanel.Controls.Add(titles, 0, 0);
            JobPanel.RowCount = AllJobs.Count + 1;
            JobPanel.HorizontalScroll.Maximum = 0;
            JobPanel.HorizontalScroll.Enabled = false;
            JobPanel.HorizontalScroll.Visible = false;

            foreach (var job in AllJobs)
            {
                var newJob = new JobControlSmall(m_presenter, job);
                newJob.Dock = DockStyle.Top;
                jobControls.Enqueue(newJob);
                //newJob.Dock = DockStyle.Top;
            }

            for (int i = 1; i <= AllJobs.Count; i++)
            {
                JobPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 52));
                //JobPanel.RowStyles.Add(new RowStyle(SizeType.Absolute, 52.0f));
                JobPanel.Controls.Add(jobControls.Dequeue(), 0, i);
            }

            JobPanel.ResumeLayout();
            JobPanel.Visible = true;
        }
 void Awake()
 {
     jobPanel = FindObjectOfType <JobPanel>();
 }