code: public TargetTagAssignmentResult toggleTagAssignment(final Collection<Long> targetIds, final String targTagName) {
          final List<String> controllerIds = targetManagement.get(targetIds).stream().map(Target::getControllerId)
                  .collect(Collectors.toList());
          if (controllerIds.isEmpty()) {
              getNotification().displayWarning(getI18n().getMessage("targets.not.exists"));
              return new TargetTagAssignmentResult(0, 0, 0, Lists.newArrayListWithCapacity(0),
                      Lists.newArrayListWithCapacity(0), null);
          }
  
          final Optional<TargetTag> tag = tagManagement.getByName(targTagName);
          if (!tag.isPresent()) {
              getNotification().displayWarning(getI18n().getMessage("targettag.not.exists", targTagName));
              return new TargetTagAssignmentResult(0, 0, 0, Lists.newArrayListWithCapacity(0),
                      Lists.newArrayListWithCapacity(0), null);
          }
  
          final TargetTagAssignmentResult result = targetManagement.toggleTagAssignment(controllerIds, targTagName);
  
          getNotification().displaySuccess(HawkbitCommonUtil.createAssignmentMessage(targTagName, result, getI18n()));
  
          return result;
      }
docs: Toggles {@link TargetTag} assignment to given target ids by means that if
  some (or all) of the targets in the list have the {@link Tag} not yet
  assigned, they will be. If all of theme have the tag already assigned
  they will be removed instead. Additionally a success popup is shown.
  
  @param targetIds
  to toggle for
  @param targTagName
  to toggle
  @return TagAssigmentResult with all meta data of the assignment outcome.