Exemplo n.º 1
0
 /// <summary>
 /// Конструктор.
 /// </summary>
 /// <param name="settingsRow">Строка настроек, соответствующая синхронизируемым элементам.</param>
 /// <param name="synchronizedItemFactory">Фабрика создания синхронизируемых элементов.</param>
 /// <param name="synchronizedItemMatcher">Объект, выполняющий сравнение синхронизируемых элементов между собой.</param>
 public SynchronizedItems(ISettingsRow settingsRow, ISynchronizedItemFactory synchronizedItemFactory,
                          ISynchronizedItemsStatusAndCommandsUpdater statusAndCommandsUpdater) :
     this(settingsRow, synchronizedItemFactory, statusAndCommandsUpdater,
          synchronizedItemFactory.CreateSynchronizedDirectory(settingsRow.LeftDirectory.DirectoryPath,
                                                              synchronizedItemFactory.CreateDirectory(settingsRow.LeftDirectory.DirectoryPath, settingsRow.ExcludedExtensions)),
          synchronizedItemFactory.CreateSynchronizedDirectory(settingsRow.RightDirectory.DirectoryPath,
                                                              synchronizedItemFactory.CreateDirectory(settingsRow.RightDirectory.DirectoryPath, settingsRow.ExcludedExtensions)))
 {
 }
Exemplo n.º 2
0
        /// <summary>
        /// Конструктор.
        /// </summary>
        /// <param name="settingsStorage">Хранилище настроек, где указаны директории для синхронизации.</param>
        /// <param name="synchronizedItemFactory">Фабрика для создания отслеживаемых элементов.</param>
        public SynchronizedDirectoriesManager(ISettingsStorage settingsStorage, ISynchronizedItemFactory synchronizedItemFactory,
                                              ISynchronizedItemsStatusAndCommandsUpdater synchronizedItemsStatusAndCommandsUpdater)
        {
            (_settingsStorage, _synchronizedItemFactory, _synchronizedItemsStatusAndCommandsUpdater) =
                (settingsStorage, synchronizedItemFactory, synchronizedItemsStatusAndCommandsUpdater);

            _synchronizedDirectoriesList = settingsStorage.SettingsRows.Where(r => r.IsUsed).Select(
                r => new SynchronizedItems(r, _synchronizedItemFactory, _synchronizedItemsStatusAndCommandsUpdater)).ToList();
            _synchronizedDirectoriesListForLoad = new List <SynchronizedItems>(_synchronizedDirectoriesList);
        }
Exemplo n.º 3
0
        /// <summary>
        /// Конструктор.
        /// </summary>
        /// <param name="settingsRow">Строка настроек, соответствующая синхронизируемым элементам.</param>
        /// <param name="synchronizedItemFactory">Фабрика создания синхронизируемых элементов.</param>
        /// <param name="synchronizedItemMatcher">Объект, выполняющий сравнение синхронизируемых элементов между собой.</param>
        /// <param name="leftItem">Элемент синхронизации слева.</param>
        /// <param name="rightItem">Элемент синхронизации справва.</param>
        /// <param name="parentDirectories">Родительский элемент синхронизируемых директорий.</param>
        private SynchronizedItems(ISettingsRow settingsRow, ISynchronizedItemFactory synchronizedItemFactory,
                                  ISynchronizedItemsStatusAndCommandsUpdater statusAndCommandsUpdater, ISynchronizedItem leftItem, ISynchronizedItem rightItem)
        {
            (_settingsRow, _synchronizedItemFactory, _statusAndCommandsUpdater) =
                (settingsRow, synchronizedItemFactory, statusAndCommandsUpdater);
            (LeftItem, RightItem) = (leftItem, rightItem);

            SetEventsSynchronizedItem(LeftItem);
            SetEventsSynchronizedItem(RightItem);
        }