/**
   * Get the user guid from a given id record and id entry. <br>
   * Return an empty string if the entry is not an EntryTypeMyLuteceUser nor
   * EntryTypeRemoteMyLuteceUser
   *
   * @param nIdRecord the id record
   * @param nIdEntry the id entry
   * @return the user GUID
   */
  public String getUserGuid(int nIdRecord, int nIdEntry) {
    String strUserGuid = StringUtils.EMPTY;
    Plugin plugin = PluginService.getPlugin(DirectoryPlugin.PLUGIN_NAME);
    IEntry entry = EntryHome.findByPrimaryKey(nIdEntry, plugin);

    if ((entry != null) && (entry.getEntryType() != null)) {
      if (((entry.getEntryType().getIdType()
                  == AppPropertiesService.getPropertyInt(
                      PROPERTY_ENTRY_TYPE_REMOTE_MYLUTECE_USER, 21))
              && DirectoryUserAttributesManager.getManager().isEnabled())
          || (entry.getEntryType().getIdType()
              == AppPropertiesService.getPropertyInt(PROPERTY_ENTRY_TYPE_MYLUTECE_USER, 19))) {
        RecordFieldFilter recordFieldFilter = new RecordFieldFilter();
        recordFieldFilter.setIdRecord(nIdRecord);
        recordFieldFilter.setIdEntry(nIdEntry);

        List<RecordField> listRecordFields =
            DirectoryService.getInstance().getRecordFieldByFilter(recordFieldFilter);

        if ((listRecordFields != null)
            && !listRecordFields.isEmpty()
            && (listRecordFields.get(0) != null)) {
          strUserGuid = listRecordFields.get(0).getValue();
        }
      }
    }

    return strUserGuid;
  }
  /**
   * Get the records count
   *
   * @param directory the {@link Directory}
   * @param user the {@link AdminUser}
   * @return the record count
   */
  public int getRecordsCount(Directory directory, AdminUser user) {
    Plugin plugin = PluginService.getPlugin(DirectoryPlugin.PLUGIN_NAME);
    int nNbRecords = 0;
    boolean bWorkflowServiceEnable = WorkflowService.getInstance().isAvailable();
    RecordFieldFilter filter = new RecordFieldFilter();
    filter.setIdDirectory(directory.getIdDirectory());
    filter.setWorkgroupKeyList(AdminWorkgroupService.getUserWorkgroups(user, user.getLocale()));

    if ((directory.getIdWorkflow() != DirectoryUtils.CONSTANT_ID_NULL)
        && (directory.getIdWorkflow() != DirectoryUtils.CONSTANT_ID_ZERO)
        && bWorkflowServiceEnable) {
      List<Integer> listResultRecordIds =
          DirectorySearchService.getInstance()
              .getSearchResults(directory, null, null, null, null, filter, plugin);
      List<Integer> listTmpResultRecordIds =
          WorkflowService.getInstance()
              .getAuthorizedResourceList(
                  Record.WORKFLOW_RESOURCE_TYPE,
                  directory.getIdWorkflow(),
                  DirectoryUtils.CONSTANT_ID_NULL,
                  Integer.valueOf(directory.getIdDirectory()),
                  user);
      listResultRecordIds =
          DirectoryUtils.retainAllIdsKeepingFirstOrder(listResultRecordIds, listTmpResultRecordIds);
      nNbRecords = listResultRecordIds.size();
    } else {
      IRecordService recordService = SpringContextService.getBean(RecordService.BEAN_SERVICE);
      nNbRecords = recordService.getCountRecord(filter, plugin);
    }

    return nNbRecords;
  }