public void UpdateIndex()
 {
     IStorageChangeCollection[] changes = Sync
                                          .Await(watchers.Values.Select(watcher => watcher.Update(index.Writer)));
     OnIndexChanged(new IndexChangesEventArgs(changes.ToDictionary(c => c.StorageArea)));
     index.Flush();
 }
 private static string ReadPayload(ExceptionLoggerContext context)
 {
     try
     {
         //TODO: use regular await.
         return(Sync.Await(context.Request.Content.ReadAsStringAsync()));
     }
     catch (Exception) {
         return(null);
     }
 }
        private void InitializeIndex()
        {
            //IndexWriter w = index.Storage.GetWriter(index.Analyzer);
            StorageIndexManagerInitializationProgressTracker initTracker = new StorageIndexManagerInitializationProgressTracker(watchers.Keys.Select(k => k));

            using (ILuceneWriteContext writer = index.Writer.WriteContext(buffer))
            {
                if (debugging)
                {
                    writer.InfoEvent += (sender, args) => logger.Log("indexdebug", Severity.Critical, args.Message, new { args });
                }

                Sync.Await(watchers.Values.Select(watcher => watcher
                                                  .Initialize(writer, new Progress <StorageIndexChangeLogWatcherInitializationProgress>(
                                                                  progress => tracker.SetProgress($"{initTracker.Capture(progress)}")))));
            }
            OnIndexInitialized(new IndexInitializedEventArgs());
        }