public IActionResult LinkWithCategorie_Meal(int Meal_id, 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 = _context.Meal; var source = allowed_sources.FirstOrDefault(s => s.Id == Meal_id); var allowed_targets = _context.Categorie; var target = allowed_targets.FirstOrDefault(s => s.Id == Categorie_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_Categorie_Meals(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_Meals"); if (!CanAdd_Categorie_Categorie_Meals(target)) { return(BadRequest()); } // throw new Exception("Cannot add item to relation Categorie_Meals"); var link = new Categorie_Meal() { Id = _context.Categorie_Meal.Max(i => i.Id) + 1, MealId = source.Id, CategorieId = target.Id }; _context.Categorie_Meal.Add(link); _context.SaveChanges(); return(Ok()); }
public IActionResult /*IEnumerable<Mediterranean>*/ CreateNewCategorie_Meal_Mediterranean(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 Categorie_Meals"); var can_link_by_token = ApiTokenValid || true; if (!CanAdd_Meal_Categorie_Meals(source) || !can_link_by_token) { return(Unauthorized()); } //throw new Exception("Cannot add item to relation Categorie_Meals"); var new_target = new Mediterranean() { CreatedDate = DateTime.Now, Id = _context.Categorie.Max(i => i.Id) + 1 }; _context.Mediterranean.Add(new_target); _context.SaveChanges(); var link = new Categorie_Meal() { Id = _context.Categorie_Meal.Max(l => l.Id) + 1, MealId = source.Id, CategorieId = new_target.Id }; _context.Categorie_Meal.Add(link); _context.SaveChanges(); return(Ok(new Mediterranean[] { new_target })); }