Esempio n. 1
0
        public IObservable <IList <MixViewModel> > LoadAsync()
        {
            var pageData = from _ in this.profileService.GetSettingsAsync().Do(s => this.censor = s.CensorshipEnabled)
                           from latestMixes in MixesService.GetLatestMixesAsync()
                           select new Page <MixContract>(latestMixes.Mixes, 1, latestMixes.Mixes.Count);

            return(pageData.ObserveOnDispatcher().AddOrReloadPage(this.Mixes, (vm, d) => vm.Load(d, this.censor)).FinallySelect(() => (IList <MixViewModel>) this.Mixes));
        }
Esempio n. 2
0
        protected override IObservable <IList <MixContract> > GetPageOfItemsAsync(int pageNumber, int pageSize)
        {
            if (this.Tag != null)
            {
                return(MixesService.GetTagMixesAsync(this.Tag, this.Sort, pageNumber, pageSize)
                       .Select(r => (IList <MixContract>)r.Mixes));
            }

            if (this.SearchQuery != null)
            {
                return(MixesService.GetSearchMixesAsync(this.SearchQuery, this.Sort, pageNumber, pageSize)
                       .Select(r => (IList <MixContract>)r.Mixes));
            }

            return(Observable.Return <IList <MixContract> >(new List <MixContract>()));
        }
Esempio n. 3
0
        /// <summary>
        /// </summary>
        public override void Load()
        {
            if (this.IsDataLoaded)
            {
                return;
            }

            this.ShowProgress(StringResources.Progress_Loading);
            var tagViewModels = from pageNumber in Observable.Range(1, 5, Scheduler.Immediate)
                                from response in MixesService.GetTagsAsync(pageNumber)
                                where response != null && response.Tags != null
                                from tag in response.Tags.ToObservable()
                                select new TagViewModel(tag.Name);


            var list = new List <TagViewModel>();

            this.subscription = tagViewModels.ObserveOnDispatcher().Subscribe(
                list.Add, this.HandleError, () =>
            {
                var t     = new TagsByFirstLetter(list);
                this.Tags = t;

                this.LoadCompleted();

                if (list.Count == 0)
                {
                    this.Message     = StringResources.Message_NoTagsFound;
                    this.ShowMessage = true;
                }
                else
                {
                    this.Message = null;
                }
            });
        }
Esempio n. 4
0
 protected override IObservable <IList <ReviewContract> > GetPageOfItemsAsync(int pageNumber, int pageSize)
 {
     return(MixesService.GetMixReviewsAsync(this.MixId, pageNumber, pageSize)
            .Select(r => (IList <ReviewContract>)r.Reviews));
 }
 /// <summary>
 /// The load mix async.
 /// </summary>
 /// <param name="id">
 /// The id.
 /// </param>
 /// <returns>
 /// </returns>
 private IObservable <MixContract> LoadMixAsync(string id)
 {
     return(MixesService.GetMixAsync(id).ObserveOnDispatcher().Do(this.LoadMix));
 }