public KillProcessActionBuilder()
        {
            actionItem        = ActionData.GetCreateActionItemModel(UI.Types.ActionType.KillProcess);
            action            = new Core.Action.Models.ActionModel();
            action.Action     = Core.Action.Types.ActionType.KillProcess;
            inputData         = new KillProcessActionInputModel();
            inputModels       = new List <ActionInputModel>();
            detailInputModels = new List <ActionInputModel>();

            actionResultKeys = ActionData.GetActionResults(UI.Types.ActionType.KillProcess);

            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "区分大小写,不需要填写.exe",
                Title       = "进程名称",
                IsStretch   = true,
                BindingName = nameof(KillProcessActionInputModel.ProcessName)
            });

            detailInputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Bool,
                Title       = "模糊匹配",
                BindingName = nameof(KillProcessActionInputModel.IsFuzzy)
            });
        }
Example #2
0
        public SystemNotificationActionBuilder()
        {
            actionItem    = ActionData.GetCreateActionItemModel(UI.Types.ActionType.SystemNotification);
            action        = new Core.Action.Models.ActionModel();
            action.Action = Core.Action.Types.ActionType.SystemNotification;
            inputData     = new SystemNotificationActionInputModel()
            {
                ToastScenarioType = SystemNotificationActionData.ToastScenarioTypes[0],
                ToastActionType   = SystemNotificationActionData.ToastActionTypes[0]
            };
            inputModels       = new List <ActionInputModel>();
            detailInputModels = new List <ActionInputModel>();

            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "请输入",
                Title       = "标题",
                //IsStretch = true,
                BindingName = nameof(SystemNotificationActionInputModel.Title)
            });
            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.MultiLineText,
                Placeholder = "请输入",
                Title       = "内容",
                //IsStretch = true,
                BindingName = nameof(SystemNotificationActionInputModel.Content)
            });

            detailInputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Select,
                Title       = "通知类型",
                SelectItems = SystemNotificationActionData.ToastScenarioTypes,
                BindingName = nameof(SystemNotificationActionInputModel.ToastScenarioType)
            });
            detailInputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Title       = "图标",
                Placeholder = "支持网络图片和本地图片",
                BindingName = nameof(SystemNotificationActionInputModel.Icon)
            });
            detailInputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Select,
                Title       = "点击通知操作",
                SelectItems = SystemNotificationActionData.ToastActionTypes,
                BindingName = nameof(SystemNotificationActionInputModel.ToastActionType)
            });
            detailInputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "请输入链接,仅在通知操作为打开链接时有效",
                Title       = "打开链接",
                //IsStretch = true,
                BindingName = nameof(SystemNotificationActionInputModel.Url)
            });
        }
Example #3
0
        /// <summary>
        /// 生成if action
        /// </summary>
        /// <param name="action"></param>
        /// <returns></returns>
        private Core.Action.Models.ActionModel GenerateIFAction(ActionItem action)
        {
            //action input
            var inputdata = action.Builder.GetInputModelData() as IFActionInputModel;

            //else item
            var elseActionItem = ActionItems.Where(m => m.Action.ParentID == action.Action.ID && m.Action.ActionType == UI.Types.ActionType.IFElse).FirstOrDefault();
            //end item
            var endActionItem = ActionItems.Where(m => m.Action.ParentID == action.Action.ID && m.Action.ActionType == UI.Types.ActionType.IFEnd).FirstOrDefault();
            //pass actions
            var passActionItems = ActionItems.Where(m => m.Action.ParentID == action.Action.ID && m.Y > action.Y && m.Y < elseActionItem.Y).ToList();
            var passActions     = GenerateActions(passActionItems);

            //unpass actions
            var unpassActionItems = ActionItems.Where(m => m.Action.ParentID == action.Action.ID && m.Y > elseActionItem.Y && m.Y < endActionItem.Y).ToList();
            var unpassActions     = GenerateActions(unpassActionItems);

            var result = new Core.Action.Models.ActionModel()
            {
                ID        = action.Action.ID,
                Action    = Core.Action.Types.ActionType.IF,
                Parameter = new Core.Action.Models.IFActionParameterModel()
                {
                    LeftInput     = inputdata.Left,
                    RightInput    = inputdata.Right,
                    Condition     = inputdata.Condition == null ? Core.Action.Types.IFActionConditionType.Equal : (Core.Action.Types.IFActionConditionType)inputdata.Condition.ID,
                    PassActions   = passActions,
                    NoPassActions = unpassActions
                },
                Num = 1
            };

            return(result);
        }
