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;
        }
Example #2
0
        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;
        }