public async Task <IActionResult> Create(Guid id)
        {
            if (await _bll.TrainingDays.IsPartOfBaseRoutineAsync(id))
            {
                var viewModel = new ExerciseInTrainingDayCreateEditViewModel
                {
                    ExerciseInTrainingDay = new ExerciseInTrainingDay()
                };
                viewModel.ExerciseInTrainingDay.TrainingDayId = id;
                return(View(await AddSelectListsToViewModelAsync(viewModel)));
            }

            return(NotFound());
        }
        public async Task <IActionResult> Edit(Guid id)
        {
            if (await _bll.ExercisesInTrainingDays.IsPartOfBaseRoutineAsync(id))
            {
                var exerciseInTrainingDay = await _bll.ExercisesInTrainingDays.FindAsync(id);

                var viewModel = new ExerciseInTrainingDayCreateEditViewModel
                {
                    ExerciseInTrainingDay = exerciseInTrainingDay
                };
                return(View(await AddSelectListsToViewModelAsync(viewModel)));
            }

            return(NotFound());
        }
        private async Task <ExerciseInTrainingDayCreateEditViewModel> AddSelectListsToViewModelAsync(
            ExerciseInTrainingDayCreateEditViewModel viewModel)
        {
            var returnViewModel = new ExerciseInTrainingDayCreateEditViewModel();
            var exercises       = await _bll.Exercises.AllAsync();

            var exerciseTypes = await _bll.ExerciseTypes.AllAsync();

            returnViewModel.Exercises =
                new SelectList(exercises.OrderBy(e => e.Name), nameof(Exercise.Id), nameof(Exercise.Name));
            returnViewModel.ExerciseTypes =
                new SelectList(exerciseTypes, nameof(ExerciseType.Id), nameof(ExerciseType.Name));
            returnViewModel.ExerciseInTrainingDay = viewModel.ExerciseInTrainingDay;
            return(returnViewModel);
        }
        public async Task <IActionResult> Create(ExerciseInTrainingDayCreateEditViewModel viewModel)
        {
            if (await _bll.TrainingDays.IsPartOfBaseRoutineAsync(viewModel.ExerciseInTrainingDay.TrainingDayId))
            {
                if (ModelState.IsValid)
                {
                    viewModel.ExerciseInTrainingDay.Id = Guid.NewGuid();
                    _bll.ExercisesInTrainingDays.Add(viewModel.ExerciseInTrainingDay);
                    await _bll.SaveChangesAsync();

                    return(RedirectToAction(nameof(View), "TrainingDays",
                                            new { id = viewModel.ExerciseInTrainingDay.TrainingDayId }));
                }

                return(View(await AddSelectListsToViewModelAsync(viewModel)));
            }

            return(BadRequest());
        }