Example #4
0
        private void ImportGroupAction(Core.Action.Models.ActionModel action, int parentID = 0)
        {
            //创建头
            var builder     = ActionBuilder.BuilderByAction(action);
            var actionModel = builder.GetActionItemModel();
            var a           = action.Parameter as BaseGroupActionParamsModel;
            var parameter   = ObjectConvert.Get <BaseGroupActionParamsModel>(action.Parameter);

            actionModel.ParentID = parentID;

            AddItem(actionModel, builder);
            //创建action子级
            if (parameter.Actions.Count > 0)
            {
                foreach (var item in parameter.Actions)
                {
                    ImportAction(item, actionModel.ID);
                }
            }
            //创建end action
            var endActionModel = ActionData.GetCreateActionItemModel(UI.Types.ActionType.LoopsEnd);

            endActionModel.ID       = GetCreateActionID();
            endActionModel.ParentID = actionModel.ID;
            AddItem(endActionModel);
        }
Example #5
0
        private Core.Action.Models.ActionModel GenerateLoopsAction(ActionItem action)
        {
            //action input
            var inputdata = action.Builder.GetInputModelData() as LoopsActionInputModel;

            var endActionItem = ActionItems.Where(m => m.Action.ParentID == action.Action.ID && m.Action.ActionType == UI.Types.ActionType.LoopsEnd).FirstOrDefault();
            //actions
            var actionItems = ActionItems.Where(m => m.Action.ParentID == action.Action.ID && m.Y > action.Y && m.Y < endActionItem.Y).ToList();
            var actions     = GenerateActions(actionItems);

            var result = new Core.Action.Models.ActionModel()
            {
                ID        = action.Action.ID,
                Action    = Core.Action.Types.ActionType.Loops,
                Parameter = new Core.Action.Models.LoopsActionParamsModel()
                {
                    Count   = inputdata.Count,
                    Actions = actions,
                },
                Num = 1
            };

            GeneratedItems.AddRange(actionItems);

            return(result);
        }
