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)
            });
        }
Exemplo n.º 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)
            });
        }
Exemplo n.º 3
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)
            });
        }
Exemplo n.º 4
0
        public IActionResult Create([FromBody] ActionItemDto dto)
        {
            DateTime tempdt;
            var      entry = new ActionItemModel
            {
                UserId      = dto.UserId,
                DueDate     = DateTime.TryParse(dto.DueDate, out tempdt) ? (DateTime?)tempdt : null,
                Modified    = DateTime.Now,
                Description = dto.Description,
                Tags        = dto.Tags ?? "",
                State       = dto.State == 0 ? ActionItemState.NotStarted : (ActionItemState)dto.State
            };

            try
            {
                _context.ActionItems.Add(entry);
                _context.SaveChanges();
                return(CreatedAtRoute("GetActionItem", new { id = entry.Id }, entry));
            }
            catch
            {
                Console.WriteLine("error");
                throw;
            }
        }
 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);
 }
Exemplo n.º 6
0
        public IBaseAction CreateActionItem(IGroupAction a, ObservableCollection <IBaseAction> p)
        {
            IBaseAction action = null;

            if (a is GroupAction)
            {
                action = new ActionItemModel((GroupAction)a)
                {
                    Parent = p
                }
            }
            ;
            else if (a is GroupActionGroup)
            {
                action = new ActionSubmenuItemModel((GroupActionGroup)a)
                {
                    Parent = p
                }
            }
            ;
            else if (a is GroupActionSeparator)
            {
                action = new ActionSeparatorItemModel((GroupActionSeparator)a)
                {
                    Parent = p
                }
            }
            ;
            return(action);
        }
        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 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)
            });
        }
Exemplo n.º 9
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)
            });
        }
Exemplo n.º 10
0
        public static IActionBuilder BuilderByActionItem(ActionItemModel action)
        {
            IActionBuilder builder = null;

            switch (action.ActionType)
            {
            case ActionType.WriteFile:
                builder = new WriteFileActionBuilder();
                break;

            case ActionType.IF:
                builder = new IFActionActionBuilder();
                break;

            case ActionType.HttpRequest:
                builder = new HttpRequestActionBuilder();
                break;

            case ActionType.StartProcess:
                builder = new StartProcessActionBuilder();
                break;

            case ActionType.Shutdown:
                builder = new ShutdownActionBuilder();
                break;

            case ActionType.OpenURL:
                builder = new OpenURLActionBuilder();
                break;

            case ActionType.Snipping:
                builder = new SnippingActionBuilder();
                break;

            case ActionType.DeleteFile:
                builder = new DeleteFileActionBuilder();
                break;

            case ActionType.SoundPlay:
                builder = new SoundPlayActionBuilder();
                break;

            case ActionType.GetIPAddress:
                builder = new GetIPAddressActionBuilder();
                break;

            case ActionType.Keyboard:
                builder = new KeyboardActionBuilder();
                break;
            }
            if (builder != null)
            {
                builder.ImportActionItem(action);
            }
            return(builder);
        }
Exemplo n.º 11
0
        /// <summary>
        /// 通过UI action type获取一个新的基础AcionItemModel
        /// </summary>
        /// <param name="uiactionType"></param>
        /// <returns></returns>
        public static ActionItemModel GetCreateActionItemModel(ActionType uiactionType)
        {
            var action = new ActionItemModel();

            action.ActionType = uiactionType;
            action.ActionName = ActionData.Names[uiactionType];
            switch (uiactionType)
            {
            case ActionType.HttpRequest:
                action.Icon = Base.IconTypes.DownloadDocument;
                break;

            case ActionType.IF:
                action.Icon = Base.IconTypes.FlowChart;
                break;

            case ActionType.WriteFile:
                action.Icon = Base.IconTypes.FileTemplate;
                break;

            case ActionType.Shutdown:
                action.Icon = Base.IconTypes.DeviceOff;
                break;

            case ActionType.StartProcess:
                action.Icon = Base.IconTypes.ProcessingRun;
                break;

            case ActionType.OpenURL:
                action.Icon = Base.IconTypes.WebEnvironment;
                break;

            case ActionType.Snipping:
                action.Icon = Base.IconTypes.DesktopScreenshot;
                break;

            case ActionType.DeleteFile:
                action.Icon = Base.IconTypes.Delete;
                break;

            case ActionType.SoundPlay:
                action.Icon = Base.IconTypes.MusicInCollectionFill;
                break;

            case ActionType.GetIPAddress:
                action.Icon = Base.IconTypes.NetworkTower;
                break;

            case ActionType.Keyboard:
                action.Icon = Base.IconTypes.KeyboardClassic;
                break;
            }

            return(action);
        }
