Esempio n. 1
0
        public UniquePayloadIndex(
            string indexName,
            IKeyExtractor <TValue> indexedKeyExtractor,
            IKeyExtractor <TValue> masterKeyExtractor,
            ISerializer serializer,
            TimeSpan?expiry)
        {
            Extractor           = indexedKeyExtractor;
            _masterKeyExtractor = masterKeyExtractor;
            var hashIndexCollectionName = indexName; //$"{collectionRootName}:{indexName.ToLowerInvariant()}";

            _indexWriter = new UniqueIndexWriter <TValue>(
                Extractor,
                serializer.Serialize,
                expiry,
                hashIndexCollectionName);

            _indexValueReader = new UniqueIndexReader <TValue>(hashIndexCollectionName, serializer.Deserialize <TValue>);
        }
Esempio n. 2
0
        public UniqueKeyedIndex(
            string indexName,
            IKeyExtractor <TValue> indexedKeyExtractor,
            IKeyExtractor <TValue> masterKeyExtractor,
            Func <string, TValue> masterValueGetter,
            TimeSpan?expiry)
        {
            Extractor          = indexedKeyExtractor;
            _masterValueGetter = masterValueGetter;
            var hashIndexCollectionName = indexName;

            _indexWriter = new UniqueIndexWriter <TValue>(
                Extractor,
                masterKeyExtractor.ExtractKey,
                expiry,
                hashIndexCollectionName);

            _indexValueReader = new UniqueIndexReader <string>(hashIndexCollectionName, value => value);
        }