예제 #1
0
        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}")));
            }
        }
예제 #2
0
        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));
            }
        }