Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Soulseek;
- using System;
- using System.Collections.Generic;
- using System.Collections.ObjectModel;
- using System.ComponentModel;
- using System.Threading.Tasks;
- using System.Windows.Input;
- using Xamarin.Forms;
- namespace XSeek.ViewModels
- {
- public class SearchViewModel : INotifyPropertyChanged
- {
- public event PropertyChangedEventHandler PropertyChanged;
- public ICommand SearchCommand { get; }
- private string st;
- public string SearchText
- {
- get
- {
- return st;
- }
- set
- {
- if (st != value)
- {
- st = value;
- OnPropertyChanged("SearchText");
- }
- }
- }
- public Soulseek.Search SearchResponses {get; set;}
- public ObservableCollection<SearchResponse> ResponseResponses { get; set; }
- public SearchViewModel()
- {
- var searchProgress = new Progress<Soulseek.Search>(s => UpdateSearchResults(s));
- var responseProgress = new Progress<IReadOnlyCollection<SearchResponse>>(r => UpdateResponseResults(r));
- SearchCommand = new Command(async () => await SearchSoulseekAsync(SearchText, App.AppClient, searchProgress, responseProgress));
- }
- private void UpdateSearchResults(Soulseek.Search s)
- {
- SearchResponses = s;
- }
- private void UpdateResponseResults(IReadOnlyCollection<SearchResponse> r)
- {
- ResponseResponses = (ObservableCollection<SearchResponse>)r;
- }
- private async Task SearchSoulseekAsync(string SearchText, SoulseekClient AppClient, IProgress<Soulseek.Search> searchProgress, IProgress<IReadOnlyCollection<SearchResponse>> responseProgress)
- {
- (Soulseek.Search SearchRes, IReadOnlyCollection<SearchResponse> ResponseRes) responses = await AppClient.SearchAsync(SearchQuery.FromText(SearchText));
- //return (ObservableCollection<SearchResponse>)responses.ResponseRes;
- searchProgress.Report(responses.SearchRes);
- responseProgress.Report(responses.ResponseRes);
- }
- //var responses = await client.SearchAsync(SearchQuery.FromText("Mariya Takeuchi"));
- protected void OnPropertyChanged(string propName)
- {
- if (PropertyChanged != null)
- PropertyChanged(this, new PropertyChangedEventArgs(propName));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment