public AsyncSubject <Unit> InvalidateTypes(IEnumerable <string> types) { var ret = OperationQueueItem.CreateInvalidate(OperationType.BulkInvalidateByTypeSqliteOperation, types); _operationQueue.Add(ret); return(ret.CompletionAsUnit); }
static OperationQueueItem GroupUnrelatedDeletes(IEnumerable <OperationQueueItem> unrelatedDeletes) { var subj = new AsyncSubject <Unit>(); if (unrelatedDeletes.Count() == 1) { return(unrelatedDeletes.First()); } var elements = unrelatedDeletes.SelectMany(x => { subj.Subscribe(x.CompletionAsUnit); return(x.ParametersAsKeys); }).ToList(); return(OperationQueueItem.CreateInvalidate( OperationType.BulkInvalidateSqliteOperation, elements, subj)); }