private CommandSearchResponse searchMultipleCommands(CommandSearchRequest searchRequest) {
final CommandSearchResponse commandSearchResponse = new CommandSearchResponse();
final Collection<DeviceCommand> commands = hazelcastService.find(
searchRequest.getDeviceIds(),
searchRequest.getNames(),
getTotal(searchRequest.getSkip(), searchRequest.getTake()),
searchRequest.getTimestampStart(),
searchRequest.getTimestampEnd(),
searchRequest.isReturnUpdated(),
searchRequest.getStatus(),
DeviceCommand.class);
final Comparator<DeviceCommand> comparator = buildDeviceCommandComparator(searchRequest.getSortField());
String sortOrder = searchRequest.getSortOrder();
final Boolean reverse = sortOrder == null ? null : "desc".equalsIgnoreCase(sortOrder);
final List<DeviceCommand> sortedDeviceCommands = orderAndLimit(new ArrayList<>(commands),
comparator, reverse, searchRequest.getSkip(), searchRequest.getTake());
commandSearchResponse.setCommands(new ArrayList<>(sortedDeviceCommands));
return commandSearchResponse;
}