Esempio n. 1
0
        public FubuContinuation Post(LogScoreViewModel request)
        {
            var score = session
                            .Query<Score>()
                            .SingleOrDefault(s => s.AthleteId == request.Athlete.Id && s.EventId == request.Event.Id);

            var theEvent = session.Load<Event>(request.Event.Id);

            if (score == null)
            {
                var athlete = session.Load<Athlete>(request.Athlete.Id);
                score = new Score
                                   {
                                       AthleteId = athlete.Id,
                                       EventId = theEvent.Id,
                                       Gender = athlete.Gender,
                                       ScoreType = theEvent.ScoreType,
                                       AthleteName = athlete.FullName
                                   };
            }

            score.Reps = request.Score.Reps;
            score.Time = request.Score.Time;

            session.Store(score);
            session.SaveChanges();

            UpdatePlaces(theEvent, score.Gender);

            return FubuContinuation.RedirectTo(new EventDetailsRequest{EventId = request.Event.Id});
        }
 private Score CreateNewScore(LogScoreViewModel request, Event theEvent)
 {
     var athlete = session.Load<Athlete>(request.Athlete.Id);
     return new Score
                 {
                     AthleteId = athlete.Id,
                     EventId = theEvent.Id,
                     ScoreType = theEvent.ScoreType,
                     AthleteName = athlete.Name
                 };
 }
        public FubuContinuation Post(LogScoreViewModel request)
        {
            var score = session
                            .Query<Score>()
                            .SingleOrDefault(s => s.AthleteId == request.Athlete.Id
                                                  && s.EventId == request.Event.Id);

            var theEvent = session.Load<Event>(request.Event.Id);

            if (score == null)
                score = CreateNewScore(request, theEvent);

            score.Reps = request.Score.Reps;
            score.Time = request.Score.Time;
            score.ScoredPlace = request.Score.ScoredPlace;
            score.Weight = request.Score.Weight;

            session.Store(score);
            session.SaveChanges();

            UpdatePlaces(theEvent);

            return FubuContinuation.RedirectTo(new EventDetailsRequest{EventId = request.Event.Id});
        }