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}); }