Beispiel #1
0
        /// <summary>Move indices forward in preparation for insert.</summary>
        /// <param name="cache">Cache to modify.</param>
        /// <param name="index">Descendant index.</param>
        private static void ShiftForInsert(IIndexedCache <Builder> cache, int index)
        {
            var values = cache.ToList();

            foreach (var builder in values.Where(v => v.Key >= index).Select(value => value.Value))
            {
                builder.Index++;
            }
            cache.Clear();
            foreach (var value in values)
            {
                cache[value.Value.Index] = value.Value;
            }
        }
 /// <summary>
 ///     Конструктор класса.
 /// </summary>
 /// <param name="sourceValidator">Распознаватель источников по пути.</param>
 /// <param name="sourceStorage">Хранилище с источниками.</param>
 /// <param name="indexChecker">Валидатор индекса под логику анализа.</param>
 /// <param name="fileInformationExtractor">Вытаскиватель данных о файлах.</param>
 /// <param name="indexedCache">Кэш данных по индексам.</param>
 /// <param name="fileSearcher">Поисковик имен всех файлов в источников.</param>
 public SimpleIndexingService(
     ISourceValidator sourceValidator,
     ISourceStorage sourceStorage,
     IIndexChecker indexChecker,
     IFileInformationExtractor fileInformationExtractor,
     IIndexedCache indexedCache,
     IFileSearcher fileSearcher)
 {
     this.sourceValidator = sourceValidator;
     this.sourceStorage = sourceStorage;
     this.indexChecker = indexChecker;
     this.fileInformationExtractor = fileInformationExtractor;
     this.indexedCache = indexedCache;
     this.fileSearcher = fileSearcher;
 }
 /// <summary>
 ///     Конструктор класса.
 /// </summary>
 /// <param name="cache">Кэш данных по индексам.</param>
 public SafetyIndexedCache(IIndexedCache cache)
 {
     this.cache = cache;
     this.indexesSyncObjects = new ConcurrentDictionary<Index, object>();
 }
Beispiel #4
0
 /// <summary>Move indices forward in preparation for insert.</summary>
 /// <param name="cache">Cache to modify.</param>
 /// <param name="index">Descendant index.</param>
 private static void ShiftForInsert(IIndexedCache<Builder> cache, int index)
 {
     var values = cache.ToList();
     foreach (var builder in values.Where(v => v.Key >= index).Select(value => value.Value))
     {
         builder.Index++;
     }
     cache.Clear();
     foreach (var value in values)
     {
         cache[value.Value.Index] = value.Value;
     }
 }