public ContestScore(Contest contest, IDbSet<Participant> participantList)
 {
     _contest = contest;
     ContestName = contest.Name;
     ParticipantList = participantList;
     AddParticipantScores();
 }
        public ActionResult Create(Contest contest)
        {
            if (ModelState.IsValid){
                _db.Contests.Add(contest);
                _db.SaveChanges();
                return RedirectToAction("Index");
            }

            return View(contest);
        }
 public void SetUp()
 {
     _contextMock = new Mock<IDbContext>();
     _controller = new ScoresController(_contextMock.Object);
     ICollection<Assignment> col = new Collection<Assignment>();
     var ass = new Assignment { Id = 1, Title = "Test", Scores = new Collection<Score>() };
     var participant = new Participant { Id = 1, Email = "vin" };
     ass.Scores.Add(new Score { Assignment = ass, Id = 1, IsCorrectOutput = true, Participant = participant, TimeSpent = 199 });
     col.Add(ass);
     Contest cont = new Contest{ Assignments = col, Id = 1, IsActive = true, Name = "Contest A" } ;
     _scoreCalc = new ParticipantScore(cont, participant);
     FakeDbSet<Contest> condb = new FakeDbSet<Contest>();
     condb.Add(cont);
     FakeDbSet<Participant> pardb = new FakeDbSet<Participant>();
     pardb.Add(participant);
     _leaderboard = new Leaderboard(condb, pardb);
 }
        private void SetScore(Contest contest, int id)
        {
            var assignmentsMade = 0;
            var assignmentsCompleted = 0;
            var totalTime = 0.0;

            foreach (var assignment in contest.Assignments)
                foreach (var score in assignment.Scores)
                    if (id == score.Participant.Id)
                    {
                        assignmentsMade++;
                        totalTime += score.TimeSpent;
                        if (score.IsCorrectOutput)
                            assignmentsCompleted++;
                    }

            AssignmentsMade = assignmentsMade;
            AssignmentsCompleted = assignmentsCompleted;
            AverageTime = totalTime / assignmentsMade + 0.0;
            CompletePercentage = CalculateCompletePercentage(assignmentsMade, assignmentsCompleted);
        }
 public ParticipantScore(Contest contest, Participant participant)
 {
     Email = participant.Email;
     Name = participant.Name;
     Functie = participant.Functie;
     SetScore(contest, participant.Id);
 }
 public ActionResult Edit(Contest contest)
 {
     if (ModelState.IsValid){
         Contest contestdel = _db.Contests.Find(contest.Id);
         _db.Contests.Remove(contestdel);
         _db.Contests.Add(contest);
         _db.SaveChanges();
         return RedirectToAction("Index");
     }
     return View(contest);
 }