コード例 #1
0
        /// <summary>
        /// Выполнить команду синхронизации.
        /// </summary>
        public async Task Process()
        {
            if (CommandAction != null)
            {
                StartedSyncEvent?.Invoke();
                await CommandAction.Invoke();

                FinishedSyncEvent?.Invoke();
            }
        }
コード例 #2
0
        /// <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);
        }
コード例 #3
0
 private void RefreshAcceptCommand()
 {
     if (_synchronizedItem.SyncCommand.CommandAction == null)
     {
         AcceptCommand = null;
     }
     else
     {
         AcceptCommand = new Command(async call =>
         {
             StartedSyncEvent?.Invoke();
             await _synchronizedItem.SyncCommand.Process();
         });
     }
     PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(AcceptCommand)));
     AcceptCommandChangedEvent?.Invoke();
 }