Exemple #1
0
 public void Dispose()
 {
     cacheFilteredCollection?.RemoveCollection(this);
     cacheFilteredCollection = null;
     collection?.Dispose();
     collection = null;
 }
Exemple #2
0
 public FilteredCollection(
     CacheFilteredCollection <TItem> cacheFilteredCollection,
     string queueName,
     Func <TItem, bool> itemMatch,
     int queueCapacity = 1000)
 {
     this.cacheFilteredCollection = cacheFilteredCollection;
     this.QueueName  = queueName;
     this.collection = new BlockingCollection <TItem>(queueCapacity);
     this.itemMatch  = itemMatch;
 }
        public CacheItems(
            TransactionItems <CacheItemDto <TItem> > transactionItems,
            IEnumerable <TItem> items = null,
            TimeSpan?expirationTime   = null,
            CacheFilteredCollection <CacheItemDto <TItem> > filteredCollection = null,
            ILogger logger = null)
        {
            this.expirationTime = expirationTime ?? TimeSpan.FromHours(1);

            if (transactionItems != null)
            {
                this.transactionItems = transactionItems;
                this.transactionItems.TransactionCommitted += OnTransactionCommitted;
                this.transactionItems.TransactionAborted   += OnTransactionAborted;
            }

            InitializeCacheItems(items ?? new List <TItem>());

            this.filteredCollection = filteredCollection;
            this.logger             = logger;
        }