public IObservable<Unit> PushPopup(IPopModalViewModel page, string contract = null, bool animate = true) { Ensure.ArgumentNotNull(page, nameof(page)); return this ._view .PushPopup(page, contract, animate) .Do( _ => { AddToStackAndTick(this._popmodalStack, page, false); _logger.Debug("Added page '{0}' (contract '{1}') to stack.", page.Title, contract); }); }
public IObservable <Unit> PushPopup(IPopModalViewModel viewModel, string contract, bool animate) { Ensure.ArgumentNotNull(viewModel, nameof(viewModel)); return(Observable .Start( () => { var page = this.LocatePageFor(viewModel, contract); this.SetPageTitle(page, viewModel.Title); return page; }, this._backgroundScheduler) .ObserveOn(this._mainScheduler) .Where(IsPopupPage) .SelectMany( page => this.Navigation .PushPopupAsync((PopupPage)page, animate) .ToObservable())); }