public ScoreViewModel GetNewResultViewModel(int eventId, int classId, int clubId)
        {
            var model = new ScoreViewModel();

            var comp = _eventRepository.GetEventById(eventId);

            var compClass = _classRepository.GetClassById(classId);
            var club = _clubRepository.GetClubById(clubId);

            model.ClassName = compClass.Name;
            model.ClubName = club.Acronym;
            model.ClassId = classId;
            model.ClubId = clubId;
            model.EventId = eventId;
            model.EventName = comp.Name;
            model.NumberOfCourses = comp.NumberOfCourses;

            return model;
        }
        public void SaveNewScores(ScoreViewModel model, FormCollection form)
        {
            //var comp = _eventRepository.GetEventById(model.EventId);

            var result = new Result
                         	{
                         		EventId = model.EventId,
                         		DriverId = model.DriverId,
                         		ClassId = model.ClassId,
                                DateCreated = DateTime.Now,
                                DateModified = DateTime.Now
                         	};

            for (int i = 0; i < model.NumberOfCourses; i ++ )
            {
                int? courseScore = null;

                if(!string.IsNullOrEmpty(form["Course_" + (i + 1) + "_Score"]))
                {
                    courseScore = int.Parse(form["Course_" + (i + 1) + "_Score"]);
                }

                var score = new Score
                                {
                                    CourseNumber = i + 1,
                                    CourseScore = courseScore
                                };

                if(result.Scores == null)
                {
                    result.Scores = new EntityCollection<Score>();
                }

                result.Scores.Add(score);
            }

            _resultRepository.SaveNewScores(result);

            _resultService.AwardPlaceAndPoints(result.EventId, result.ClassId);
        }
        public void UpdateScores(ScoreViewModel model, FormCollection form)
        {
            //var comp = _eventRepository.GetEventById(model.EventId);

            var result = _resultRepository.GetIndividualResult(model.EventId, model.DriverId, model.ClassId);

            for (int i = 0; i < model.NumberOfCourses; i++)
            {
                int? courseScore = null;

                if (!string.IsNullOrEmpty(form["Course_" + (i + 1) + "_Score"]))
                {
                    courseScore = int.Parse(form["Course_" + (i + 1) + "_Score"]);
                }

                //var score = new Score
                //{
                //    CourseNumber = i + 1,
                //    CourseScore = courseScore
                //};
                var score = result.Scores.Where(s => s.CourseNumber == (i + 1)).Single();

                score.CourseScore = courseScore;

                //if (result.Scores == null)
                //{
                //    result.Scores = new EntityCollection<Score>();
                //}

                //result.Scores.Add(score);
            }

            _scoreRepository.UpdateScores(result.Scores.ToList());

            _resultService.AwardPlaceAndPoints(result.EventId, result.ClassId);
        }