/// <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="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); }
/// <summary> /// Конструктор создания модели на основе строки настроек. /// </summary> /// <param name="settingsRow">Строка настроек, на основе которой построится модель представления.</param> public SettingsRowViewModel(ISettingsRow settingsRow) { _settingsRow = settingsRow; IsEmpty = false; RefreshDirectory(); _isUsed = settingsRow.IsUsed; if (settingsRow.ExcludedExtensions != null) { ExcludedExtensions = string.Join(ExcludedExtensionsSeparator.ToString(), settingsRow.ExcludedExtensions); } }
/// <summary> /// Конструктор. /// </summary> /// <param name="settingsFile">Путь к файлу с настройками.</param> public SettingsStorage(string settingsFile) { _settingsFile = settingsFile; if (IOFile.Exists(_settingsFile)) { var fileText = IOFile.ReadAllText(_settingsFile, _encoding); SettingsRows = JsonConvert.DeserializeObject <SettingsRow[]>(fileText); foreach (var row in SettingsRows) { row.NotFoundRefresh(); } } else { SettingsRows = new ISettingsRow[0]; } }