public SearchResult Search(SearchParameter param) { CheckParameter(param != null, "param is required"); return(DoSearch(param).Wait()); }
private SearchResultItem ConvertToResultItemIfMatchingCriteria(Transaction transaction, SearchParameter param) { if (transaction is TransferTransaction) { try { var messagePayload = RetrieveProximaxMessagePayloadService.GetMessagePayload( transaction as TransferTransaction, param.AccountPrivateKey); // verify message payload is upload transaction by having the right json fields if (messagePayload?.Version != null && messagePayload.PrivacyType != 0 && messagePayload.Data != null && messagePayload.Data.Timestamp != 0 && messagePayload.Data.DataHash != null) { if (MatchesSearchCriteria(messagePayload, param.NameFilter, param.DescriptionFilter, param.MetadataKeyFilter, param.MetadataValueFilter)) { return(new SearchResultItem( transaction.TransactionInfo.Hash, transaction.TransactionInfo.Id, messagePayload)); } } } catch (Exception) { // skip transaction } } return(null); }