public async Task AddWorkoutPlantToClient(WorkoutPlanInputModel input)
        {
            var client = await this.db.Users.FirstOrDefaultAsync(u => u.Id == input.ClientId);

            if (client == null)
            {
                throw new ArgumentException("Невалиден клиент.");
            }

            var workoutPlan = new WorkoutPlan()
            {
                User   = client,
                UserId = client.Id,
            };
            var workoutDays = new List <WorkoutDay>();

            foreach (var day in input.WorkoutDays.Where(d => d.Exercises != null).ToList())
            {
                var workoutDay = new WorkoutDay()
                {
                    WorkDay       = day.WorkDay,
                    WorkoutPlan   = workoutPlan,
                    WorkoutPlanId = workoutPlan.WorkoutPlanId,
                };

                foreach (var inputExercise in day.Exercises)
                {
                    var exercise = new Exercise()
                    {
                        MuscleGroup  = inputExercise.MuscleGroup,
                        Name         = inputExercise.Name,
                        RepsOrTime   = inputExercise.RepsOrTime,
                        WorkoutDay   = workoutDay,
                        WorkoutDayId = workoutDay.WorkoutDayId,
                    };
                    workoutDay.Exercises.Add(exercise);
                }

                workoutDays.Add(workoutDay);
            }

            workoutPlan.WorkoutDays = workoutDays;

            await this.db.WorkoutPlans.AddAsync(workoutPlan);

            await this.db.SaveChangesAsync();
        }
        public async Task <IActionResult> AddWorkoutPlan(WorkoutPlanInputModel input)
        {
            await this.trainersService.AddWorkoutPlantToClient(input);

            return(this.Redirect("/Trainer/Trainer/Clients"));
        }