示例#1
0
        public async Task <IActionResult> AddTrainingToHistory([FromBody] AddTrainingToHistoryRequest request)
        {
            var training = await _trainingService.GetTrainingByIdAsync(request.TrainingId);

            if (training == null)
            {
                return(NotFound());
            }

            List <ExerciseHistory> histories = new List <ExerciseHistory>();

            foreach (ExerciseHistoryRequest exercise in request.Exercises)
            {
                histories.Add(new ExerciseHistory
                {
                    ExerciseId           = exercise.ExerciseId,
                    ExerciseHistoryStats = new List <ExerciseHistoryStats>
                    {
                        _mapper.Map <ExerciseHistoryStats>(exercise.ExerciseHistoryStat)
                    }
                });
            }

            var updated = await _trainingService.AddTrainingToHistory(training, histories);

            if (!updated)
            {
                return(BadRequest(new ErrorResponse("Wystąpił błąd podczas dodawania treningu do historii")));
            }

            return(Ok());
        }
        private async Task <AddTrainingToHistoryRequest> CreateAddTrainingToHistoryRequest(AuthenticatedUser user)
        {
            Training training = await CreatePrivateTraining(user.Id);

            Exercise exercise1 = await CreateExercise();

            Exercise exercise2 = await CreateExercise();

            TrainingExercise trainingExercise1 = new TrainingExercise {
                ExerciseId = exercise1.Id, TrainingId = training.Id
            };
            TrainingExercise trainingExercise2 = new TrainingExercise {
                ExerciseId = exercise2.Id, TrainingId = training.Id
            };

            await Context.TrainingExercise.AddRangeAsync(new List <TrainingExercise> {
                trainingExercise1, trainingExercise2
            });

            await Context.SaveChangesAsync();

            AddTrainingToHistoryRequest request = new AddTrainingToHistoryRequest
            {
                TrainingId = training.Id,
                Exercises  = new List <ExerciseHistoryRequest>
                {
                    new ExerciseHistoryRequest
                    {
                        ExerciseId          = exercise1.Id,
                        ExerciseHistoryStat = new ExerciseHistoryStatsRequest
                        {
                            Obciazenie  = 20,
                            Powtorzenia = 10,
                            Serie       = 3,
                            Czas        = 0,
                            Dystans     = 0
                        }
                    },
                    new ExerciseHistoryRequest
                    {
                        ExerciseId          = exercise2.Id,
                        ExerciseHistoryStat = new ExerciseHistoryStatsRequest
                        {
                            Obciazenie  = 10,
                            Powtorzenia = 5,
                            Serie       = 6,
                            Czas        = 0,
                            Dystans     = 0
                        }
                    }
                }
            };

            return(request);
        }