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) }); }
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) }); }
/// <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); }
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); }
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); }
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) }); }
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); } }
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); } }
private void GetGroupChildrenMaxID(Core.Action.Models.ActionModel action) { var parameter = ObjectConvert.Get <BaseGroupActionParamsModel>(action.Parameter); foreach (var paction in parameter.Actions) { GetMaxID(paction); } }
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) }); }
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; } }
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; } }
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; } }
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(); } }
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; } }
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; } }
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); } }
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; } }
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; } }
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; } }
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) }); }
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) }); }