/// <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))) { }
/// <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); }
/// <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); }