@RequestMapping(value = "/events/check", method = POST)
 public ValidationResult validateEvent(
     @RequestBody EventModification eventModification, Errors errors) {
   ValidationResult base =
       validateEventHeader(Optional.<Event>empty(), eventModification, errors)
           .or(validateEventPrices(Optional.<Event>empty(), eventModification, errors))
           .or(
               eventModification
                   .getAdditionalServices()
                   .stream()
                   .map(as -> validateAdditionalService(as, eventModification, errors))
                   .reduce(ValidationResult::or)
                   .orElse(ValidationResult.success()));
   AtomicInteger counter = new AtomicInteger();
   return base.or(
           eventModification
               .getTicketCategories()
               .stream()
               .map(
                   c ->
                       validateCategory(
                           c, errors, "ticketCategories[" + counter.getAndIncrement() + "]."))
               .reduce(ValidationResult::or)
               .orElse(ValidationResult.success()))
       .or(validateAdditionalTicketFields(eventModification.getTicketFields(), errors));
 }
 @RequestMapping(
     value = "/events/{eventName}/pending-payments/{reservationId}/confirm",
     method = POST)
 public String confirmPayment(
     @PathVariable("eventName") String eventName,
     @PathVariable("reservationId") String reservationId,
     Principal principal,
     Model model,
     HttpServletRequest request) {
   ticketReservationManager.confirmOfflinePayment(loadEvent(eventName, principal), reservationId);
   ticketReservationManager
       .findById(reservationId)
       .filter(TicketReservation::isDirectAssignmentRequested)
       .ifPresent(
           reservation ->
               ticketHelper.directTicketAssignment(
                   eventName,
                   reservationId,
                   reservation.getEmail(),
                   reservation.getFullName(),
                   reservation.getFirstName(),
                   reservation.getLastName(),
                   reservation.getUserLanguage(),
                   Optional.empty(),
                   request,
                   model));
   return OK;
 }