Exemplo n.º 1
0
        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());
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
 public virtual IList <HermesAuditRecord> GetAuditRecords(IRecordSearch <HermesAuditRecord, string> recordSearch)
 {
     return(AuditRecordsWrapper <HermesAuditRecord, string> .AuditRecords);
 }
Exemplo n.º 4
0
        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()));
        }
Exemplo n.º 5
0
 public Task <int> CountAll <T1, T2>(long partitionKey, IRecordSearch <T1, T2> search)
 {
     return(Count(partitionKey, search.Prefix, search));
 }
Exemplo n.º 6
0
 public IAsyncEnumerable <TSearch> SearchAll <T1, T2>(long partitionKey, Lazy <Task <IEncryptor> > encryptor, IRecordSearch <T1, T2> search)
 {
     return(Search(partitionKey, encryptor, search.Prefix, search));
 }
Exemplo n.º 7
0
        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()));
        }
Exemplo n.º 8
0
 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));
 }
Exemplo n.º 9
0
 public Task <int> CountAll <T1, T2>(IRecordSearch <T1, T2> search)
 {
     return(_composition.CountAll(_partitionId, search));
 }
Exemplo n.º 10
0
 public IAsyncEnumerable <TSearch> SearchFor <T1, T2>(IRecordSearch <T1, T2> search, T1 val, T2 val2)
 {
     return(_composition.SearchFor(_partitionId, _encryptor, search, val, val2));
 }
Exemplo n.º 11
0
 public IAsyncEnumerable <TSearch> SearchAll <T1, T2>(IRecordSearch <T1, T2> search)
 {
     return(_composition.SearchAll(_partitionId, _encryptor, search));
 }
Exemplo n.º 12
0
 public Task <int> CountBetween <T1, T2>(IRecordSearch <T1, T2> search, T1 val, T2 start, T2 end)
 {
     return(_composition.CountBetween(_partitionId, search, val, start, end));
 }
Exemplo n.º 13
0
 public Task <int> CountBetween <T1>(IRecordSearch <T1> search, T1 start, T1 end)
 {
     return(_composition.CountBetween(_partitionId, search, start, end));
 }
Exemplo n.º 14
0
 public Task <int> CountFor <T1, T2>(IRecordSearch <T1, T2> search, T1 val, T2 val2)
 {
     return(_composition.CountFor(_partitionId, search, val, val2));
 }