public IActionResult LinkWithMeal_Recipe(int Meal_id, int Recipe_id) { var session = HttpContext.Get <LoggableEntities>(_context); var current_User = session == null ? null : session.User; var current_Admin = session == null ? null : session.Admin; var allowed_sources = _context.Meal; var source = allowed_sources.FirstOrDefault(s => s.Id == Meal_id); var allowed_targets = _context.Recipe; var target = allowed_targets.FirstOrDefault(s => s.Id == Recipe_id); var can_edit_source_by_token = ApiTokenValid || true; var can_edit_target_by_token = ApiTokenValid || true; var can_link_by_token = ApiTokenValid || true; if (!CanAdd_Meal_Meal_Recipes(source) || !can_link_by_token || !can_edit_source_by_token || !can_edit_target_by_token) { return(BadRequest()); } // throw new Exception("Cannot add item to relation Meal_Recipes"); if (!CanAdd_Recipe_Meal_Recipes(target)) { return(BadRequest()); } // throw new Exception("Cannot add item to relation Meal_Recipes"); var link = new Meal_Recipe() { Id = _context.Meal_Recipe.Max(i => i.Id) + 1, MealId = source.Id, RecipeId = target.Id }; _context.Meal_Recipe.Add(link); _context.SaveChanges(); return(Ok()); }
public IActionResult /*IEnumerable<Recipe>*/ CreateNewMeal_Recipe_Recipe(int Meal_id) { var session = HttpContext.Get <LoggableEntities>(_context); var current_User = session == null ? null : session.User; var current_Admin = session == null ? null : session.Admin; var allowed_sources = ApiTokenValid ? _context.Meal : _context.Meal; var source = allowed_sources.FirstOrDefault(s => s.Id == Meal_id); var can_create_by_token = ApiTokenValid || true; if (source == null || !can_create_by_token) { return(Unauthorized()); } // throw new Exception("Cannot create item in relation Meal_Recipes"); var can_link_by_token = ApiTokenValid || true; if (!CanAdd_Meal_Meal_Recipes(source) || !can_link_by_token) { return(Unauthorized()); } //throw new Exception("Cannot add item to relation Meal_Recipes"); var new_target = new Recipe() { CreatedDate = DateTime.Now, Id = _context.Recipe.Max(i => i.Id) + 1 }; _context.Recipe.Add(new_target); _context.SaveChanges(); var link = new Meal_Recipe() { Id = _context.Meal_Recipe.Max(l => l.Id) + 1, MealId = source.Id, RecipeId = new_target.Id }; _context.Meal_Recipe.Add(link); _context.SaveChanges(); return(Ok(new Recipe[] { new_target })); }