public IActionResult AddCategory([FromBody] Category newCategory) { try { if (newCategory != null && newCategory.Title.Length > 2) { if (db.Categories.FirstOrDefault(x => x.Title == newCategory.Title) != null) { return(StatusCode(400, "Category with same name already exist")); } if (newCategory.ParentCategory == null) { db.Add(newCategory); db.SaveChanges(); return(StatusCode(200)); } Category node = newCategory; for (int a = 0; a < 3; a++) { if (node != null && node.ParentCategory == null) { db.Add(newCategory); db.SaveChanges(); return(StatusCode(200)); } node = db.Categories.FirstOrDefault(x => x.Id == node.ParentCategory); } } return(StatusCode(400)); } catch (Exception) { return(StatusCode(400)); } }