private void OnFolderUpdated(FolderUpdatedMessage message) { if (message.BlobStorage == Storage && StoragePath.ComparePath(message.FolderPath, FolderPath)) { ServiceLocator.GetInstance <IUIDispatcher>().Invoke(() => Process(message)); } }
public override async Task ExecuteAsync() { IsIndeterminate = true; Message = "renaming..."; Abstract = $"{_blob.Name}"; await _blobStorage.RenameAsync(_blob.FullPath, _newPath); var message = new FolderUpdatedMessage(_blobStorage, _blob.FolderPath); message.ReplacedBlobs[_blob] = new Blob(_newPath, _blob.Kind); Messenger.Default.Send(message); }
private void Process(FolderUpdatedMessage message) { if (message.ReplacedBlobs.Count > 0) { foreach (KeyValuePair <Blob, Blob> otn in message.ReplacedBlobs) { int idx = FilteredBlobs.IndexOf(otn.Key); if (idx != -1) { FilteredBlobs.RemoveAt(idx); FilteredBlobs.Insert(idx, otn.Value); } } } else { RefreshBlobsAsync().Forget(); } }