class BudgetReAppropriationController {

    @PostMapping("/_delete")
    @ResponseStatus(HttpStatus.CREATED)
    public BudgetReAppropriationResponse delete(
            @RequestBody @Valid final BudgetReAppropriationRequest budgetReAppropriationRequest, final BindingResult errors) {

        final BudgetReAppropriationMapper mapper = new BudgetReAppropriationMapper();
        budgetReAppropriationRequest.getRequestInfo().setAction(ACTION_DELETE);
        final BudgetReAppropriationResponse budgetReAppropriationResponse = new BudgetReAppropriationResponse();
        budgetReAppropriationResponse.setResponseInfo(getResponseInfo(budgetReAppropriationRequest.getRequestInfo()));
        List<BudgetReAppropriation> budgetreappropriations = new ArrayList<>();
        BudgetReAppropriation budgetReAppropriation = null;
        BudgetReAppropriationContract contract = null;
        final List<BudgetReAppropriationContract> budgetReAppropriationContracts = new ArrayList<BudgetReAppropriationContract>();

        for (final BudgetReAppropriationContract budgetReAppropriationContract : budgetReAppropriationRequest
                .getBudgetReAppropriations()) {
            budgetReAppropriation = mapper.toDomain(budgetReAppropriationContract);
            budgetreappropriations.add(budgetReAppropriation);
        }

        budgetreappropriations = budgetReAppropriationService.delete(budgetreappropriations, errors,
                budgetReAppropriationRequest.getRequestInfo());

        for (final BudgetReAppropriation bra : budgetreappropriations) {
            contract = mapper.toContract(bra);
            budgetReAppropriationContracts.add(contract);
        }
        budgetReAppropriationResponse.setBudgetReAppropriations(budgetReAppropriationContracts);

        return budgetReAppropriationResponse;
    }

}