Example #6
0
        public DownloadFileActionBuilder()
        {
            actionItem        = ActionData.GetCreateActionItemModel(UI.Types.ActionType.DownloadFile);
            action            = new Core.Action.Models.ActionModel();
            action.Action     = Core.Action.Types.ActionType.DownloadFile;
            inputData         = new DownloadFileActionInputModel();
            inputModels       = new List <ActionInputModel>();
            detailInputModels = new List <ActionInputModel>();
            actionResultKeys  = ActionData.GetActionResults(UI.Types.ActionType.DownloadFile);

            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "请输入网络文件链接",
                Title       = "网络文件链接",
                BindingName = nameof(DownloadFileActionInputModel.Url)
            });
            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "请输入保存路径,包括文件名",
                Title       = "保存路径",
                BindingName = nameof(DownloadFileActionInputModel.SavePath)
            });

            detailInputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.CustomKeyValue,
                Title       = "请求头",
                BindingName = nameof(DownloadFileActionInputModel.Headers)
            });
        }
 public ShutdownActionBuilder()
 {
     actionItem       = ActionData.GetCreateActionItemModel(UI.Types.ActionType.Shutdown);
     action           = new Core.Action.Models.ActionModel();
     action.Action    = Core.Action.Types.ActionType.Shutdown;
     actionResultKeys = ActionData.GetActionResults(UI.Types.ActionType.Shutdown);
 }
        public IFActionActionBuilder()
        {
            actionItem    = ActionData.GetCreateActionItemModel(UI.Types.ActionType.IF);
            action        = new Core.Action.Models.ActionModel();
            action.Action = Core.Action.Types.ActionType.IF;
            inputData     = new IFActionInputModel()
            {
                Condition = IFActionConditionData.ComBoxData[0]
            };
            inputModels      = new List <ActionInputModel>();
            actionResultKeys = ActionData.GetActionResults(UI.Types.ActionType.IF);

            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Title       = "如果",
                Placeholder = "请输入",
                BindingName = nameof(IFActionInputModel.Left)
            });
            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Select,
                SelectItems = IFActionConditionData.ComBoxData,
                BindingName = nameof(IFActionInputModel.Condition)
            });
            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "请输入",
                BindingName = nameof(IFActionInputModel.Right)
            });
        }
        public RegexActionBuilder()
        {
            actionItem        = ActionData.GetCreateActionItemModel(UI.Types.ActionType.Regex);
            action            = new Core.Action.Models.ActionModel();
            action.Action     = Core.Action.Types.ActionType.Regex;
            inputData         = new RegexActionInputModel();
            inputModels       = new List <ActionInputModel>();
            detailInputModels = new List <ActionInputModel>();

            actionResultKeys = ActionData.GetActionResults(UI.Types.ActionType.Regex);

            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "请输入",
                Title       = "内容",
                BindingName = nameof(RegexActionInputModel.Content)
            });
            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "请输入",
                Title       = "正则表达式",
                BindingName = nameof(RegexActionInputModel.Regex)
            });
        }
Example #10
0
 private void GetMaxID(Core.Action.Models.ActionModel action)
 {
     seedID = action.ID > seedID ? action.ID : seedID;
     if (action.Action == Core.Action.Types.ActionType.IF)
     {
         GetIFChildrenMaxID(action);
     }
 }
Example #11
0
        private void GetIFChildrenMaxID(Core.Action.Models.ActionModel action)
        {
            var parameter = ObjectConvert.Get <IFActionParameterModel>(action.Parameter);

            foreach (var paction in parameter.PassActions.Concat(parameter.NoPassActions))
            {
                GetMaxID(paction);
            }
        }
Example #12
0
        private void GetGroupChildrenMaxID(Core.Action.Models.ActionModel action)
        {
            var parameter = ObjectConvert.Get <BaseGroupActionParamsModel>(action.Parameter);

            foreach (var paction in parameter.Actions)
            {
                GetMaxID(paction);
            }
        }
Example #13
0
        public HttpRequestActionBuilder()
        {
            actionItem    = ActionData.GetCreateActionItemModel(UI.Types.ActionType.HttpRequest);
            action        = new Core.Action.Models.ActionModel();
            action.Action = Core.Action.Types.ActionType.HttpRequest;
            inputData     = new HttpRequestActionInputModel()
            {
                PamramsType = HttpRequestActionData.PamramsTypes[0],
                Method      = HttpRequestActionData.MethodTypes[0]
            };
            inputModels       = new List <ActionInputModel>();
            detailInputModels = new List <ActionInputModel>();
            actionResultKeys  = ActionData.GetActionResults(UI.Types.ActionType.HttpRequest);

            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Title       = "请求地址",
                Placeholder = "请输入完整地址",
                IsStretch   = true,
                BindingName = nameof(HttpRequestActionInputModel.Url)
            });

            detailInputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Select,
                Title       = "方法",
                SelectItems = HttpRequestActionData.MethodTypes,
                BindingName = nameof(HttpRequestActionInputModel.Method)
            });
            detailInputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Select,
                Title       = "参数类型",
                SelectItems = HttpRequestActionData.PamramsTypes,
                BindingName = nameof(HttpRequestActionInputModel.PamramsType)
            });

            detailInputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.CustomKeyValue,
                Title       = "请求参数",
                BindingName = nameof(HttpRequestActionInputModel.QueryParams)
            });
            detailInputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.CustomKeyValue,
                Title       = "请求头",
                BindingName = nameof(HttpRequestActionInputModel.Headers)
            });
            detailInputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.CustomKeyValue,
                Title       = "文件(仅Form参数类型时有效)",
                BindingName = nameof(HttpRequestActionInputModel.Files)
            });
        }
