private void sname_SelectedIndexChanged(object sender, EventArgs e)
        {
            using (var db = new Session5Entities())
            {
                var ID  = skill.SelectedIndex + 1;
                var ses = session.SelectedIndex + 1;

                var name = sname.Text;
                var IDs  = db.Competitors.Where(x => x.competitorName == name).FirstOrDefault();
                var qw   = db.Competitions.Where(x => x.skillIdFK == ID && x.sessionNo == ses).FirstOrDefault();
                var q    = db.Results.Where(x => x.recordsIdFK == IDs.recordsId && x.competitionIdFK == qw.competitionId).FirstOrDefault();
                if (q == null)
                {
                    dataGridView1.Columns.Clear();
                    dataGridView1.DataSource            = cdt(qw);
                    dataGridView1.SelectionMode         = DataGridViewSelectionMode.FullRowSelect;
                    dataGridView1.Columns["MM"].Visible = false;
                    BTGV();
                }
                else
                {
                    dataGridView1.Columns.Clear();
                    dataGridView1.DataSource            = ucdt(q);
                    dataGridView1.SelectionMode         = DataGridViewSelectionMode.FullRowSelect;
                    dataGridView1.Columns["MM"].Visible = false;
                    BTGV();
                }
            }
        }
        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            using (var db = new Session5Entities())
            {
                //Once a skill is chosen, the screen shows the total number of competitors for that skill who have
                //already been assigned seats and the number still without seats
                listBox1.Items.Clear();
                var ID = comboBox1.SelectedIndex + 1;
                var q  = db.Competitors.Where(x => x.skillIdFK == ID).ToList();

                AssignedNumber.Text   = q.Where(x => x.assignedSeat != 0).Count().ToString();
                UnassignedNumber.Text = q.Where(x => x.assignedSeat == 0).Count().ToString();
                val = q.Where(x => x.assignedSeat == 0).Count();
                foreach (var item in q)
                {
                    //On the right of the screen will be a list of all the competitors(i.e.competitor’s name and
                    //their country) who have not been assigned to any seats yet.
                    if (item.assignedSeat == 0)
                    {
                        listBox1.Items.Add(item.competitorName + ", " + item.competitorCountry);
                    }
                }
                dataGridView1.DataSource = cdt(q.Count());
            }
        }
Esempio n. 3
0
 public async Task <List <string> > getSkills()
 {
     using (var db = new Session5Entities())
     {
         return((from s in db.Skills
                 select s.skillName).ToList());
     }
 }
Esempio n. 4
0
 /// <summary>
 /// Get all the data to fill up the user interface.
 /// </summary>
 public void GetData()
 {
     using (var db = new Session5Entities())
     {
         var returnlist = new List <MarksEnter>();
         var getSkillid = (from s in db.Skills
                           where s.skillName == skill_combo.SelectedItem.ToString()
                           select s.skillId).First();
         var getSession   = int.Parse(session_combo.SelectedItem.ToString());
         var competitions = (from c in db.Competitions
                             where c.skillIdFK == getSkillid
                             where c.sessionNo == getSession
                             select c).First();
         questionmaxmarks.Clear();
         questionmaxmarks.Add(competitions.q1MaxMarks);
         questionmaxmarks.Add(competitions.q2MaxMarks);
         questionmaxmarks.Add(competitions.q3MaxMarks);
         questionmaxmarks.Add(competitions.q4MaxMarks);
         var me1 = new MarksEnter()
         {
             Question = "Question 1",
             Grade    = "Poor",
             Marks    = 0
         };
         var me2 = new MarksEnter()
         {
             Question = "Question 2",
             Grade    = "Poor",
             Marks    = 0
         };
         returnlist.Add(me1);
         returnlist.Add(me2);
         if (competitions.q3MaxMarks != 0)
         {
             var me3 = new MarksEnter()
             {
                 Question = "Question 3",
                 Grade    = "Poor",
                 Marks    = 0
             };
             returnlist.Add(me3);
         }
         if (competitions.q4MaxMarks != 0)
         {
             var me4 = new MarksEnter()
             {
                 Question = "Question 4",
                 Grade    = "Poor",
                 Marks    = 0
             };
             returnlist.Add(me4);
         }
         dgvdata = returnlist;
         dataGridView1.DataSource = null;
         dataGridView1.DataSource = dgvdata;
     }
 }
Esempio n. 5
0
 private void name_SelectedIndexChanged(object sender, EventArgs e)
 {
     using (var db = new Session5Entities())
     {
         var id = skill.SelectedIndex + 1;
         var q  = db.Competitions.Where(x => x.skillIdFK == id).ToList();
         dataGridView1.DataSource = cdt(q);
     }
 }
Esempio n. 6
0
 private void CalculateBonus_Load(object sender, EventArgs e)
 {
     using (var db = new Session5Entities())
     {
         var q = db.Skills.ToList();
         foreach (var item in q)
         {
             skill.Items.Add(item.skillName);
         }
     }
 }
Esempio n. 7
0
 /// <summary>
 /// Get competitors to fill up combobox
 /// </summary>
 /// <returns></returns>
 public async Task <List <string> > getCompetitors()
 {
     using (var db = new Session5Entities())
     {
         var getSkillid = (from s in db.Skills
                           where s.skillName == skill_combo.SelectedItem.ToString()
                           select s.skillId).First();
         return((from s in db.Competitors
                 where s.skillIdFK == getSkillid
                 select s.competitorName).ToList());
     }
 }
 private void Assign_Seating_Load(object sender, EventArgs e)
 {
     using (var db = new Session5Entities())
     {
         //The user must first choose the skill that they want to focus on, from the drop‐down list.
         //The system currently only supports two skills – Software Solutions and Web Tech.
         var q = db.Skills.ToList();
         foreach (var item in q)
         {
             comboBox1.Items.Add(item.skillName);
         }
     }
 }
Esempio n. 9
0
 private void skill_SelectedIndexChanged(object sender, EventArgs e)
 {
     using (var db = new Session5Entities())
     {
         var skillidx = skill.SelectedIndex + 1;
         var q        = db.Competitors.Where(x => x.skillIdFK == skillidx).ToList();
         name.Items.Clear();
         foreach (var item in q)
         {
             name.Items.Add(item.competitorName);
         }
     }
 }
Esempio n. 10
0
 private void submit_button_Click(object sender, EventArgs e)
 {
     using (var db = new Session5Entities())
     {
         var getSkillid = (from s in db.Skills
                           where s.skillName == skill_combo.SelectedItem.ToString()
                           select s.skillId).First();
         var getSession   = int.Parse(session_combo.SelectedItem.ToString());
         var competitions = (from c in db.Competitions
                             where c.skillIdFK == getSkillid
                             where c.sessionNo == getSession
                             select c).First();
         var user      = name_combo.SelectedItem.ToString();
         var getUserID = (from u in db.Competitors
                          where u.competitorName == user
                          select u.recordsId).First();
         var r = new Result()
         {
             competitionIdFK = competitions.competitionId,
             recordsIdFK     = getUserID,
             q1Marks         = 0,
             q2Marks         = 0,
             q3Marks         = 0,
             q4Marks         = 0,
             totalMarks      = 00,
         };
         for (int i = 0; i < dataGridView1.Rows.Count; i++)
         {
             if (i == 0)
             {
                 r.q1Marks = double.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
             }
             else if (i == 1)
             {
                 r.q2Marks = double.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
             }
             else if (i == 2)
             {
                 r.q3Marks = double.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
             }
             if (i == 3)
             {
                 r.q4Marks = double.Parse(dataGridView1.Rows[i].Cells[2].Value.ToString());
             }
         }
         r.totalMarks = r.q1Marks + r.q2Marks + r.q3Marks + r.q4Marks;
         db.Results.Add(r);
         db.SaveChanges();
         MessageBox.Show("Done");
     }
 }
Esempio n. 11
0
        DataTable cdt1(Dictionary <string, double> keyValuePairs)
        {
            DataTable dt = new DataTable();

            dt.Columns.Add("Col1");

            foreach (var item in keyValuePairs)
            {
                DataRow dr = dt.NewRow();
                using (var db = new Session5Entities())
                {
                    var q = db.Competitors.Where(x => x.competitorName == item.Key).FirstOrDefault();
                    dr["Col1"] = q.competitorCountry;
                }
                dt.Rows.Add(dr);
            }
            return(dt);
        }
