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")); }