public async Task<IActionResult> DeleteProductCategory(string key, [FromBody] ODataActionParameters parameters) { if (parameters == null) return NotFound(); if (!await _permissionService.Authorize(PermissionSystemName.Products)) return Forbid(); var product = await _productApiService.GetById(key); if (product == null) { return NotFound(); } var categoryId = parameters.FirstOrDefault(x => x.Key == "CategoryId").Value; if (categoryId != null) { var pc = product.Categories.Where(x => x.CategoryId == categoryId.ToString()).FirstOrDefault(); if (pc == null) ModelState.AddModelError("", "No product category mapping found with the specified id"); if (ModelState.IsValid) { await _productApiService.DeleteProductCategory(product, categoryId.ToString()); return Ok(true); } return BadRequest(ModelState); } return NotFound(); }