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

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

            var eatingPlan = new EatingPlan()
            {
                User   = client,
                UserId = client.Id,
            };
            var mealPlans = new List <MealPlan>();

            foreach (var plan in input.MealPlans.Where(d => d.Meals != null).ToList())
            {
                var mealPlan = new MealPlan()
                {
                    Name         = plan.Name,
                    Time         = plan.Time,
                    EatingPlan   = eatingPlan,
                    EatingPlanId = eatingPlan.EatingPlanId,
                };

                foreach (var inputMeal in plan.Meals)
                {
                    var meal = new Meal()
                    {
                        Name       = inputMeal.Name,
                        GramsOrMil = inputMeal.GramsOrMil,
                        MealPlan   = mealPlan,
                        MealPlanId = mealPlan.MealPlanId,
                    };
                    mealPlan.Meals.Add(meal);
                }

                mealPlans.Add(mealPlan);
            }

            eatingPlan.MealPlans = mealPlans;

            await this.db.EatingPlan.AddAsync(eatingPlan);

            await this.db.SaveChangesAsync();
        }
        public async Task <IActionResult> AddEatingPlan(EatingPlanInputModel input)
        {
            await this.trainersService.AddEatingPlantToClient(input);

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