public void Handle(AudioTrackAddedRemoved message) { if (!this.IsGroup && this.UserOrGroupId == AppGlobalStateManager.Current.LoggedInUserId) { Execute.ExecuteOnUIThread(delegate { if (message.Added && this.AlbumId == 0) { this.AllTracks.LoadData(true, false, null, false); return; } Func <AudioHeader, bool> arg_5E_1 = (((AudioHeader h) => h.Track.aid == message.Audio.aid)); AudioHeader audioHeader = Enumerable.FirstOrDefault <AudioHeader>(this.AllTracks.Collection, arg_5E_1); if (audioHeader != null) {// if (message.IsSavedAudiosAlbum && this.AlbumId != AllAlbumsViewModel.SAVED_ALBUM_ID) { audioHeader.NotifyChanged(); return; }// this.AllTracks.Delete(audioHeader); } }); } }
internal async void DeleteAudios(List <AudioHeader> list)//todo:IsSavedAudiosAlbum { AudioService.Instance.DeleteAudios((List <long>)Enumerable.ToList <long>(Enumerable.Select <AudioHeader, long>(list, (Func <AudioHeader, long>)(a => a.Track.aid)))); await AudioCacheManager.Instance.ClearCache((IEnumerable <string>) Enumerable.Select <AudioHeader, string>(list, (Func <AudioHeader, string>)(h => h.Track.Id))); List <AudioHeader> .Enumerator enumerator = list.GetEnumerator(); try { while (enumerator.MoveNext()) { AudioHeader current1 = enumerator.Current; EventAggregator current2 = EventAggregator.Current; AudioTrackAddedRemoved trackAddedRemoved = new AudioTrackAddedRemoved(); trackAddedRemoved.Added = false; AudioObj track = current1.Track; trackAddedRemoved.Audio = track; current2.Publish(trackAddedRemoved); } } finally { enumerator.Dispose(); } }