Example #14
0
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <ReadFileActionParamsModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as ReadFileActionInputModel;
                data.FilePath = parameter.FilePath;
            }
        }
Example #15
0
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <JsonDeserializeActionParamsModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as JsonDeserializeActionInputModel;
                data.Content = parameter.Content;
            }
        }
Example #16
0
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <OpenURLActionParamsModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as OpenURLActionInputModel;
                data.URL = parameter.URL;
            }
        }
Example #17
0
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <DelayActionParamsModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as DelayActionInputModel;
                data.Seconds = parameter.Seconds.ToString();
            }
        }
Example #18
0
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <SetDeviceVolumeActionParamsModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as SetDeviceVolumeActionInputModel;
                data.Volume = parameter.Volume;
            }
        }
Example #19
0
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <GetIPAddressActionParamsModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as GetIPAddressActionInputModel;
                data.Type = GetIPAddressActionData.GetIPAddressType((int)parameter.Type);
            }
        }
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <KillProcessActionParamsModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as KillProcessActionInputModel;
                data.ProcessName = parameter.ProcessName;
                data.IsFuzzy     = parameter.IsFuzzy;
            }
        }
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <StartProcessActionParamsModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as StartProcessActionInputModel;
                data.Path = parameter.Path;
                data.Args = parameter.Args;
            }
        }
Example #22
0
        private void ImportIFAction(Core.Action.Models.ActionModel action)
        {
            if (action.Action != Core.Action.Types.ActionType.IF)
            {
                return;
            }
            //创建if action
            var builder       = ActionBuilder.BuilderByAction(action);
            var ifActionModel = builder.GetActionItemModel();
            var ifParameter   = ObjectConvert.Get <IFActionParameterModel>(action.Parameter);

            //var ifParameter = ObjectConvert.Get<IFActionParameterModel>(action.Parameter);

            //var ifActionModel = ActionData.GetCreateActionItemModel(UI.Types.ActionType.IF);
            //ifActionModel.ID = action.ID;
            //var ifActionInputData = new IFActionInputModel();
            //ifActionInputData.Left = ifParameter.LeftInput;
            //ifActionInputData.Right = ifParameter.RightInput;
            //ifActionInputData.Condition = IFActionConditionData.GetCombox((int)ifParameter.Condition);
            AddItem(ifActionModel, builder);
            //创建pass子级
            if (ifParameter.PassActions.Count > 0)
            {
                foreach (var passaction in ifParameter.PassActions)
                {
                    ImportAction(passaction, ifActionModel.ID);
                }
            }
            //创建else action
            var elseActionModel = ActionData.GetCreateActionItemModel(UI.Types.ActionType.IFElse);

            elseActionModel.ID       = GetCreateActionID();
            elseActionModel.ParentID = ifActionModel.ID;
            AddItem(elseActionModel);
            //创建unpass子级
            if (ifParameter.NoPassActions.Count > 0)
            {
                foreach (var passaction in ifParameter.NoPassActions)
                {
                    ImportAction(passaction, ifActionModel.ID);
                }
            }
            //创建end action
            var endActionModel = ActionData.GetCreateActionItemModel(UI.Types.ActionType.IFEnd);

            endActionModel.ID       = GetCreateActionID();
            endActionModel.ParentID = ifActionModel.ID;
            AddItem(endActionModel);
        }
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <IFActionParameterModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as IFActionInputModel;
                data.Left      = parameter.LeftInput;
                data.Right     = parameter.RightInput;
                data.Condition = IFActionConditionData.GetCombox((int)parameter.Condition);
            }
        }