Esempio n. 12
0
 private void button1_Click(object sender, EventArgs e)
 {
     try
     {
         using (var db = new Session5Entities())
         {
             var user = (from u in db.Users
                         where u.userId == user_box.Text
                         where u.passwd == password_box.Text
                         select u).First();
             this.Hide();
             var form = new MainMenu();
             form.Closed += (s, args) => this.Close();
             form.Show();
         }
     }
     catch
     {
         MessageBox.Show("Invalid Login");
     }
 }
 private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
 {
     if (e.ColumnIndex == 2)
     {
         DataGridViewRow dr = dataGridView1.Rows[e.RowIndex];
         if (dr.Cells[2].Value != null)
         {
             var grade = dr.Cells[2].Value.ToString();
             using (var db = new Session5Entities())
             {
                 double marks = 0;
                 var    mm    = double.Parse(dr.Cells[0].Value.ToString());
                 if (grade == "Good")
                 {
                     marks = mm;
                 }
                 else if (grade == "Average")
                 {
                     marks = mm * 0.65;
                 }
                 else if (grade == "Poor")
                 {
                     marks = mm * 0.2;
                 }
                 var mark = decimal.Round(decimal.Parse(marks.ToString()), 1);
                 dr.Cells[3].Value = mark;
             }
         }
     }
     if (e.ColumnIndex == 3)
     {
         var total = 0.0;
         foreach (DataGridViewRow dr in dataGridView1.Rows)
         {
             var marks = double.Parse(dr.Cells[3].Value.ToString());
             total += marks;
         }
         Total.Text = total.ToString();
     }
 }
Esempio n. 14
0
 public async Task <List <ResultsView> > GetResults()
 {
     using (var db = new Session5Entities())
     {
         var returnlist = new List <ResultsView>();
         var Skillid    = (from s in db.Skills
                           where s.skillName == comboBox1.SelectedItem.ToString()
                           select s.skillId).First();
         var competitors = (from c in db.Competitors
                            where c.skillIdFK == Skillid
                            select c).ToList();
         number_sessions_label.Text = (from c in db.Competitions
                                       where c.skillIdFK == Skillid
                                       select c).Count().ToString();
         completed_sessions_label.Text = (from r in db.Results
                                          where r.totalMarks != 0
                                          where r.Competition.skillIdFK == Skillid
                                          select r.competitionIdFK).Distinct().Count().ToString();
         foreach (var item in competitors)
         {
             double mark    = 0;
             var    results = (from r in db.Results
                               where r.recordsIdFK == item.recordsId
                               select r).ToList();
             foreach (var item1 in results)
             {
                 mark += item1.totalMarks;
             }
             var rv = new ResultsView()
             {
                 Competitor = item.competitorName,
                 Country    = item.competitorCountry,
                 TotalMarks = mark
             };
             returnlist.Add(rv);
         }
         return(returnlist);
     }
 }
Esempio n. 15
0
 private async void Button4_Click(object sender, EventArgs e)
 {
     //confirm
     if (assignedlist.Count > 0)
     {
         using (var db = new Session5Entities())
         {
             foreach (var item in assignedlist)
             {
                 var user = (from u in db.Competitors
                             where u.recordsId == item.ID
                             select u).First();
                 user.assignedSeat = item.SeatNumber;
             }
             await db.SaveChangesAsync();
         }
     }
     else
     {
         MessageBox.Show("Wait... you can't just save without assigning seats to anyone!");
     }
 }
        private void Confirm_Click(object sender, EventArgs e)
        {
            var skill = comboBox1.SelectedIndex + 1;

            foreach (DataGridViewRow row in dataGridView1.Rows)
            {
                foreach (DataGridViewCell dc in row.Cells)
                {
                    if (string.IsNullOrEmpty(dc.Value.ToString()) == false)
                    {
                        var seatNo = dc.Value.ToString().Substring(0, 1);
                        var ID     = dc.Value.ToString().Substring(1).Trim();
                        using (var db = new Session5Entities())
                        {
                            var q = db.Competitors.Where(x => x.skillIdFK == skill && x.competitorId == ID).FirstOrDefault();
                            try
                            {
                                q.assignedSeat = int.Parse(seatNo);
                                try
                                {
                                    db.SaveChanges();
                                    MessageBox.Show("Success!");
                                }
                                catch (Exception es)
                                {
                                    MessageBox.Show(es.ToString());
                                }
                            }
                            catch
                            {
                                continue;
                            }
                        }
                    }
                }
            }
        }
Esempio n. 17
0
        private async void UpdateUI()
        {
            toughestsession_label.Text = "No Data";
            easiestsession_label.Text  = "No Data";
            pictureBox1.Image          = null;

            try
            {
                using (var db = new Session5Entities())
                {
                    var Skillid = (from s in db.Skills
                                   where s.skillName == skill_combo.SelectedItem.ToString()
                                   select s.skillId).First();
                    var best = (from b in db.Results
                                join c in db.Competitors on b.recordsIdFK equals c.recordsId
                                where c.skillIdFK == Skillid
                                orderby b.totalMarks descending
                                select new
                    {
                        Compet = c.recordsId,
                        Country = c.competitorCountry,
                        Session = b.Competition.sessionNo,
                        Score = b.totalMarks
                    });
                    var groupbest = (from b in best
                                     group b by new { b.Country } into u
                                     select new
                    {
                        u,
                        TotalMarks = u.Sum(a => a.Score)
                    }).ToList();
                    var orderedlist = (from b in groupbest
                                       orderby b.TotalMarks
                                       select b).ToList();
                    var results = (from b in db.Results
                                   group b by new { b.competitionIdFK } into u
                                   select new
                    {
                        CompID = u.Key,
                        TotalMarks = u.Sum(a => a.totalMarks)
                    }).ToList();
                    pictureBox1.Image = setFlag(orderedlist.FirstOrDefault().u.Key.Country.ToString());
                    var SessionsAsc = (from r in results
                                       orderby r.TotalMarks ascending
                                       select r.CompID).ToList();
                    var SessionsDsc = (from r in results
                                       orderby r.TotalMarks descending
                                       select r.CompID).ToList();
                    var toughestcompID     = SessionsAsc.First().competitionIdFK;
                    var theToughestSession = (from c in db.Results
                                              where c.competitionIdFK == toughestcompID
                                              select c).ToList();
                    toughestsession_label.Text = $"{(from d in db.Competitions where d.competitionId == toughestcompID select d.sessionNo).First().ToString()} ({theToughestSession.First().totalMarks} - {theToughestSession.Last().totalMarks})";
                    var easycompID        = SessionsDsc.First().competitionIdFK;
                    var theEasiestSession = (from c in db.Results
                                             where c.competitionIdFK == easycompID
                                             select c).ToList();
                    easiestsession_label.Text = $"{(from d in db.Competitions where d.competitionId == easycompID select d.sessionNo).First().ToString()} ({theEasiestSession.First().totalMarks} - {theEasiestSession.Last().totalMarks})";
                    chart1.Series.Clear();

                    /*
                     * var groupcompetitor = (from b in best
                     *               group b by new { b.Compet } into u
                     *               select new
                     *               {
                     *                   CompetitorID = u.Key.Compet,
                     *                   SessionNo = u.Select(a => a.Session),
                     *                   TotalMarks = u.Select(a => a.Score)
                     *               }).ToList();
                     */
                    var listofmarks = (from r in db.Results
                                       where r.Competition.skillIdFK == Skillid
                                       select r.totalMarks).ToArray();
                    medianmark_session.Text = GetMedian(listofmarks).ToString();
                    var gc = (from b in db.Competitors
                              join c in db.Results on b.recordsId equals c.recordsIdFK
                              join cs in db.Competitions on c.competitionIdFK equals cs.competitionId
                              group new { b, c, cs } by new { b.competitorId, c.totalMarks, cs.sessionNo } into u
                              select new
                    {
                        TotalMarks = u.Key.totalMarks,
                        SessionNo = u.Key.sessionNo,
                        CompetitorID = u.Key.competitorId
                    }).ToList();
                    foreach (var item in gc)
                    {
                        chart1.Series.Add($"Competitor {item.CompetitorID}");
                        chart1.Series[$"Competitor {item.CompetitorID}"].ChartType = System.Windows.Forms.DataVisualization.Charting.SeriesChartType.Line;
                        chart1.Series[$"Competitor {item.CompetitorID}"].Points.AddXY($"Session {item.SessionNo}", item.TotalMarks);
                    }
                }
            }
            catch
            {
            }
        }
