public IActionResult LinkWithCategorie_Recipe(int Categorie_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.Categorie; var source = allowed_sources.FirstOrDefault(s => s.Id == Categorie_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_Categorie_Categorie_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 Categorie_Recipes"); if (!CanAdd_Recipe_Categorie_Recipes(target)) { return(BadRequest()); } // throw new Exception("Cannot add item to relation Categorie_Recipes"); var link = new Categorie_Recipe() { Id = _context.Categorie_Recipe.Max(i => i.Id) + 1, CategorieId = source.Id, RecipeId = target.Id }; _context.Categorie_Recipe.Add(link); _context.SaveChanges(); return(Ok()); }
public IActionResult /*IEnumerable<Recipe>*/ CreateNewCategorie_Recipe_Recipe(int Categorie_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.Categorie : _context.Categorie; var source = allowed_sources.FirstOrDefault(s => s.Id == Categorie_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 Categorie_Recipes"); var can_link_by_token = ApiTokenValid || true; if (!CanAdd_Categorie_Categorie_Recipes(source) || !can_link_by_token) { return(Unauthorized()); } //throw new Exception("Cannot add item to relation Categorie_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 Categorie_Recipe() { Id = _context.Categorie_Recipe.Max(l => l.Id) + 1, CategorieId = source.Id, RecipeId = new_target.Id }; _context.Categorie_Recipe.Add(link); _context.SaveChanges(); return(Ok(new Recipe[] { new_target })); }