Example #24
0
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <DownloadFileParamsModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as DownloadFileActionInputModel;
                data.Url      = parameter.Url;
                data.SavePath = parameter.SavePath;
                data.Headers  = parameter.Headers;
            }
        }
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <DialogActionParamsModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as DialogActionInputModel;
                data.Title   = parameter.Title;
                data.Content = parameter.Content;
                data.Image   = parameter.Image;
                data.Buttons = parameter.Buttons;
            }
        }
Example #26
0
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <SystemNotificationActionParamsModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as SystemNotificationActionInputModel;
                data.Title             = parameter.Title;
                data.Content           = parameter.Content;
                data.Icon              = parameter.Icon;
                data.ToastScenarioType = SystemNotificationActionData.GetToastScenarioType((int)parameter.ToastScenarioType);
                data.ToastActionType   = SystemNotificationActionData.GetToastActionType((int)parameter.ToastActionType);
                data.Url = parameter.Url;
            }
        }
Example #27
0
        public void ImportAction(Core.Action.Models.ActionModel action)
        {
            this.action = action;
            //构建ui action
            actionItem.ID = action.ID;
            var parameter = ObjectConvert.Get <HttpRequestActionParameterModel>(action.Parameter);

            if (parameter != null)
            {
                var data = inputData as HttpRequestActionInputModel;
                data.Url         = parameter.Url;
                data.Files       = parameter.Files;
                data.Headers     = parameter.Headers;
                data.Method      = HttpRequestActionData.GetMethodType((int)parameter.Method);
                data.PamramsType = HttpRequestActionData.GetPamramsType((int)parameter.ParamsType);
                data.QueryParams = parameter.QueryParams;
            }
        }
Example #28
0
        public ReadFileActionBuilder()
        {
            actionItem       = ActionData.GetCreateActionItemModel(UI.Types.ActionType.ReadFile);
            action           = new Core.Action.Models.ActionModel();
            action.Action    = Core.Action.Types.ActionType.ReadFile;
            inputData        = new ReadFileActionInputModel();
            inputModels      = new List <ActionInputModel>();
            actionResultKeys = ActionData.GetActionResults(UI.Types.ActionType.ReadFile);

            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "请输入本地文件路径",
                Title       = "文件路径",
                IsStretch   = true,
                BindingName = nameof(ReadFileActionInputModel.FilePath)
            });
        }
        public SoundPlayActionBuilder()
        {
            actionItem       = ActionData.GetCreateActionItemModel(UI.Types.ActionType.SoundPlay);
            action           = new Core.Action.Models.ActionModel();
            action.Action    = Core.Action.Types.ActionType.SoundPlay;
            inputData        = new SoundPlayActionInputModel();
            inputModels      = new List <ActionInputModel>();
            actionResultKeys = ActionData.GetActionResults(UI.Types.ActionType.SoundPlay);

            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "请输入音频文件路径,支持mp3、wav",
                Title       = "音频文件路径",
                IsStretch   = true,
                BindingName = nameof(SoundPlayActionInputModel.Path)
            });
        }
Example #30
0
        public SnippingActionBuilder()
        {
            actionItem       = ActionData.GetCreateActionItemModel(UI.Types.ActionType.Snipping);
            action           = new Core.Action.Models.ActionModel();
            action.Action    = Core.Action.Types.ActionType.Snipping;
            inputData        = new SnippingActionInputModel();
            inputModels      = new List <ActionInputModel>();
            actionResultKeys = ActionData.GetActionResults(UI.Types.ActionType.Snipping);

            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "请输入保存路径",
                Title       = "截图保存路径",
                IsStretch   = true,
                BindingName = nameof(SnippingActionInputModel.SavePath)
            });
        }