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()); } }
public async Task <List <string> > getSkills() { using (var db = new Session5Entities()) { return((from s in db.Skills select s.skillName).ToList()); } }
/// <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; } }
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); } }
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); } } }
/// <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); } } }
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); } } }
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"); } }
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); }
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(); } }
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); } }
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; } } } } } }
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 { } }
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()); } } } }
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(); } } } }
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 { } } } }
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; } }
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; } } } } } }