public async Task <Boolean> MoveItem(IAudioListItemViewModel from, IAudioListItemViewModel to) { Int32 fromIdx = this.items.IndexOf(from); Int32 toIdx = this.items.IndexOf(to); Debug.Assert(fromIdx >= 0 && toIdx >= 0); Int32 oldFromIdx = MoveListItem(fromIdx, toIdx); Boolean canReorder = true; var reorderProvider = this.audioService.AudioProvider as IAudioReorderProvider; if (reorderProvider != null) { canReorder = await VKApi.Audio.ReorderAsync(from.Item.Audio.Id, reorderProvider.OwnerId, to.Item.Audio.Id); } if (!canReorder) { Int32 newFromIdx = this.items.IndexOf(from); MoveListItem(newFromIdx, oldFromIdx); } return(canReorder); }
private async Task AddItem(IAudioListItemViewModel item) { await this.uiDispatcher.BeginInvoke(new Action(() => this.items.Add(item)), DispatcherPriority.Input); }
public async Task<Boolean> MoveItem(IAudioListItemViewModel from, IAudioListItemViewModel to) { Int32 fromIdx = this.items.IndexOf(from); Int32 toIdx = this.items.IndexOf(to); Debug.Assert(fromIdx >= 0 && toIdx >= 0); Int32 oldFromIdx = MoveListItem(fromIdx, toIdx); Boolean canReorder = true; var reorderProvider = this.audioService.AudioProvider as IAudioReorderProvider; if (reorderProvider != null) { canReorder = await VKApi.Audio.ReorderAsync(from.Item.Audio.Id, reorderProvider.OwnerId, to.Item.Audio.Id); } if (!canReorder) { Int32 newFromIdx = this.items.IndexOf(from); MoveListItem(newFromIdx, oldFromIdx); } return canReorder; }