Ejemplo n.º 1
0
 public async Task PopulateMarks()
 {
     foreach (String nextLine in DatabaseUtilities.ReadDB(@"Marks"))
     {
         String[] singleMark = nextLine.Split('#');
         MarksDictionary.Add(int.Parse(singleMark[0]), (new Mark {
             MarkID = int.Parse(singleMark[0]), UserID = singleMark[1], TestID = int.Parse(singleMark[2]), MarkInt = int.Parse(singleMark[3]), MarkPercent = int.Parse(singleMark[4])
         }));
         MarkID = (int.Parse(singleMark[0]) + 1);
     }
 }
Ejemplo n.º 2
0
        //_____________________________Method to Print to a marksheet at the passed path returns true if marks exist for the selected test__________________________
        public bool PopulateMarkSheet(String fileName, bool marksExist)
        {
            if (MarksDictionary.Any(n => n.Value.TestID == this.ChosenTestID))
            {
                StreamWriter sw = new StreamWriter(fileName);
                int          highestMark = 0, lowestMark = 100, average = 0, count = 0;
                String       space = "                     ", highestMarkString = null, lowestMarkString = null;
                int          spaceLength = 25;
                sw.WriteLine("Marks for " + TestName);
                sw.WriteLine("-----------------------------------------------------");
                sw.WriteLine("Name" + space + "|    Mark");
                sw.WriteLine("-----------------------------------------------------");

                //___________________Writeline for each user that has completed chosen test, calculate highest, lowest and average______________________________
                foreach (KeyValuePair <int, Mark> mark in MarksDictionary.Where(n => n.Value.TestID == this.ChosenTestID))
                {
                    space = "";
                    foreach (KeyValuePair <int, String> user in UsersDictionary)
                    {
                        if (user.Key == int.Parse(MarksDictionary[mark.Key].UserID))
                        {
                            for (int i = 0; i < spaceLength - user.Value.Length; i++)
                            {
                                space += " ";
                            }
                            sw.WriteLine(user.Value + space + "|    " + MarksDictionary[mark.Key].MarkPercent.ToString() + "%");
                            average += MarksDictionary[mark.Key].MarkPercent;

                            if (MarksDictionary[mark.Key].MarkPercent > highestMark)
                            {
                                highestMark       = MarksDictionary[mark.Key].MarkPercent;
                                highestMarkString = user.Value + space + "|    " + MarksDictionary[mark.Key].MarkPercent.ToString() + "%";
                            }
                            else
                            {
                                if (MarksDictionary[mark.Key].MarkPercent == highestMark)
                                {
                                    highestMarkString += "\n" + user.Value + space + "|    " + MarksDictionary[mark.Key].MarkPercent.ToString() + "%";
                                }
                            }

                            if (MarksDictionary[mark.Key].MarkPercent < lowestMark)
                            {
                                lowestMark       = MarksDictionary[mark.Key].MarkPercent;
                                lowestMarkString = user.Value + space + "|    " + MarksDictionary[mark.Key].MarkPercent.ToString() + "%";
                            }
                            else
                            {
                                if (MarksDictionary[mark.Key].MarkPercent == lowestMark)
                                {
                                    lowestMarkString += "\n" + user.Value + space + "|    " + MarksDictionary[mark.Key].MarkPercent.ToString() + "%";
                                }
                            }
                        }
                    }
                    count++;
                }
                //__________________________________Output highest, lowest and average__________________________________________
                average = average / count;
                sw.WriteLine("------------------Highest Mark/s---------------------");
                sw.WriteLine(highestMarkString);
                sw.WriteLine("-------------------Lowest Mark/s---------------------");
                sw.WriteLine(lowestMarkString);
                sw.WriteLine("-------------------Class Average---------------------");
                sw.WriteLine("Class Average             |    " + average + "%");
                sw.Close();
                marksExist = true;
            }
            else
            {
                MessageBox.Show("No Marks exist for that test yet!", "Nope", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                marksExist = false;
            }
            return(marksExist);
        }