Beispiel #1
0
 public void PostDocuments(ICloudBatch batch)
 {
     Parallel.ForEach(_innerServices, searchService =>
     {
         IProvideAvailabilityManager availabilityManager = searchService as IProvideAvailabilityManager;
         int num;
         if (availabilityManager == null)
         {
             num = 0;
         }
         else
         {
             bool?canWrite = availabilityManager.AvailabilityManager?.CanWrite;
             bool flag     = false;
             num           = canWrite.GetValueOrDefault() == flag ? (canWrite.HasValue ? 1 : 0) : 0;
         }
         if (num != 0)
         {
             SearchLog.Log.Warn($"Service ${searchService.Name} is not available. Data from the commit can be lost on this search service.", null);
         }
         else
         {
             searchService.PostDocuments(batch);
         }
     });
 }
Beispiel #2
0
 private ISearchService GetAvailableSearchService()
 {
     foreach (ISearchService innerService in _innerServices)
     {
         IProvideAvailabilityManager availabilityManager = innerService as IProvideAvailabilityManager;
         int num;
         if (availabilityManager == null)
         {
             num = 0;
         }
         else
         {
             bool?canRead = availabilityManager.AvailabilityManager?.CanRead;
             bool flag    = false;
             num = canRead.GetValueOrDefault() == flag ? (canRead.HasValue ? 1 : 0) : 0;
         }
         if (num == 0)
         {
             return(innerService);
         }
         SearchLog.Log.Debug($"Search service ${innerService.Name} is not available. Tring to use another search service...", null);
     }
     return(null);
 }