public override bool Execute() { mPresenter = mContainer.Resolve<IPresenter>(); string cPageException = "Cannot create page"; var menuVmDef = new ViewModelDefinition(); menuVmDef.AddQuality<MenuQuality>(); menuVmDef.AddQuality<MyQuality>(); var mainChildVmDef = new ViewModelDefinition(); mainChildVmDef.AddQuality<MainChildQuality>(); try { mViewModelManager.RegisterPageForViewModel<FirstViewModel, FirstPage>(mainChildVmDef); } catch (Exception e) when (e.Message.StartsWith(cPageException)) { } try { mViewModelManager.RegisterPageForViewModel<SecondViewModel, SecondPage>(menuVmDef); } catch (Exception e) when (e.Message.StartsWith(cPageException)) { } // show var first = mPresenter.Show<FirstViewModel>().Result; if (first == null || !first.NavTo) { return false; } var second = mPresenter.Show( def => def.HasQuality<MyQuality>()) .Result as SecondViewModel; if (second == null || !second.NavTo) { return false; } // close second = mPresenter.Close( x => x.HasQuality<MyQuality>()) .Result as SecondViewModel; if (second == null || !second.NavFrom) { return false; } first = mPresenter.Close<FirstViewModel>().Result; if (first == null || !first.NavFrom) { return false; } // TODO : find way to test alerts //return PathwayCore.DisplayAlertAsync("Alert", "Are you sure?", "Ok").Result; return true; }
public override bool Execute() { base.Execute(); mViewModelmanager.RegisterPageForViewModel<FirstViewModel, FirstPage>(); var definition = new ViewModelDefinition(); definition.AddQuality<MyQuality>(); mViewModelmanager.RegisterPageForViewModel<SecondViewModel, SecondPage>(definition); var firstPage = mViewModelmanager.ResolvePageForViewModel(mContainer.Resolve<FirstViewModel>()); if(firstPage == null || !(firstPage is FirstPage)) { return false; } var secondPage = mViewModelmanager.ResolvePageForViewModel(x => x.HasQuality<MyQuality>()); if(secondPage == null || !(secondPage is SecondPage)) { return false; } return true; }