コード例 #1
0
ファイル: AudiosViewModel.cs プロジェクト: fnktastic/MuseeMe
        async Task ExecuteLoadAudiosCommand()
        {
            if (IsBusy)
            {
                return;
            }

            IsBusy = true;

            try
            {
                Audios.Clear();

                var audios = await AudiosRepository.GetItemsAsync();

                foreach (var audio in audios)
                {
                    Audios.Add(audio);
                }
            }
            catch (Exception ex)
            {
                Debug.WriteLine(ex);
            }
            finally
            {
                IsBusy = false;
            }
        }
コード例 #2
0
ファイル: Speaker.cs プロジェクト: MikhailChesnokov/AsrClient
        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);
        }
コード例 #3
0
        /// <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
        }
コード例 #4
0
        private void tbSearch_TextChanged(object sender, EventArgs e)
        {
            var Pattern = tbSearch.Text;

            try
            {
                var Parts = Pattern.ToLower().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                if (Parts.Length == 0)
                {
                    DisplayItems();
                    return;
                }

                ShownItems = new Audios();

                foreach (var Item in Core.GetAudios())
                {
                    bool IsFound   = true;
                    var  AudioName = Item.ShortName.ToLower();
                    foreach (var Part in Parts)
                    {
                        if (!AudioName.Contains(Part))
                        {
                            IsFound = false;
                            break;
                        }
                    }

                    if (IsFound)
                    {
                        ShownItems.Add(Item);
                    }
                }

                pnAudios.Build(ShownItems);
                lbItemCount.Text = "Items: " + ShownItems.Count;
                Invalidate(true);
            }
            catch (Exception E)
            {
                Logger.ErrorException("Files processing exception.", E);

                ShowError(E);
            }
        }
コード例 #5
0
ファイル: MainForm.cs プロジェクト: skorpioniche/Iplayer
        private void tbSearch_TextChanged(object sender, EventArgs e)
        {
            var Pattern = tbSearch.Text;
            try
            {
                var Parts = Pattern.ToLower().Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);

                if (Parts.Length == 0)
                {
                    DisplayItems();
                    return;
                }

                ShownItems = new Audios();

                foreach (var Item in Core.GetAudios())
                {
                    bool IsFound = true;
                    var AudioName = Item.ShortName.ToLower();
                    foreach (var Part in Parts)
                    {
                        if (!AudioName.Contains(Part))
                        {
                            IsFound = false;
                            break;
                        }
                    }

                    if (IsFound)
                        ShownItems.Add(Item);
                }

                pnAudios.Build(ShownItems);
                lbItemCount.Text = "Items: " + ShownItems.Count;
                Invalidate(true);
            }
            catch (Exception E)
            {
                Logger.ErrorException("Files processing exception.", E);

                ShowError(E);
            }
        }