Exemplo n.º 1
0
        protected override void CreateScreenPrep(IESpace espace, List <IKey> screenskeys)
        {
            var screens = espace.GetAllDescendantsOfType <IMobileScreen>().Where(s => screenskeys.Contains(s.ObjectKey));

            //var lib = espace.References.Single(a => a.Name == "FeatureToggle_Lib");
            //var getToggleAction = (IServerActionSignature)lib.ServerActions.Single(a => a.Name == "FeatureToggle_IsOn");
            //var keyParam = getToggleAction.InputParameters.Single(s => s.Name == "FeatureToggleKey");
            //var modParam = getToggleAction.InputParameters.Single(s => s.Name == "ModuleName");

            foreach (IMobileScreen sc in screens)
            {
                var           dataaction   = CreateDataActionScreen(espace, sc, null);
                var           ongetdata    = sc.GetAllDescendantsOfType <IUILifeCycleEvent>().Single(e => e.GetType().ToString().Contains("OnAfterFetch"));
                IScreenAction action       = (IScreenAction)ongetdata.Destination;
                var           oninitaction = sc.CreateScreenAction();
                oninitaction.Name = "OnAfterFetch";

                var start = oninitaction.CreateNode <IStartNode>();
                //var getToggle = oninitaction.CreateNode<IExecuteServerActionNode>().Below(start);
                var end  = oninitaction.CreateNode <IEndNode>();
                var name = sc.Name;

                /*getToggle.Action = getToggleAction;
                 * getToggle.SetArgumentValue(modParam, "GetEntryEspaceName()");
                 * start.Target = getToggle;
                 * getToggle.Name = $"FT_{name}_IsOn";
                 * getToggle.SetArgumentValue(keyParam, $"Entities.FeatureToggles.FT_{espace.Name}_{name}");*/

                var ifToggle = oninitaction.CreateNode <IIfNode>().Below(start);
                ifToggle.SetCondition($"GetToggles.FT_{name}");
                end.Below(ifToggle);
                ifToggle.TrueTarget = end;
                start.Target        = ifToggle;

                var excep = oninitaction.CreateNode <IRaiseExceptionNode>().ToTheRightOf(ifToggle);
                excep.SetExceptionMessage("\"Screen not available\"");
                excep.Exception       = espace.GetAllDescendantsOfType <OutSystems.Model.Logic.IException>().Single(sr => sr.ToString().Contains("Abort Activity Change Exception"));
                ifToggle.FalseTarget  = excep;
                ongetdata.Destination = oninitaction;
            }
        }
Exemplo n.º 2
0
 public void AddModuleAction(IScreenAction action)
 {
 }
Exemplo n.º 3
0
 public void AddModuleAction(IScreenAction action)
 {
 }