Esempio n. 1
0
        public async Task <WorkoutSessionDetailDto> CreateSession(string currentUserId, int workoutId, WorkoutSessionDetailDto sessionDetail)
        {
            if (sessionDetail == null)
            {
                throw new ArgumentNullException(nameof(sessionDetail));
            }

            // Add the sessionDetail to the db
            var newlyCreatedSession = _context.Sessions.Add(new Session {
                Date = sessionDetail.Date, WorkoutId = sessionDetail.WorkoutId
            });

            await _context.SaveChangesAsync();

            // Edit the sessionDetail id
            sessionDetail.SessionId = newlyCreatedSession.Entity.Id;

            // Add sessionDetail sets
            foreach (var exercise in sessionDetail.Exercises)
            {
                for (var setIndex = 0; setIndex < exercise.Reps.Length; setIndex++)
                {
                    _context.Sets.Add(new Set
                    {
                        ExerciseId = exercise.ExerciseId,
                        SessionId  = sessionDetail.SessionId,
                        Reps       = exercise.Reps[setIndex],
                        Weight     = exercise.Weight[setIndex],
                        Unit       = Enums.Unit.Kg,
                        UsesBands  = false,
                        UsesChains = false
                    });
                }
            }

            await _context.SaveChangesAsync();

            return(sessionDetail);
        }
Esempio n. 2
0
        public async Task <ActionResult <WorkoutSessionDetailDto> > AddSession(int workoutId, WorkoutSessionDetailDto workoutSessionDetailDto)
        {
            if (string.IsNullOrEmpty(CurrentUserId))
            {
                return(Unauthorized(new { message = $"Unable to create session for workout with id {workoutId}, no user is currently logged in." }));
            }

            if (workoutSessionDetailDto == null)
            {
                return(BadRequest(new { message = $"Unable to create session for workout with id {workoutId}, session details are null." }));
            }

            return(Ok(await _workoutRepository.CreateSession(CurrentUserId, workoutId, workoutSessionDetailDto)));
        }