public bool Execute(IUseCaseOutput <DeleteRequirementResponse> output, DeleteRequirementRequest request) { try { if (!request.Validate(out var errors)) { return(output.Accept(new ValidationErrorResponse(errors, "Invalid request."))); } var rights = _securityGateway.GetProjectRights(request.ProjectId, request.RequestedBy); if (!rights.CanChangeRequirements) { return(output.Accept(new FailureResponse("User can't change requiremnts of this project"))); } if (!_requirementRepository.DeleteRequirement(request.RequirementId)) { return(output.Accept(new FailureResponse("Requirement couldn't be deleted."))); } return(output.Accept(new DeleteRequirementResponse { Message = "Requirement deleted successfully", })); } catch (EntityNotFoundException e) { return(output.Accept(new FailureResponse($"Entity not found. {e.Message}"))); } catch (Exception e) { return(output.Accept(new FailureResponse($"Tehnical error happend. {e.Message}"))); } }
public async Task <IActionResult> DeleteRequirement([FromBody] Guid id) { var _requirement = await _requirementRepository.DeleteRequirement(id); if (_requirement == false) { return(NotFound("Requisito não encontrado")); } else { return(Ok(_requirement)); } }