public Task <int> CountBetween <T1, T2>(long partitionKey, IRecordSearch <T1, T2> search, T1 val, T2 start, T2 end) { if (!_validSearches.Any(v => v.Equals(search))) { throw new InvalidOperationException("This search has not been added as a mapping"); } string actualVal = KeyParser(val); string actualStart = KeyParser(start); string actualEnd = KeyParser(end); if (actualEnd.CompareTo(actualStart) < 0) { var temp = actualStart; actualStart = actualEnd; actualEnd = temp; } // End value is inclusive, lets add a char to the underscore so it includes everything return(_client.Query <TSearch>(_tableName, null) .PartitionKeyEquals(partitionKey.ToString(CultureInfo.InvariantCulture)) .RowKeyGreaterThan(search.Prefix + Underscore + actualVal + Underscore + actualStart + Underscore) .RowKeyLessThan(search.Prefix + Underscore + actualVal + Underscore + actualEnd + Convert.ToChar(Convert.ToInt32(Underscore) + 1)) .Count()); }
public Task <int> CountFor <T1>(long partitionKey, IRecordSearch <T1> search, T1 val) { if (!_validSearches.Any(v => v.Equals(search))) { throw new InvalidOperationException("This search has not been added as a mapping"); } return(_client.Query <TSearch>(_tableName, null) .PartitionKeyEquals(partitionKey.ToString(CultureInfo.InvariantCulture)) .RowKeyStartsWith(search.Prefix + Underscore + KeyParser(val) + Underscore) .Count()); }
public virtual IList <HermesAuditRecord> GetAuditRecords(IRecordSearch <HermesAuditRecord, string> recordSearch) { return(AuditRecordsWrapper <HermesAuditRecord, string> .AuditRecords); }
public IAsyncEnumerable <TSearch> SearchBetween <T1>(long partitionKey, Lazy <Task <IEncryptor> > encryptor, IRecordSearch <T1> search, T1 start, T1 end) { if (!_validSearches.Any(v => v.Equals(search))) { throw new InvalidOperationException("This search has not been added as a mapping"); } string actualStart = KeyParser(start); string actualEnd = KeyParser(end); if (actualEnd.CompareTo(actualStart) < 0) { var temp = actualStart; actualStart = actualEnd; actualEnd = temp; } // End value is inclusive, lets add a char to the underscore so it includes everything return(ExecuteWithEncryptor(encryptor, e => _client.Query <TSearch>(_tableName, e) .PartitionKeyEquals(partitionKey.ToString(CultureInfo.InvariantCulture)) .RowKeyGreaterThan(search.Prefix + Underscore + actualStart + Underscore) .RowKeyLessThan(search.Prefix + Underscore + actualEnd + Convert.ToChar(Convert.ToInt32(Underscore) + 1)) .AsEnumerable())); }
public Task <int> CountAll <T1, T2>(long partitionKey, IRecordSearch <T1, T2> search) { return(Count(partitionKey, search.Prefix, search)); }
public IAsyncEnumerable <TSearch> SearchAll <T1, T2>(long partitionKey, Lazy <Task <IEncryptor> > encryptor, IRecordSearch <T1, T2> search) { return(Search(partitionKey, encryptor, search.Prefix, search)); }
public IAsyncEnumerable <TSearch> SearchFor <T1>(long partitionKey, Lazy <Task <IEncryptor> > encryptor, IRecordSearch <T1> search, T1 val) { if (!_validSearches.Any(v => v.Equals(search))) { throw new InvalidOperationException("This search has not been added as a mapping"); } return(ExecuteWithEncryptor(encryptor, e => _client.Query <TSearch>(_tableName, e) .PartitionKeyEquals(partitionKey.ToString(CultureInfo.InvariantCulture)) .RowKeyStartsWith(search.Prefix + Underscore + KeyParser(val) + Underscore) .AsEnumerable())); }
public IAsyncEnumerable <TSearch> SearchBetween <T1, T2>(IRecordSearch <T1, T2> search, T1 val, T2 start, T2 end) { return(_composition.SearchBetween(_partitionId, _encryptor, search, val, start, end)); }
public Task <int> CountAll <T1, T2>(IRecordSearch <T1, T2> search) { return(_composition.CountAll(_partitionId, search)); }
public IAsyncEnumerable <TSearch> SearchFor <T1, T2>(IRecordSearch <T1, T2> search, T1 val, T2 val2) { return(_composition.SearchFor(_partitionId, _encryptor, search, val, val2)); }
public IAsyncEnumerable <TSearch> SearchAll <T1, T2>(IRecordSearch <T1, T2> search) { return(_composition.SearchAll(_partitionId, _encryptor, search)); }
public Task <int> CountBetween <T1, T2>(IRecordSearch <T1, T2> search, T1 val, T2 start, T2 end) { return(_composition.CountBetween(_partitionId, search, val, start, end)); }
public Task <int> CountBetween <T1>(IRecordSearch <T1> search, T1 start, T1 end) { return(_composition.CountBetween(_partitionId, search, start, end)); }
public Task <int> CountFor <T1, T2>(IRecordSearch <T1, T2> search, T1 val, T2 val2) { return(_composition.CountFor(_partitionId, search, val, val2)); }