Ejemplo n.º 1
0
        public async Task <IActionResult> PostWorkout([FromBody] Workout workout)
        {
            if (workout.Order < 0)
            {
                return(BadRequest());
            }
            await _workoutRepository.Write(workout);

            var routine = new Routine();

            _cache.TryGetValue(workout.RoutineId, out routine);
            var i = 0;

            routine.Sets.ToList().ForEach(c => { c.Order = i; i++; });
            var set = routine.Sets.Skip(workout.Order + 1).FirstOrDefault();

            if (set == null)
            {
                _workoutRepository.CompleteWorkout(workout.RoutineId);
                return(Ok(new { message = "Congrats! You completed a workout." }));
            }
            return(Ok(new { set, hypermedia = _hypermediaService.GetHypermediaForNextSet() }));
        }