Exemplo n.º 12
0
        public void AddItem(ActionItemModel action, IActionBuilder builder = null)
        {
            if (!appendActionItemTempList.Contains(action))
            {
                appendActionItemTempList.Add(action);
                appendBuilderTempList.Add(builder);
            }

            if (isRendering)
            {
                return;
            }
            AddItemControl(action, builder);
        }
Exemplo n.º 13
0
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as JsonDeserializeActionInputModel;

            if (data != null)
            {
                action.Parameter = new JsonDeserializeActionParamsModel()
                {
                    Content = data.Content
                };
            }
        }
Exemplo n.º 14
0
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as SetDeviceVolumeActionInputModel;

            if (data != null)
            {
                action.Parameter = new SetDeviceVolumeActionParamsModel()
                {
                    Volume = data.Volume
                };
            }
        }
Exemplo n.º 15
0
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as OpenURLActionInputModel;

            if (data != null)
            {
                action.Parameter = new OpenURLActionParamsModel()
                {
                    URL = data.URL
                };
            }
        }
Exemplo n.º 16
0
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as DelayActionInputModel;

            if (data != null)
            {
                action.Parameter = new DelayActionParamsModel()
                {
                    Seconds = int.Parse(data.Seconds)
                };
            }
        }
Exemplo n.º 17
0
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as SnippingActionInputModel;

            if (data != null)
            {
                action.Parameter = new SnippingActionParamsModel()
                {
                    SavePath = data.SavePath
                };
            }
        }
Exemplo n.º 18
0
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as GetIPAddressActionInputModel;

            if (data != null)
            {
                action.Parameter = new GetIPAddressActionParamsModel()
                {
                    Type = (IPAddressType)data.Type.ID
                };
            }
        }
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as KeyboardActionInputModel;

            if (data != null)
            {
                action.Parameter = new KeyboardActionParamsModel()
                {
                    Keys = data.Keys
                };
            }
        }
Exemplo n.º 20
0
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as ReadFileActionInputModel;

            if (data != null)
            {
                action.Parameter = new ReadFileActionParamsModel()
                {
                    FilePath = data.FilePath,
                };
            }
        }
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as RegexActionInputModel;

            if (data != null)
            {
                action.Parameter = new RegexActionParamsModel()
                {
                    Content = data.Content,
                    Regex   = data.Regex
                };
            }
        }
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as StartProcessActionInputModel;

            if (data != null)
            {
                action.Parameter = new StartProcessActionParamsModel()
                {
                    Path = data.Path,
                    Args = data.Args
                };
            }
        }
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as KillProcessActionInputModel;

            if (data != null)
            {
                action.Parameter = new KillProcessActionParamsModel()
                {
                    ProcessName = data.ProcessName,
                    IsFuzzy     = data.IsFuzzy
                };
            }
        }
Exemplo n.º 24
0
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as WriteFileActionInputModel;

            if (data != null)
            {
                action.Parameter = new WriteFileActionParameterModel()
                {
                    FilePath = data.FilePath,
                    Content  = data.Content
                };
            }
        }
Exemplo n.º 25
0
        public void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as DownloadFileActionInputModel;

            if (data != null)
            {
                action.Parameter = new DownloadFileParamsModel()
                {
                    Url      = data.Url,
                    SavePath = data.SavePath,
                    Headers  = data.Headers
                };
            }
        }
        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)
            });
        }
Exemplo n.º 27
0
        public OpenURLActionBuilder()
        {
            actionItem       = ActionData.GetCreateActionItemModel(UI.Types.ActionType.OpenURL);
            action           = new Core.Action.Models.ActionModel();
            action.Action    = Core.Action.Types.ActionType.OpenURL;
            inputData        = new OpenURLActionInputModel();
            inputModels      = new List <ActionInputModel>();
            actionResultKeys = ActionData.GetActionResults(UI.Types.ActionType.OpenURL);

            inputModels.Add(new ActionInputModel()
            {
                InputType   = Types.InputType.Text,
                Placeholder = "请输入网页链接",
                Title       = "链接",
                IsStretch   = true,
                BindingName = nameof(OpenURLActionInputModel.URL)
            });
        }
Exemplo n.º 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 void ImportActionItem(ActionItemModel actionItem)
        {
            this.actionItem = actionItem;
            //构建core action
            action.ID = actionItem.ID;
            var data = inputData as DialogActionInputModel;

            if (data != null)
            {
                action.Parameter = new DialogActionParamsModel()
                {
                    Title   = data.Title,
                    Content = data.Content,
                    Image   = data.Image,
                    Buttons = data.Buttons,
                };
            }
        }
Exemplo n.º 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)
            });
        }