コード例 #1
0
        public static List <ActionLinkDefinition> GetEntityActions()
        {
            var entitiesActions = DBService.Query("select * from t_entityactions");

            var l = new List <ActionLinkDefinition>();

            foreach (var dbO in entitiesActions)
            {
                var action = new ActionLinkDefinition()
                {
                    Id         = dbO.Get("id", 0),
                    ActionId   = "ACT_ENTITY_" + dbO.Get("id", 0).ToString(),
                    ActionType = (ActionType)dbO.Get("actiontype", 0),
                    EntityId   = dbO.Get("entityid", 0),
                    Viewtype   = (EntityLayoutType)dbO.Get("viewtype", 0),
                    Text       = dbO.Get("text", ""),
                    Action     = dbO.Get("action", ""),
                    ExecType   = ActionExecutionType.Redirect
                };

                action.QueryParam = EvalParam.FromJson(dbO.Get("queryparam", String.Empty));
                action.DataParam  = EvalParam.FromJson(dbO.Get("dataparam", String.Empty));

                if (action.EntityId.Code != 0)
                {
                    action.Visibility = FilterExpression.BuildFromJson(action.EntityId, dbO.Get("visibility", String.Empty));
                }

                if (action.ActionType == ActionType.Client)
                {
                    action.ExecType = ActionExecutionType.Client;
                }
                else if (action.ActionType == ActionType.Function || action.ActionType == ActionType.Script || action.ActionType == ActionType.Print || action.ActionType == ActionType.Import)
                {
                    action.ExecType = ActionExecutionType.Function;
                }
                else if (action.ActionType == ActionType.Save || action.ActionType == ActionType.SaveClose || action.ActionType == ActionType.SaveContinue || action.ActionType == ActionType.Update)
                {
                    action.ExecType = ActionExecutionType.Function;
                }

                l.Add(action);
            }
            return(l);
        }
コード例 #2
0
        public static ActionInfo BuildActionFromDefinition(ActionLinkDefinition definition, FormContext context)
        {
            string url = definition.Action;

            if (definition.ActionType == ActionType.Function)
            {
                url = "";
            }

            if (definition.ActionType != ActionType.Page)
            {
                url = GetUrlFromActionType(definition.ActionType);
            }

            url = string.Format("{0}{1}", context.Context.AppRoot, url);

            var q = context.RequestQuery.Clone();

            if (definition.QueryParam != null && definition.QueryParam.Count > 0)
            {
                q = new RequestQueryString();
                foreach (var p in definition.QueryParam)
                {
                    q.Add(p.Name, ValueResolver.ResolveValue(context, p.Value).ToString());
                }
            }

            var actionI = new ActionInfo(url, q, definition.ActionId);

            actionI.Title         = definition.Text;
            actionI.ActionType    = definition.ActionType;
            actionI.ExecutionType = definition.ExecType;

            if (definition.ActionType == ActionType.Function)
            {
                actionI.AddAttribute("Function", definition.Action);
                actionI.ExecutionType = ActionExecutionType.Custom;
            }

            return(actionI);
        }
コード例 #3
0
        public static ActionContext BuildWithDefinition(FormContext formContext, ActionLinkDefinition definition)
        {
            var cntxt = new ActionContext(formContext, definition.ActionType, definition.ActionId);

            return(cntxt);
        }