コード例 #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)))
 {
 }
コード例 #2
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);
        }
コード例 #3
0
 /// <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);
     }
 }
コード例 #4
0
        /// <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];
            }
        }