Пример #1
0
        private void ConstructAction(IESpace espace, IAction action)
        {
            var ftType = action.CreateInputParameter("FTType");

            ftType.DataType    = espace.Entities.Single(s => s.Name == TogglesEntity).IdentifierType;
            ftType.IsMandatory = true;
            ftType.Description = "Feature Toggle Identifier";

            var isOn = action.CreateOutputParameter("IsOn");

            isOn.DataType = espace.BooleanType;
            isOn.SetDefaultValue("False");
            isOn.Description = "Feature Toggle Value";

            var start = action.CreateNode <IStartNode>();

            var executeaction   = action.CreateNode <IExecuteServerActionNode>().Below(start);
            var lib             = espace.References.Single(a => a.Name == "FeatureToggle_Lib");
            var getToggleAction = (IServerActionSignature)lib.ServerActions.Single(a => a.Name == "FeatureToggle_IsOn");/////////////////////////////////////////////

            executeaction.Action = getToggleAction;
            var keyParam = getToggleAction.InputParameters.Single(s => s.Name == "FeatureToggleKey");

            executeaction.SetArgumentValue(keyParam, "FTType");
            var modParam = getToggleAction.InputParameters.Single(s => s.Name == "ModuleName");

            executeaction.SetArgumentValue(modParam, "GetEntryEspaceName()");
            start.Target = executeaction;

            var assign = action.CreateNode <IAssignNode>().Below(executeaction);

            assign.CreateAssignment("IsOn", "FeatureToggle_IsOn.IsOn");
            executeaction.Target = assign;

            var end = action.CreateNode <IEndNode>().Below(assign);

            assign.Target = end;
        }