protected internal void AddAudio(Speech speech) { if (speech == null) { throw new ArgumentNullException(nameof(speech)); } if (Audios.Any(x => x.Id == speech.Id)) { Audios.Remove(Audios.SingleOrDefault(x => x.Id == speech.Id)); } Audios.Add(speech); }
/// <summary> /// Конструктор по умолчанию. /// </summary> public AudiosViewModel(string uniqueKey, long ownerID) : base(uniqueKey) { _audios = new AudiosCollection(ownerID); _recommendations = new RecommendedAudiosCollection((ulong)ownerID); _popular = new PopularAudiosCollection(); _albums = new AudioAlbumsCollection(ownerID); Refresh = new RelayCommand(() => Audios.Refresh()); RefreshAlbums = new RelayCommand(() => Albums.Refresh()); RefreshPopular = new RelayCommand(() => Popular.Refresh()); RefreshRecommended = new RelayCommand(() => Recommendations.Refresh()); DeleteCommand = new RelayCommand <VKAudio>(async audio => { var request = new Request.DeleteAudioRequest(audio.ID, audio.OwnerID); var response = await request.ExecuteAsync(); if (response.Error.ErrorType == VKErrors.None) { Audios.Remove(audio); } else { await ServiceHelper.DialogService.ShowMessageBox("Произошла ошибка: " + response.Error.ErrorType.ToString(), "Не удалось удалить аудиозапись."); } }); DownloadAudio = new RelayCommand <VKAudio>(async audio => { var command = new VKSaverDownloadCommand(); command.Downloads.Add(CoreHelper.GetDownload(audio)); await command.TryExecute(); }); #if DEBUG if (ViewModelBase.IsInDesignModeStatic) { for (int i = 0; i < 71; i++) { Audios.Add(DesignDataHelper.GetAudio()); Recommendations.Add(DesignDataHelper.GetAudio()); Popular.Add(DesignDataHelper.GetAudio()); } } #endif }