@Transactional(readOnly = false)
  @RequestMapping(
      value = "/edit",
      method = {RequestMethod.POST, RequestMethod.GET})
  public void editor(
      @RequestParam String oper,
      Counterparty counterparty,
      BindingResult result,
      HttpServletResponse response)
      throws IOException {
    if (result.hasErrors()) {
      response.sendError(400, result.toString());
      return;
    }
    switch (oper) {
      case "add":
        counterpartyRepository.save(counterparty);
        response.setStatus(200);
        break;
      case "edit":
        Counterparty cpt = counterpartyRepository.findOne(counterparty.getId());
        if (counterparty != null) {
          if (cpt.getVersion() <= counterparty.getVersion()) {
            cpt.setFullName(counterparty.getFullName());
            cpt.setShortName(counterparty.getShortName());
            counterpartyRepository.save(cpt);
            response.setStatus(200);
          } else {
            response.sendError(400, "ANOTHER TRANSACTION MODIFICATION!");
          }
        } else {
          response.sendError(404, "NO Counterpart WITH ID " + counterparty.getId() + " FOUND");
        }

        break;
      case "del":
        counterpartyRepository.delete(counterparty.getId());
        response.setStatus(200);
        break;
      default:
        response.sendError(406, "UNKNOWN OPERATION");
    }
  }