public IActionResult Delete(long id) { try { var progressItem = _progressRepository.Find(id); if (progressItem == null) { return(NotFound(ErrorCode.ItemNotFound.ToString())); } var assignmentItem = _assignmentRepository.Find(progressItem.AssignmentId); if (assignmentItem == null) { return(BadRequest(ErrorCode.DataProvidedIsInvalid.ToString())); } var userItem = _userRepository.Find(assignmentItem.UserId); if (userItem == null || userItem.Email != User.FindFirstValue(ClaimTypes.Email)) { return(BadRequest(ErrorCode.DataProvidedIsInvalid.ToString())); } _progressRepository.Delete(id); } catch (Exception) { return(BadRequest(ErrorCode.CouldNotDeleteItem.ToString())); } return(NoContent()); }