Esempio n. 18
0
        DataTable cdt(List <Competition> competitions)
        {
            double bonus    = 0.00;
            double totalamt = 0.00;

            DataTable dt = new DataTable();

            dt.Columns.Add("Question");
            dt.Columns.Add("Marks Received");
            dt.Columns.Add("Max Possible Marks");
            dt.Columns.Add("Amount Received ($)");
            foreach (var item in competitions)
            {
                if (item.sessionNo == 1)
                {
                    //Header
                    DataRow dr = dt.NewRow();
                    dr["Question"] = "Session 1 (Total marks = " + (item.q1MaxMarks + item.q2MaxMarks + item.q3MaxMarks + item.q4MaxMarks).ToString() + " )";
                    dt.Rows.Add(dr);

                    using (var db = new Session5Entities())
                    {
                        var total    = item.q1MaxMarks + item.q2MaxMarks + item.q3MaxMarks + item.q4MaxMarks;
                        var compname = name.Text;
                        var q        = db.Results.Where(x => x.Competitor.competitorName == compname && x.competitionIdFK == item.competitionId).FirstOrDefault();
                        if (item.q1MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 1";
                            try
                            {
                                dr2["Marks Received"]     = q.q1Marks;
                                dr2["Max Possible Marks"] = item.q1MaxMarks;
                                var    mm       = (double)item.q1MaxMarks;
                                var    m        = q.q1Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q1MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q2MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 2";
                            try
                            {
                                dr2["Marks Received"]     = q.q2Marks;
                                dr2["Max Possible Marks"] = item.q2MaxMarks;
                                var    mm       = (double)item.q2MaxMarks;
                                var    m        = q.q2Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q2MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q3MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 3";
                            try
                            {
                                dr2["Marks Received"]     = q.q3Marks;
                                dr2["Max Possible Marks"] = item.q3MaxMarks;
                                var    mm       = (double)item.q3MaxMarks;
                                var    m        = q.q3Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q3MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q4MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 4";
                            try
                            {
                                dr2["Marks Received"]     = q.q4Marks;
                                dr2["Max Possible Marks"] = item.q4MaxMarks;
                                var    mm       = (double)item.q4MaxMarks;
                                var    m        = q.q4Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q4MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }

                        //Bonuses
                        try
                        {
                            if (q.totalMarks > total * 0.75)
                            {
                                bonus += 5;
                            }
                            var median = item.Skill.expectedMedianMark;
                            if (q.totalMarks > median)
                            {
                                bonus += 10;
                            }
                        }
                        catch
                        {
                        }
                    }
                }
                if (item.sessionNo == 2)
                {
                    //Header
                    DataRow dr = dt.NewRow();
                    dr["Question"] = "Session 2 (Total marks = " + (item.q1MaxMarks + item.q2MaxMarks + item.q3MaxMarks + item.q4MaxMarks).ToString() + " )";
                    dt.Rows.Add(dr);

                    using (var db = new Session5Entities())
                    {
                        var total    = item.q1MaxMarks + item.q2MaxMarks + item.q3MaxMarks + item.q4MaxMarks;
                        var compname = name.Text;
                        var q        = db.Results.Where(x => x.Competitor.competitorName == compname && x.competitionIdFK == item.competitionId).FirstOrDefault();
                        if (item.q1MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 1";
                            try
                            {
                                dr2["Marks Received"]     = q.q1Marks;
                                dr2["Max Possible Marks"] = item.q1MaxMarks;
                                var    mm       = (double)item.q1MaxMarks;
                                var    m        = q.q1Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q1MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q2MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 2";
                            try
                            {
                                dr2["Marks Received"]     = q.q2Marks;
                                dr2["Max Possible Marks"] = item.q2MaxMarks;
                                var    mm       = (double)item.q2MaxMarks;
                                var    m        = q.q2Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q2MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q3MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 3";
                            try
                            {
                                dr2["Marks Received"]     = q.q3Marks;
                                dr2["Max Possible Marks"] = item.q3MaxMarks;
                                var    mm       = (double)item.q3MaxMarks;
                                var    m        = q.q3Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q3MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q4MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 4";
                            try
                            {
                                dr2["Marks Received"]     = q.q4Marks;
                                dr2["Max Possible Marks"] = item.q4MaxMarks;
                                var    mm       = (double)item.q4MaxMarks;
                                var    m        = q.q4Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q4MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }

                        //Bonuses
                        try
                        {
                            if (q.totalMarks > total * 0.75)
                            {
                                bonus += 5;
                            }
                            var median = item.Skill.expectedMedianMark;
                            if (q.totalMarks > median)
                            {
                                bonus += 10;
                            }
                        }
                        catch
                        {
                        }
                    }
                }
                if (item.sessionNo == 3)
                {
                    //Header
                    DataRow dr = dt.NewRow();
                    dr["Question"] = "Session 3 (Total marks = " + (item.q1MaxMarks + item.q2MaxMarks + item.q3MaxMarks + item.q4MaxMarks).ToString() + " )";
                    dt.Rows.Add(dr);

                    using (var db = new Session5Entities())
                    {
                        var total    = item.q1MaxMarks + item.q2MaxMarks + item.q3MaxMarks + item.q4MaxMarks;
                        var compname = name.Text;
                        var q        = db.Results.Where(x => x.Competitor.competitorName == compname && x.competitionIdFK == item.competitionId).FirstOrDefault();
                        if (item.q1MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 1";
                            try
                            {
                                dr2["Marks Received"]     = q.q1Marks;
                                dr2["Max Possible Marks"] = item.q1MaxMarks;
                                var    mm       = (double)item.q1MaxMarks;
                                var    m        = q.q1Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q1MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q2MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 2";
                            try
                            {
                                dr2["Marks Received"]     = q.q2Marks;
                                dr2["Max Possible Marks"] = item.q2MaxMarks;
                                var    mm       = (double)item.q2MaxMarks;
                                var    m        = q.q2Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q2MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q3MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 3";
                            try
                            {
                                dr2["Marks Received"]     = q.q3Marks;
                                dr2["Max Possible Marks"] = item.q3MaxMarks;
                                var    mm       = (double)item.q3MaxMarks;
                                var    m        = q.q3Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q3MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q4MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 4";
                            try
                            {
                                dr2["Marks Received"]     = q.q4Marks;
                                dr2["Max Possible Marks"] = item.q4MaxMarks;
                                var    mm       = (double)item.q4MaxMarks;
                                var    m        = q.q4Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q4MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }

                        //Bonuses
                        try
                        {
                            if (q.totalMarks > total * 0.75)
                            {
                                bonus += 5;
                            }
                            var median = item.Skill.expectedMedianMark;
                            if (q.totalMarks > median)
                            {
                                bonus += 10;
                            }
                        }
                        catch
                        {
                        }
                    }
                }
                if (item.sessionNo == 4)
                {
                    //Header
                    DataRow dr = dt.NewRow();
                    dr["Question"] = "Session 4 (Total marks = " + (item.q1MaxMarks + item.q2MaxMarks + item.q3MaxMarks + item.q4MaxMarks).ToString() + " )";
                    dt.Rows.Add(dr);

                    using (var db = new Session5Entities())
                    {
                        var total    = item.q1MaxMarks + item.q2MaxMarks + item.q3MaxMarks + item.q4MaxMarks;
                        var compname = name.Text;
                        var q        = db.Results.Where(x => x.Competitor.competitorName == compname && x.competitionIdFK == item.competitionId).FirstOrDefault();
                        if (item.q1MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 1";
                            try
                            {
                                dr2["Marks Received"]     = q.q1Marks;
                                dr2["Max Possible Marks"] = item.q1MaxMarks;
                                var    mm       = (double)item.q1MaxMarks;
                                var    m        = q.q1Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q1MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q2MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 2";
                            try
                            {
                                dr2["Marks Received"]     = q.q2Marks;
                                dr2["Max Possible Marks"] = item.q2MaxMarks;
                                var    mm       = (double)item.q2MaxMarks;
                                var    m        = q.q2Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q2MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q3MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 3";
                            try
                            {
                                dr2["Marks Received"]     = q.q3Marks;
                                dr2["Max Possible Marks"] = item.q3MaxMarks;
                                var    mm       = (double)item.q3MaxMarks;
                                var    m        = q.q3Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q3MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }
                        if (item.q4MaxMarks != 0)
                        {
                            DataRow dr2 = dt.NewRow();
                            dr2["Question"] = "Question 4";
                            try
                            {
                                dr2["Marks Received"]     = q.q4Marks;
                                dr2["Max Possible Marks"] = item.q4MaxMarks;
                                var    mm       = (double)item.q4MaxMarks;
                                var    m        = q.q4Marks;
                                var    mt       = (double)total;
                                double maxamt   = (mm / mt) * 100.0;
                                double givenamt = (m / mm) * maxamt;
                                dr2["Amount Received ($)"] = givenamt;
                                totalamt += givenamt;
                            }
                            catch
                            {
                                dr2["Marks Received"]      = 0;
                                dr2["Max Possible Marks"]  = item.q4MaxMarks;
                                dr2["Amount Received ($)"] = 0;
                                totalamt += 0;
                            }
                            dt.Rows.Add(dr2);
                        }

                        //Bonuses
                        try
                        {
                            if (q.totalMarks > total * 0.75)
                            {
                                bonus += 5;
                            }
                            var median = item.Skill.expectedMedianMark;
                            if (q.totalMarks > median)
                            {
                                bonus += 10;
                            }
                        }
                        catch
                        {
                        }
                    }
                }
            }

            totalBonus.Text      = "$" + bonus.ToString();
            TotalAmtReceive.Text = "$" + Decimal.Round((decimal)totalamt, 2).ToString();
            return(dt);
        }
        //Alternatively, the user may want to swap the seats of two competitors. In such cases,
        //they can click on two seats and the “Swap Seats” button to make the swap.
        private void SwapSeat_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedCells.Count == 2)
            {
                DataGridViewCell dc1 = dataGridView1.SelectedCells[0];
                DataGridViewCell dc2 = dataGridView1.SelectedCells[1];

                if (dc1.Style.BackColor != Color.LightBlue || dc2.Style.BackColor != Color.LightBlue)
                {
                    MessageBox.Show("Swapping required you to have assigned people to the seat!");
                    return;
                }
                else
                {
                    var ID1  = dc1.Value.ToString().Substring(1, 3).Trim();
                    var ID1f = dc1.Value.ToString().Substring(1, 4).Trim();
                    var ID2  = dc2.Value.ToString().Substring(1, 3).Trim();
                    var ID2f = dc2.Value.ToString().Substring(1, 4).Trim();

                    using (var db = new Session5Entities())
                    {
                        if (dc1.RowIndex - 1 < 0)
                        {
                            if (dataGridView1.Rows[dc1.RowIndex + 1].Cells[dc1.ColumnIndex].Value.ToString().Contains(ID2))
                            {
                                MessageBox.Show("Competitor with the same country cannot be placed together!");
                                return;
                            }
                        }
                        else
                        {
                            try
                            {
                                if (dataGridView1.Rows[dc1.RowIndex + 1].Cells[dc1.ColumnIndex].Value.ToString().Contains(ID2))
                                {
                                    MessageBox.Show("Competitor with the same country cannot be placed together!");
                                    return;
                                }
                            }
                            catch
                            {
                            }
                            if (dataGridView1.Rows[dc1.RowIndex - 1].Cells[dc1.ColumnIndex].Value.ToString().Contains(ID2))
                            {
                                MessageBox.Show("Competitor with the same country cannot be placed together!");
                                return;
                            }
                        }

                        if (dc2.RowIndex - 1 < 0)
                        {
                            if (dataGridView1.Rows[dc2.RowIndex + 1].Cells[dc2.ColumnIndex].Value.ToString().Contains(ID1))
                            {
                                MessageBox.Show("Competitor with the same country cannot be placed together!");
                                return;
                            }
                        }
                        else
                        {
                            try
                            {
                                if (dataGridView1.Rows[dc2.RowIndex + 1].Cells[dc2.ColumnIndex].Value.ToString().Contains(ID1))
                                {
                                    MessageBox.Show("Competitor with the same country cannot be placed together!");
                                    return;
                                }
                            }
                            catch
                            {
                            }
                            if (dataGridView1.Rows[dc2.RowIndex - 1].Cells[dc2.ColumnIndex].Value.ToString().Contains(ID1))
                            {
                                MessageBox.Show("Competitor with the same country cannot be placed together!");
                                return;
                            }
                        }


                        dc1.Value = dc1.Value.ToString().Substring(0, 1);
                        dc2.Value = dc2.Value.ToString().Substring(0, 1);

                        dc1.Value           = dc1.Value + "\n" + ID2f;
                        dc2.Value           = dc2.Value + "\n" + ID1f;
                        dc1.Style.BackColor = Color.LightBlue;
                        dc2.Style.BackColor = Color.LightBlue;
                        dc1.Style.WrapMode  = DataGridViewTriState.True;
                        dc2.Style.WrapMode  = DataGridViewTriState.True;


                        var skillsID = comboBox1.SelectedIndex + 1;
                        var q1       = db.Competitors.Where(x => x.competitorId == ID2f && x.skillIdFK == skillsID).FirstOrDefault();
                        dc1.ToolTipText = "Name: " + q1.competitorName + "\n" + "Country: " + q1.competitorCountry;
                        var q2 = db.Competitors.Where(x => x.competitorId == ID1f && x.skillIdFK == skillsID).FirstOrDefault();
                        dc2.ToolTipText = "Name: " + q2.competitorName + "\n" + "Country: " + q2.competitorCountry;
                    }
                }
            }
            else
            {
                MessageBox.Show("Swapping requires you to select 2 seats!");
                return;
            }
        }
        private void Sumbit_Click(object sender, EventArgs e)
        {
            using (var db = new Session5Entities())
            {
                var name = sname.Text;
                var q    = db.Results.Where(x => x.Competitor.competitorName == name).FirstOrDefault();
                if (q != null)
                {
                    foreach (DataGridViewRow dr in dataGridView1.Rows)
                    {
                        if (dr.Cells[1].Value.ToString().Contains("1"))
                        {
                            q.q1Marks = double.Parse(dr.Cells[3].Value.ToString());
                        }

                        if (dr.Cells[1].Value.ToString().Contains("2"))
                        {
                            q.q2Marks = double.Parse(dr.Cells[3].Value.ToString());
                        }

                        if (dr.Cells[1].Value.ToString().Contains("3"))
                        {
                            q.q3Marks = double.Parse(dr.Cells[3].Value.ToString());
                        }

                        if (dr.Cells[1].Value.ToString().Contains("4"))
                        {
                            q.q4Marks = double.Parse(dr.Cells[3].Value.ToString());
                        }
                    }

                    try
                    {
                        q.totalMarks = double.Parse(Total.Text);
                    }
                    catch
                    {
                        MessageBox.Show("Invalid total marks!");
                        return;
                    }

                    try
                    {
                        db.SaveChanges();
                        MessageBox.Show("Successful!");
                    }
                    catch (Exception es)
                    {
                        MessageBox.Show(es.ToString());
                    }
                }
                else
                {
                    Result result = new Result();
                    var    ID     = skill.SelectedIndex + 1;
                    var    ses    = session.SelectedIndex + 1;
                    if (string.IsNullOrEmpty(name))
                    {
                        MessageBox.Show("Invalid name!");
                        return;
                    }
                    if (string.IsNullOrEmpty(skill.Text))
                    {
                        MessageBox.Show("Invalid skill!");
                        return;
                    }
                    if (string.IsNullOrEmpty(session.Text))
                    {
                        MessageBox.Show("Invalid session!");
                        return;
                    }
                    var comps = db.Competitors.Where(x => x.competitorName == name).FirstOrDefault();
                    var comp  = db.Competitions.Where(x => x.skillIdFK == ID && x.sessionNo == ses).FirstOrDefault();
                    result.recordsIdFK     = comps.recordsId;
                    result.competitionIdFK = comp.competitionId;
                    result.q1Marks         = 0;
                    result.q2Marks         = 0;
                    result.q3Marks         = 0;
                    result.q4Marks         = 0;
                    foreach (DataGridViewRow dr in dataGridView1.Rows)
                    {
                        if (dr.Cells[1].Value.ToString().Contains("1"))
                        {
                            result.q1Marks = double.Parse(dr.Cells[3].Value.ToString());
                        }

                        if (dr.Cells[1].Value.ToString().Contains("2"))
                        {
                            result.q2Marks = double.Parse(dr.Cells[3].Value.ToString());
                        }

                        if (dr.Cells[1].Value.ToString().Contains("3"))
                        {
                            result.q3Marks = double.Parse(dr.Cells[3].Value.ToString());
                        }

                        if (dr.Cells[1].Value.ToString().Contains("4"))
                        {
                            result.q4Marks = double.Parse(dr.Cells[3].Value.ToString());
                        }
                    }
                    try
                    {
                        result.totalMarks = double.Parse(Total.Text);
                    }
                    catch
                    {
                        MessageBox.Show("Invalid total marks!");
                    }

                    try
                    {
                        db.Results.Add(result);
                        db.SaveChanges();
                        MessageBox.Show("Successful!");
                    }
                    catch (Exception es)
                    {
                        MessageBox.Show(es.ToString());
                    }
                }
            }
        }
Esempio n. 21
0
 private void UpdateUI()
 {
     using (var db = new Session5Entities())
     {
         assignedlist.Clear();
         UnassignedList.Clear();
         unassigned_listbox.Items.Clear();
         toolTip1.SetToolTip(seat1, "");
         toolTip2.SetToolTip(seat2, "");
         toolTip3.SetToolTip(seat3, "");
         toolTip4.SetToolTip(seat4, "");
         toolTip5.SetToolTip(seat5, "");
         toolTip6.SetToolTip(seat6, "");
         toolTip7.SetToolTip(seat7, "");
         toolTip8.SetToolTip(seat8, "");
         seat1.Text = "1";
         seat2.Text = "2";
         seat3.Text = "3";
         seat4.Text = "4";
         seat5.Text = "5";
         seat6.Text = "6";
         seat7.Text = "7";
         seat8.Text = "8";
         var selectedskill = skill_combo.SelectedItem.ToString();
         var skillid       = (from s in db.Skills
                              where s.skillName == selectedskill
                              select s.skillId).First();
         var comps = (from c in db.Competitors
                      where c.skillIdFK == skillid
                      select c).ToList();
         foreach (var item in comps)
         {
             unassigned_listbox.Items.Add($"{item.competitorName}, {item.competitorCountry}");
             var c = new Competitors()
             {
                 Country     = item.competitorCountry,
                 CountryAbbr = item.competitorId,
                 ID          = item.recordsId,
                 Name        = item.competitorName,
                 SeatNumber  = 0
             };
             UnassignedList.Add(c);
             Console.WriteLine(c);
         }
         if (comps.Count < 8)
         {
             seat7.Visible = false;
             seat8.Visible = false;
         }
         else
         {
             seat7.Visible = true;
             seat8.Visible = true;
         }
         if (comps.Count < 6)
         {
             seat7.Visible = false;
             seat8.Visible = false;
             seat6.Visible = false;
         }
         else
         {
             seat7.Visible = true;
             seat8.Visible = true;
             seat6.Visible = true;
         }
         assignedcomp_label.Text = assignedlist.Count.ToString();
         unassigned_label.Text   = UnassignedList.Count.ToString();
     }
 }
        private void RandomAssign_Click(object sender, EventArgs e)
        {
            using (var db2 = new Session5Entities())
            {
                var idss   = comboBox1.SelectedIndex + 1;
                var itemss = db2.Competitors.Where(x => x.skillIdFK == idss).ToList();
                dataGridView1.DataSource = cdt(itemss.Count());
                foreach (var item in itemss)
                {
                    int row, col;
                    DataGridViewCell dc;
Random:
                    //To help the user, the system has an option to randomly assign the seats. Each time that this button is clicked, the
                    //system will automatically randomly assign the competitors to a seat.
                    Random random = new Random();
                    while (true)
                    {
                        row = random.Next(0, dataGridView1.Rows.Count);
                        col = random.Next(0, dataGridView1.Columns.Count);
                        dc  = dataGridView1.Rows[row].Cells[col];
                        if (dc.Style.BackColor != Color.LightBlue)
                        {
                            break;
                        }
                    }

                    using (var db = new Session5Entities())
                    {
                        #region The only constraint is that two competitors from the same country cannot be seated in front or behind one another(e.g.with reference to the wireframe, if the competitor from Malaysia is sitting at seat number 3, then the other competitor from Malaysia cannot sit in seat number 1 or 5.
                        var q = db.Competitors.Where(x => x.competitorName == item.competitorName).FirstOrDefault();
                        if (dc.RowIndex - 1 < 0)
                        {
                            if (dataGridView1.Rows[row + 1].Cells[col].Value.ToString().Contains(q.competitorId.Substring(0, 2)))
                            {
                                goto Random;
                            }
                        }
                        else
                        {
                            try
                            {
                                if (dataGridView1.Rows[row + 1].Cells[col].Value.ToString().Contains(q.competitorId.Substring(0, 2)))
                                {
                                    goto Random;
                                }
                            }
                            catch
                            {
                            }
                            if (dataGridView1.Rows[row - 1].Cells[col].Value.ToString().Contains(q.competitorId.Substring(0, 2)))
                            {
                                goto Random;
                            }
                        }
                        #endregion

                        dc.Value = dc.Value + "\n" + q.competitorId;
                        listBox1.Items.Clear();
                        dc.Style.BackColor    = Color.LightBlue;
                        dc.Style.WrapMode     = DataGridViewTriState.True;
                        dc.ToolTipText        = "Name: " + q.competitorName + "\n" + "Country: " + q.competitorCountry;
                        UnassignedNumber.Text = listBox1.Items.Count.ToString();
                        AssignedNumber.Text   = (val - listBox1.Items.Count).ToString();
                    }
                }
            }
        }
Esempio n. 23
0
 private void SetPositions()
 {
     using (var db = new Session5Entities())
     {
         var CountryPositions = new List <ResultsView>();
         var rv = new ResultsView()
         {
             Competitor = "Dummy",
             Country    = "Dummy",
             TotalMarks = 0
         };
         CountryPositions.Add(rv);
         CountryPositions.Add(rv);
         CountryPositions.Add(rv);
         CountryPositions.Add(rv);
         var positions = (from a in DGVList
                          orderby a.TotalMarks descending
                          select a);
         var Skillid = (from s in db.Skills
                        where s.skillName == comboBox1.SelectedItem.ToString()
                        select s.skillId).First();
         var comps = (from s in db.Competitions
                      where s.skillIdFK == Skillid
                      select new { sum = s.q1MaxMarks + s.q2MaxMarks + s.q3MaxMarks + s.q4MaxMarks }).ToList();
         int totalmarks = 0;
         foreach (var item in comps)
         {
             totalmarks += item.sum;
         }
         foreach (var item in positions)
         {
             if ((item.TotalMarks / totalmarks) >= 0.8 && item.TotalMarks > CountryPositions[0].TotalMarks)
             {
                 Console.WriteLine("Gold");
                 CountryPositions[0] = item;
             }
             else if ((item.TotalMarks / totalmarks) >= 0.75 && item.TotalMarks > CountryPositions[1].TotalMarks)
             {
                 Console.WriteLine("Silver");
                 CountryPositions[1] = item;
             }
             else if ((item.TotalMarks / totalmarks) >= 0.75 && item.TotalMarks > CountryPositions[2].TotalMarks)
             {
                 Console.WriteLine("Silver");
                 CountryPositions[2] = item;
             }
             else if ((item.TotalMarks / totalmarks) >= 0.71 && item.TotalMarks > CountryPositions[3].TotalMarks)
             {
                 Console.WriteLine("Bronze");
                 CountryPositions[3] = item;
             }
         }
         for (int i = 0; i <= 4; i++)
         {
             try
             {
                 if (i == 0)
                 {
                     gold_flag.Image = setFlag(CountryPositions[i].Country);
                 }
                 else if (i == 1)
                 {
                     silver_flag.Image = setFlag(CountryPositions[i].Country);
                 }
                 else if (i == 2)
                 {
                     silver2_flag.Image = setFlag(CountryPositions[i].Country);
                 }
                 else if (i == 3)
                 {
                     shit_flag.Image = setFlag(CountryPositions[i].Country);
                 }
             }
             catch
             {
             }
         }
     }
 }
Esempio n. 24
0
 public void UpdateUI()
 {
     using (var db = new Session5Entities())
     {
         int totalcash  = 0;
         int totalbonus = 0;
         session1_dgv.Visible             = false;
         session2_dgv.Visible             = false;
         session3_dgv.Visible             = false;
         session4_dgv.Visible             = false;
         session1_dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
         session2_dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
         session3_dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
         session4_dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
         var Skillid = (from s in db.Skills
                        where s.skillName == skill_combo.SelectedItem.ToString()
                        select s.skillId).First();
         var recordsID = (from c in db.Competitors
                          where c.competitorName == name_combo.SelectedItem.ToString()
                          select c.recordsId).First();
         var sessions = (from s in db.Competitions
                         where s.skillIdFK == Skillid
                         select s.sessionNo);
         if (sessions.Contains(1))
         {
             session1_dgv.Visible = true;
         }
         if (sessions.Contains(2))
         {
             session2_dgv.Visible = true;
         }
         if (sessions.Contains(3))
         {
             session3_dgv.Visible = true;
         }
         if (sessions.Contains(4))
         {
             session4_dgv.Visible = true;
         }
         var session1 = (from c in db.Competitions
                         where c.sessionNo == 1
                         where c.skillIdFK == Skillid
                         select c).First();
         int session1qns = 0;
         if (session1.q4MaxMarks != 0)
         {
             session1qns = 4;
         }
         else if (session1.q3MaxMarks != 0)
         {
             session1qns = 3;
         }
         else if (session1.q2MaxMarks != 0)
         {
             session1qns = 2;
         }
         var session2 = (from c in db.Competitions
                         where c.sessionNo == 2
                         where c.skillIdFK == Skillid
                         select c).First();
         int session2qns = 0;
         if (session2.q4MaxMarks != 0)
         {
             session2qns = 4;
         }
         else if (session2.q3MaxMarks != 0)
         {
             session2qns = 3;
         }
         else if (session2.q2MaxMarks != 0)
         {
             session2qns = 2;
         }
         var session3 = (from c in db.Competitions
                         where c.sessionNo == 3
                         where c.skillIdFK == Skillid
                         select c).First();
         int session3qns = 0;
         if (session3.q4MaxMarks != 0)
         {
             session3qns = 4;
         }
         else if (session3.q3MaxMarks != 0)
         {
             session3qns = 3;
         }
         else if (session3.q2MaxMarks != 0)
         {
             session3qns = 2;
         }
         int session4qns = 0;
         if (session4_dgv.Visible == true)
         {
             var session4 = (from c in db.Competitions
                             where c.sessionNo == 4
                             where c.skillIdFK == Skillid
                             select c).First();
             if (session4.q4MaxMarks != 0)
             {
                 session4qns = 4;
             }
             else if (session4.q3MaxMarks != 0)
             {
                 session4qns = 3;
             }
             if (session1.q2MaxMarks != 0)
             {
                 session4qns = 2;
             }
         }
         var dgvlist1 = new List <BonusCalculate>();
         var dgvlist2 = new List <BonusCalculate>();
         var dgvlist3 = new List <BonusCalculate>();
         var dgvlist4 = new List <BonusCalculate>();
         //fill up dgv1
         try
         {
             for (int i = 0; i < session1qns; i++)
             {
                 var sessioninfo = (from r in db.Results
                                    join c in db.Competitions on r.competitionIdFK equals c.competitionId
                                    where c.sessionNo == 1
                                    where r.recordsIdFK == recordsID
                                    select new { r, c }).First();
                 int questionmarks = 0;
                 if (i == 0)
                 {
                     //q1
                     questionmarks = (int)sessioninfo.r.q1Marks;
                 }
                 else if (i == 1)
                 {
                     //q2
                     questionmarks = (int)sessioninfo.r.q2Marks;
                 }
                 else if (i == 2)
                 {
                     //q3
                     questionmarks = (int)sessioninfo.r.q3Marks;
                 }
                 else if (i == 3)
                 {
                     //q4
                     questionmarks = (int)sessioninfo.r.q4Marks;
                 }
                 int maxmarks = 0;
                 if (i == 0)
                 {
                     //q1
                     maxmarks = sessioninfo.c.q1MaxMarks;
                 }
                 else if (i == 1)
                 {
                     //q2
                     maxmarks = sessioninfo.c.q2MaxMarks;
                 }
                 else if (i == 2)
                 {
                     //q3
                     maxmarks = sessioninfo.c.q3MaxMarks;
                 }
                 else if (i == 3)
                 {
                     //q4
                     maxmarks = sessioninfo.c.q4MaxMarks;
                 }
                 if (questionmarks / maxmarks > 0.75)
                 {
                     totalbonus += 5;
                 }
                 totalcash += (questionmarks / maxmarks) * 100;
                 try
                 {
                     var bon = new BonusCalculate()
                     {
                         Question             = $"Question {i + 1}",
                         MarksRecieved        = questionmarks,
                         MaximumPossibleMarks = maxmarks,
                         AmountRecieved       = (questionmarks / maxmarks) * 100
                     };
                     dgvlist1.Add(bon);
                 }
                 catch
                 {
                     var bon = new BonusCalculate()
                     {
                         Question             = $"Question {i + 1}",
                         MarksRecieved        = questionmarks,
                         MaximumPossibleMarks = maxmarks,
                         AmountRecieved       = 0
                     };
                     dgvlist1.Add(bon);
                 }
             }
         }
         catch
         {
         }
         try
         {
             //fill up dgv2
             for (int i = 0; i < session2qns; i++)
             {
                 var sessioninfo = (from r in db.Results
                                    join c in db.Competitions on r.competitionIdFK equals c.competitionId
                                    where c.sessionNo == 2
                                    where r.recordsIdFK == recordsID
                                    select new { r, c }).First();
                 int questionmarks = 0;
                 if (i == 0)
                 {
                     //q1
                     questionmarks = (int)sessioninfo.r.q1Marks;
                 }
                 else if (i == 1)
                 {
                     //q2
                     questionmarks = (int)sessioninfo.r.q2Marks;
                 }
                 else if (i == 2)
                 {
                     //q3
                     questionmarks = (int)sessioninfo.r.q3Marks;
                 }
                 else if (i == 3)
                 {
                     //q4
                     questionmarks = (int)sessioninfo.r.q4Marks;
                 }
                 int maxmarks = 0;
                 if (i == 0)
                 {
                     //q1
                     maxmarks = sessioninfo.c.q1MaxMarks;
                 }
                 else if (i == 1)
                 {
                     //q2
                     maxmarks = sessioninfo.c.q2MaxMarks;
                 }
                 else if (i == 2)
                 {
                     //q3
                     maxmarks = sessioninfo.c.q3MaxMarks;
                 }
                 else if (i == 3)
                 {
                     //q4
                     maxmarks = sessioninfo.c.q4MaxMarks;
                 }
                 if (questionmarks / maxmarks > 0.75)
                 {
                     totalbonus += 5;
                 }
                 totalcash += (questionmarks / maxmarks) * 100;
                 try
                 {
                     var bon = new BonusCalculate()
                     {
                         Question             = $"Question {i + 1}",
                         MarksRecieved        = questionmarks,
                         MaximumPossibleMarks = maxmarks,
                         AmountRecieved       = (questionmarks / maxmarks) * 100
                     };
                     dgvlist2.Add(bon);
                 }
                 catch
                 {
                     var bon = new BonusCalculate()
                     {
                         Question             = $"Question {i + 1}",
                         MarksRecieved        = questionmarks,
                         MaximumPossibleMarks = maxmarks,
                         AmountRecieved       = 0
                     };
                     dgvlist2.Add(bon);
                 }
             }
         }
         catch
         {
         }
         try
         {
             //fill up dgv3
             for (int i = 0; i < session3qns; i++)
             {
                 var sessioninfo = (from r in db.Results
                                    join c in db.Competitions on r.competitionIdFK equals c.competitionId
                                    where c.sessionNo == 3
                                    where r.recordsIdFK == recordsID
                                    select new { r, c }).First();
                 int questionmarks = 0;
                 if (i == 0)
                 {
                     //q1
                     questionmarks = (int)sessioninfo.r.q1Marks;
                 }
                 else if (i == 1)
                 {
                     //q2
                     questionmarks = (int)sessioninfo.r.q2Marks;
                 }
                 else if (i == 2)
                 {
                     //q3
                     questionmarks = (int)sessioninfo.r.q3Marks;
                 }
                 else if (i == 3)
                 {
                     //q4
                     questionmarks = (int)sessioninfo.r.q4Marks;
                 }
                 int maxmarks = 0;
                 if (i == 0)
                 {
                     //q1
                     maxmarks = sessioninfo.c.q1MaxMarks;
                 }
                 else if (i == 1)
                 {
                     //q2
                     maxmarks = sessioninfo.c.q2MaxMarks;
                 }
                 else if (i == 2)
                 {
                     //q3
                     maxmarks = sessioninfo.c.q3MaxMarks;
                 }
                 else if (i == 3)
                 {
                     //q4
                     maxmarks = sessioninfo.c.q4MaxMarks;
                 }
                 if (questionmarks / maxmarks > 0.75)
                 {
                     totalbonus += 5;
                 }
                 totalcash += (questionmarks / maxmarks) * 100;
                 try
                 {
                     var bon = new BonusCalculate()
                     {
                         Question             = $"Question {i + 1}",
                         MarksRecieved        = questionmarks,
                         MaximumPossibleMarks = maxmarks,
                         AmountRecieved       = (questionmarks / maxmarks) * 100
                     };
                     dgvlist3.Add(bon);
                 }
                 catch
                 {
                     var bon = new BonusCalculate()
                     {
                         Question             = $"Question {i + 1}",
                         MarksRecieved        = questionmarks,
                         MaximumPossibleMarks = maxmarks,
                         AmountRecieved       = 0
                     };
                     dgvlist3.Add(bon);
                 }
             }
         }
         catch
         {
         }
         try
         {
             if (session4_dgv.Visible == true)
             {
                 //fill up dgv4
                 for (int i = 0; i < session4qns; i++)
                 {
                     var sessioninfo = (from r in db.Results
                                        join c in db.Competitions on r.competitionIdFK equals c.competitionId
                                        where c.sessionNo == 4
                                        where r.recordsIdFK == recordsID
                                        select new { r, c }).First();
                     int questionmarks = 0;
                     if (i == 0)
                     {
                         //q1
                         questionmarks = (int)sessioninfo.r.q1Marks;
                     }
                     else if (i == 1)
                     {
                         //q2
                         questionmarks = (int)sessioninfo.r.q2Marks;
                     }
                     else if (i == 2)
                     {
                         //q3
                         questionmarks = (int)sessioninfo.r.q3Marks;
                     }
                     else if (i == 3)
                     {
                         //q4
                         questionmarks = (int)sessioninfo.r.q4Marks;
                     }
                     int maxmarks = 0;
                     if (i == 0)
                     {
                         //q1
                         maxmarks = sessioninfo.c.q1MaxMarks;
                     }
                     else if (i == 1)
                     {
                         //q2
                         maxmarks = sessioninfo.c.q2MaxMarks;
                     }
                     else if (i == 2)
                     {
                         //q3
                         maxmarks = sessioninfo.c.q3MaxMarks;
                     }
                     else if (i == 3)
                     {
                         //q4
                         maxmarks = sessioninfo.c.q4MaxMarks;
                     }
                     if (questionmarks / maxmarks > 0.75)
                     {
                         totalbonus += 5;
                     }
                     totalcash += (questionmarks / maxmarks) * 100;
                     try
                     {
                         var bon = new BonusCalculate()
                         {
                             Question             = $"Question {i + 1}",
                             MarksRecieved        = questionmarks,
                             MaximumPossibleMarks = maxmarks,
                             AmountRecieved       = (questionmarks / maxmarks) * 100
                         };
                         dgvlist4.Add(bon);
                     }
                     catch
                     {
                         var bon = new BonusCalculate()
                         {
                             Question             = $"Question {i + 1}",
                             MarksRecieved        = questionmarks,
                             MaximumPossibleMarks = maxmarks,
                             AmountRecieved       = 0
                         };
                         dgvlist4.Add(bon);
                     }
                 }
             }
         }
         catch
         {
         }
         totalcash              += totalbonus;
         total_amount.Text       = totalcash.ToString();
         total_bonus.Text        = totalbonus.ToString();
         session1_dgv.DataSource = dgvlist1;
         session2_dgv.DataSource = dgvlist2;
         session3_dgv.DataSource = dgvlist3;
         session4_dgv.DataSource = dgvlist4;
     }
 }
Esempio n. 25
0
        private void skill_SelectedIndexChanged(object sender, EventArgs e)
        {
            #region Easiest Session
            //Easiest Session
            var ID          = skill.SelectedIndex + 1;
            var competition = db.Competitions.Where(x => x.skillIdFK == ID).ToList();

            var maxmax    = 0.0;
            var sessionNo = 0;
            var competNo  = 0;
            foreach (var item in competition)
            {
                var results = db.Results.Where(x => x.competitionIdFK == item.competitionId);
                if (results.FirstOrDefault() != null)
                {
                    var avg = results.Average(x => x.totalMarks);
                    if (avg > maxmax)
                    {
                        maxmax    = avg;
                        competNo  = item.competitionId;
                        sessionNo = item.sessionNo;
                    }
                }
            }
            var highResult = db.Results.Where(x => x.competitionIdFK == competNo).ToList();
            if (highResult.Count() != 0)
            {
                var lol  = highResult.Max(x => x.totalMarks);
                var lol2 = highResult.Min(x => x.totalMarks);
                ES.Text = sessionNo.ToString() + " (" + lol2 + " - " + lol + ")";
            }
            else
            {
                ES.Text = "";
            }
            #endregion

            #region Toughest Session
            //Toughest Session
            var min = 100000.0;

            var session = 0;
            var compet  = 0;
            foreach (var item in competition)
            {
                var results = db.Results.Where(x => x.competitionIdFK == item.competitionId);
                if (results.FirstOrDefault() != null)
                {
                    var avg = results.Average(x => x.totalMarks);
                    if (avg < min)
                    {
                        min     = avg;
                        compet  = item.competitionId;
                        session = item.sessionNo;
                    }
                }
            }
            var results1 = db.Results.Where(x => x.competitionIdFK == compet).ToList();
            if (results1.FirstOrDefault() != null)
            {
                var lol  = results1.Max(x => x.totalMarks);
                var lol2 = results1.Min(x => x.totalMarks);
                TS.Text = session.ToString() + " (" + lol2 + " - " + lol + ")";
            }
            else
            {
                TS.Text = "";
            }
            #endregion

            #region Median Results
            //Median
            var q          = db.Skills.Where(x => x.skillId == ID).FirstOrDefault();
            var medianmark = q.expectedMedianMark;
            var q2         = db.Results.Where(x => x.Competition.skillIdFK == ID).OrderBy(x => x.totalMarks).ToList();
            if (q2.Count != 0)
            {
                if (q2.Count() % 2 == 0)
                {
                    var mid             = q2.Count() / 2;
                    var mid1            = mid + 1;
                    var totalMedianMark = (q2[mid - 1].totalMarks + q2[mid1 - 1].totalMarks) / 2;
                    if (totalMedianMark > medianmark)
                    {
                        //Show green
                        panel3.Visible = true;
                        panel2.Visible = false;
                    }
                    else
                    {
                        //Show red
                        panel3.Visible = false;
                        panel2.Visible = true;
                    }
                    MM.Text = totalMedianMark.ToString();
                }
                else
                {
                    int mid = q2.Count() / 2;
                    mid += 1;
                    var lol = q2[mid].totalMarks;
                    if (lol > medianmark)
                    {
                        panel3.Visible = true;
                        panel2.Visible = false;
                    }
                    else
                    {
                        panel3.Visible = false;
                        panel2.Visible = true;
                    }
                    MM.Text = lol.ToString();
                }
            }
            else
            {
                MM.Text = "";
            }
            #endregion

            #region Best Performing Country
            //Best
            var qq = db.Results.Where(x => x.Competition.skillIdFK == ID);
            Dictionary <string, double> i = new Dictionary <string, double>();
            if (qq.FirstOrDefault() != null)
            {
                var lol = qq.GroupBy(x => x.Competitor.competitorCountry).ToList();
                foreach (var item in lol)
                {
                    i.Add(item.Key, item.Average(x => x.totalMarks));
                }
            }

            var max     = 0.0;
            var country = "";
            foreach (KeyValuePair <string, double> entry in i)
            {
                if (entry.Value > max)
                {
                    max     = entry.Value;
                    country = entry.Key;
                }
            }

            BPC.Text = country;
            var pics = new List <string>

            {
                @"D:\WorldSkills\Sessions\Session5\Images\singapore_flag1.png",

                @"D:\WorldSkills\Sessions\Session5\Images\flagmalaysia.png",

                @"D:\WorldSkills\Sessions\Session5\Images\indonesia2.png",

                @"D:\WorldSkills\Sessions\Session5\Images\flg_philippine1.png",

                @"D:\WorldSkills\Sessions\Session5\Images\flg_thailand.png",

                @"D:\WorldSkills\Sessions\Session5\Images\brunei_flag.png",

                @"D:\WorldSkills\Sessions\Session5\Images\flag_cambodia.png"
            };

            if (country == "Malaysia")
            {
                pictureBox1.Image = Image.FromFile(pics[1]);
            }
            else if (country == "Indonesia")
            {
                pictureBox1.Image = Image.FromFile(pics[2]);
            }
            else if (country == "Philippines")
            {
                pictureBox1.Image = Image.FromFile(pics[3]);
            }
            else if (country == "Thailand")
            {
                pictureBox1.Image = Image.FromFile(pics[4]);
            }
            else if (country == "Brunei")
            {
                pictureBox1.Image = Image.FromFile(pics[5]);
            }

            #endregion

            #region Creating the Trend Graph
            using (var db = new Session5Entities())
            {
                chart1.Series.Clear();
                chart1.Titles.Clear();
                chart1.Titles.Add("Trend of Competitors Results");
                var results     = db.Results.Where(x => x.Competitor.skillIdFK == ID).GroupBy(x => x.Competition.sessionNo).ToList();
                var currSession = 0;
                foreach (var item in results)
                {
                    var sessionNum = "Session " + item.Key.ToString();
                    foreach (var items in item)
                    {
                        try
                        {
                            chart1.Series.Add(new Series(items.Competitor.competitorName));
                        }
                        catch
                        {
                        }
                        chart1.Series[items.Competitor.competitorName].ChartType = SeriesChartType.Line;
                        var idx = chart1.Series[items.Competitor.competitorName].Points.AddXY(sessionNum, items.totalMarks);
                        currSession = item.Key;
                        chart1.Series[items.Competitor.competitorName].Points[idx].AxisLabel = sessionNum;
                        chart1.Series[items.Competitor.competitorName].IsValueShownAsLabel   = true;
                    }
                }
                var remaining = db.Competitions.Where(x => x.sessionNo > currSession && x.skillIdFK == ID);
                if (remaining.FirstOrDefault() != null)
                {
                    var rem = remaining.ToList();
                    foreach (var item in remaining)
                    {
                        for (int ii = 0; ii < chart1.Series.ToList().Count(); ii++)
                        {
                            chart1.Series[ii].Points.AddXY("Session " + item.sessionNo.ToString(), 0);
                        }
                    }
                }
            }
            #endregion
        }
        private void ManualAssign_Click(object sender, EventArgs e)
        {
            if (dataGridView1.SelectedCells.Count == 1)
            {
                //So, when the user clicks on a seat and clicks on the name of a competitor from the “Unassigned” list and clicks on
                //the “Manually Assign” button, the system will check for the same seating constraint
                //stated above.
                foreach (DataGridViewCell dc in dataGridView1.SelectedCells)
                {
                    //When the seat is not taken:
                    if (dc.Style.BackColor != Color.LightBlue)
                    {
                        using (var db = new Session5Entities())
                        {
                            if (listBox1.SelectedItem != null)
                            {
                                var name = listBox1.SelectedItem.ToString().Split(',').First();
                                var q    = db.Competitors.Where(x => x.competitorName == name).FirstOrDefault();
                                if (dc.RowIndex - 1 < 0)
                                {
                                    if (dataGridView1.Rows[dc.RowIndex + 1].Cells[dc.ColumnIndex].Value.ToString().Contains(q.competitorId.Substring(0, 2)))
                                    {
                                        MessageBox.Show("Competitor with the same country cannot be placed together!");
                                        return;
                                    }
                                }
                                else
                                {
                                    try
                                    {
                                        if (dataGridView1.Rows[dc.RowIndex + 1].Cells[dc.ColumnIndex].Value.ToString().Contains(q.competitorId.Substring(0, 2)))
                                        {
                                            MessageBox.Show("Competitor with the same country cannot be placed together!");
                                            return;
                                        }
                                    }
                                    catch
                                    {
                                    }
                                    if (dataGridView1.Rows[dc.RowIndex - 1].Cells[dc.ColumnIndex].Value.ToString().Contains(q.competitorId.Substring(0, 2)))
                                    {
                                        MessageBox.Show("Competitor with the same country cannot be placed together!");
                                        return;
                                    }
                                }

                                //If there is no constraint, then this competitor is assigned to this seat, and
                                //the layout is updated accordingly to show who is sitting in that seat and the competitor’s
                                //name is removed from the “Unassigned” list.
                                dc.Value = dc.Value + "\n" + q.competitorId;
                                listBox1.Items.RemoveAt(listBox1.Items.IndexOf(listBox1.SelectedItem));
                                dc.Style.BackColor    = Color.LightBlue;
                                dc.Style.WrapMode     = DataGridViewTriState.True;
                                dc.ToolTipText        = "Name: " + q.competitorName + "\n" + "Country: " + q.competitorCountry;
                                UnassignedNumber.Text = listBox1.Items.Count.ToString();
                                AssignedNumber.Text   = (val - listBox1.Items.Count).ToString();
                            }
                            else
                            {
                                MessageBox.Show("Please select someone!");
                                return;
                            }
                        }
                    }
                    //When the seat is taken:
                    else
                    {
                        using (var db = new Session5Entities())
                        {
                            if (listBox1.SelectedItem != null)
                            {
                                var name = listBox1.SelectedItem.ToString().Split(',').First();
                                var q    = db.Competitors.Where(x => x.competitorName == name).FirstOrDefault();
                                if (dc.RowIndex - 1 < 0)
                                {
                                    if (dataGridView1.Rows[dc.RowIndex + 1].Cells[dc.ColumnIndex].Value.ToString().Contains(q.competitorId.Substring(0, 2)))
                                    {
                                        MessageBox.Show("Competitor with the same country cannot be placed together!");
                                        return;
                                    }
                                }
                                else
                                {
                                    try
                                    {
                                        if (dataGridView1.Rows[dc.RowIndex + 1].Cells[dc.ColumnIndex].Value.ToString().Contains(q.competitorId.Substring(0, 2)))
                                        {
                                            MessageBox.Show("Competitor with the same country cannot be placed together!");
                                            return;
                                        }
                                    }
                                    catch
                                    {
                                    }
                                    if (dataGridView1.Rows[dc.RowIndex - 1].Cells[dc.ColumnIndex].Value.ToString().Contains(q.competitorId.Substring(0, 2)))
                                    {
                                        MessageBox.Show("Competitor with the same country cannot be placed together!");
                                        return;
                                    }
                                }

                                //If the seat was previously occupied by
                                // another competitor, then this competitor’s name is added to the “Unassigned” list.
                                dc.Style.BackColor = Color.Transparent;
                                var ID = dc.Value.ToString().Substring(1).Trim();
                                dc.Value = dc.Value.ToString().Substring(0, 1);

                                var sID  = comboBox1.SelectedIndex + 1;
                                var comq = db.Competitors.Where(x => x.competitorId == ID && x.skillIdFK == sID).FirstOrDefault();
                                listBox1.Items.Add(comq.competitorName + ", " + comq.competitorCountry);
                                UnassignedNumber.Text = listBox1.Items.Count.ToString();
                                AssignedNumber.Text   = (val - listBox1.Items.Count).ToString();

                                dc.Value = dc.Value + "\n" + q.competitorId;
                                listBox1.Items.RemoveAt(listBox1.Items.IndexOf(listBox1.SelectedItem));
                                dc.Style.BackColor    = Color.LightBlue;
                                dc.Style.WrapMode     = DataGridViewTriState.True;
                                dc.ToolTipText        = "Name: " + q.competitorName + "\n" + "Country: " + q.competitorCountry;
                                UnassignedNumber.Text = listBox1.Items.Count.ToString();
                                AssignedNumber.Text   = (val - listBox1.Items.Count).ToString();
                            }
                            else
                            {
                                MessageBox.Show("Please select someone!");
                                return;
                            }
                        }
                    }
                }
            }
        }