/// <summary> /// Выполнить команду синхронизации. /// </summary> public async Task Process() { if (CommandAction != null) { StartedSyncEvent?.Invoke(); await CommandAction.Invoke(); FinishedSyncEvent?.Invoke(); } }
/// <summary> /// Конструктор. /// </summary> /// <param name="fullPath">Полный путь к элементу, описываемому моделью.</param> /// <param name="isDirectory">True - элемент является директорией.</param> /// <param name="item">Элемент, на основе которого строится директория.</param> public SynchronizedItem(string fullPath, bool isDirectory, IItem item) { (Name, FullPath, IsDirectory, Item) = (Path.GetFileName(fullPath), fullPath, isDirectory, item); if (item != null) { UpdateItem(item); } SyncCommand = new SyncCommand(); SyncCommand.StartedSyncEvent += () => StartedSyncEvent?.Invoke(); SyncCommand.FinishedSyncEvent += () => FinishedSyncEvent?.Invoke(this); }