Beispiel #1
0
        private ActionBase ParseObjectAction(JProperty node, ActionType action_type)
        {
            switch (action_type)
            {
            case ActionType.Execute:

                string filename = mroot.substitue_enviro_vars(node.Value.ToString());

                ExecuteProcess executeAction = new ExecuteProcess();
                executeAction.FileName         = filename;
                executeAction.Params           = "";
                executeAction.OnlyIfNotRunning = true;

                return(executeAction);

            case ActionType.Wait:
                int waittime = Convert.ToInt32((node.Value.ToString()));

                WaitAction wait = new WaitAction();
                wait.Milliseconds = waittime;
                return(wait);

            case ActionType.ShowDialog:

                ShowDialog showDialog = new ShowDialog();
                showDialog.Message = mroot.substitue_enviro_vars(node.Value.ToString());
                return(showDialog);

            case ActionType.CopyFolder:

                throw new NotSupportedException("Simple CopyFolder is not allowed");

            case ActionType.CopyFile:

                throw new NotSupportedException("Simple CopyFile is not allowed");

            case ActionType.DeleteFile:
            {
                string sourceFile = mroot.substitue_enviro_vars(node.Value.ToString());

                DeleteFile delteFiles = new DeleteFile();
                delteFiles.SourceFile = sourceFile;
                return(delteFiles);
            }

            case ActionType.DeleteFiles:
            {
                string sourceFolder     = mroot.substitue_enviro_vars(node.Value.ToString());
                string delete_pattern   = "(.)";
                bool   recursive_delete = false;

                DeleteFiles delteFiles = new DeleteFiles();
                delteFiles.SourceFolder    = sourceFolder;
                delteFiles.DeletePattern   = delete_pattern;
                delteFiles.RecursiveDelete = recursive_delete;
                return(delteFiles);
            }

            case ActionType.DeleteFolder:
            {
                string dirPath = mroot.substitue_enviro_vars(node.Value.ToString());

                DeleteFolder deleteFolder = new DeleteFolder();
                deleteFolder.FolderPath = dirPath;
                return(deleteFolder);
            }

            case ActionType.DeleteFolders:
            {
                string sourceFolder   = mroot.substitue_enviro_vars(node.Value.ToString());
                string delete_pattern = "(.)";

                DeleteFolders deleteFolders = new DeleteFolders();
                deleteFolders.SourceFolder  = sourceFolder;
                deleteFolders.DeletePattern = delete_pattern;
                return(deleteFolders);
            }

            case ActionType.ZipFolder:

                throw new NotSupportedException("Simple ZipFolder is not allowed");
            }

            return(null);
        }
Beispiel #2
0
        private ActionBase ParseObjectAction(JObject node, ActionType action_type)
        {
            switch (action_type)
            {
            case ActionType.ControlFlow:
                var condition = (node["condition"].ToString());

                if (condition.Equals("dialog"))
                {
                    return(ParseDialogControlFlow(node));
                }

                return(null);

            case ActionType.Execute:

                string filename         = mroot.substitue_enviro_vars(node["filename"].ToString());
                string paramxs          = node.ContainsKey("params") ? mroot.substitue_enviro_vars(node["params"].ToString()) : "";
                bool   onlyIfnotRunning = node.ContainsKey("onlyIfNotRunning") ? node["params"].Value <bool>() : true;

                ExecuteProcess executeAction = new ExecuteProcess();
                executeAction.FileName         = filename;
                executeAction.Params           = paramxs;
                executeAction.OnlyIfNotRunning = onlyIfnotRunning;

                return(executeAction);


            case ActionType.Wait:
                int waittime = (node["duration_ms"].Value <Int32>());

                WaitAction wait = new WaitAction();
                wait.Milliseconds = waittime;
                return(wait);

            case ActionType.ShowDialog:

                ShowDialog showDialog = new ShowDialog();
                showDialog.Message = mroot.substitue_enviro_vars(node["message"].ToString());
                if (node.ContainsKey("messagetype"))
                {
                    showDialog.MessageType = (ShowDialog.Type)Enum.Parse(typeof(ShowDialog.Type), node["messagetype"].ToString(), true);
                }
                return(showDialog);

            case ActionType.CopyFolder:

                string source       = mroot.substitue_enviro_vars(node["source"].ToString());
                string destination  = mroot.substitue_enviro_vars(node["destination"].ToString());
                string file_pattern = node.ContainsKey("desc") ? node["copy_filepattern"].ToString() : null;
                string dir_pattern  = node.ContainsKey("desc") ? node["copy_dirpattern"].ToString() : null;

                CopyFolder copyFolder = new CopyFolder();
                copyFolder.Source          = source ?? copyFolder.Source;
                copyFolder.Destination     = destination ?? copyFolder.Destination;
                copyFolder.CopyFilePattern = file_pattern ?? copyFolder.CopyFilePattern;
                copyFolder.CopyDirPattern  = dir_pattern ?? copyFolder.CopyDirPattern;

                return(copyFolder);

            case ActionType.CopyFile:

                source      = mroot.substitue_enviro_vars(node["source"].ToString());
                destination = mroot.substitue_enviro_vars(node["destination"].ToString());

                CopyFile copyFile = new CopyFile();
                copyFile.Source      = source;
                copyFile.Destination = destination;
                return(copyFile);

            case ActionType.DeleteFile:
            {
                string sourceFile = mroot.substitue_enviro_vars(node["source"].ToString());

                DeleteFile delteFiles = new DeleteFile();
                delteFiles.SourceFile = sourceFile;
                return(delteFiles);
            }

            case ActionType.DeleteFiles:
            {
                string sourceFolder     = mroot.substitue_enviro_vars(node["source"].ToString());
                string delete_pattern   = node.ContainsKey("pattern") ? node["pattern"].ToString() : "(.)";
                bool   recursive_delete = node.ContainsKey("recursive") ? node["recursive"].Value <bool>() : false;

                DeleteFiles delteFiles = new DeleteFiles();
                delteFiles.SourceFolder    = sourceFolder;
                delteFiles.DeletePattern   = delete_pattern;
                delteFiles.RecursiveDelete = recursive_delete;
                return(delteFiles);
            }

            case ActionType.DeleteFolder:
            {
                string dirPath = mroot.substitue_enviro_vars(node["source"].ToString());

                DeleteFolder deleteFolder = new DeleteFolder();
                deleteFolder.FolderPath = dirPath;
                return(deleteFolder);
            }

            case ActionType.DeleteFolders:
            {
                string sourceFolder   = mroot.substitue_enviro_vars(node["source"].ToString());
                string delete_pattern = node.ContainsKey("pattern") ? node["pattern"].ToString() : "(.)";

                DeleteFolders deleteFolders = new DeleteFolders();
                deleteFolders.SourceFolder  = sourceFolder;
                deleteFolders.DeletePattern = delete_pattern;
                return(deleteFolders);
            }

            case ActionType.ZipFolder:
            {
                string sourceFolder        = mroot.substitue_enviro_vars(node["source"].ToString());
                string zipfile_destination = mroot.substitue_enviro_vars(node["zipfile"].ToString());

                ZipFolder zipFolder = new ZipFolder();
                zipFolder.SourceFolder   = sourceFolder;
                zipFolder.DestinationZip = zipfile_destination;
                return(zipFolder);
            }
            }

            return(null);
        }
Beispiel #3
0
        private ActionBase ParseAction(XmlNode node, ActionType action_type)
        {
            switch (action_type)
            {
            case ActionType.Wait:
                int waittime = Convert.ToInt32(node.Attributes["duration_ms"].Value);

                WaitAction wait = new WaitAction();
                wait.Milliseconds = waittime;
                return(wait);

            case ActionType.Execute:

                string filename = mroot.substitue_enviro_vars(node.Attributes["filename"].Value);
                string paramxs  = mroot.substitue_enviro_vars(node.Attributes["params"].Value);

                bool onlyIfnotRunning = true;
                if (node.Attributes["onlyIfNotRunning"] != null)
                {
                    onlyIfnotRunning = Boolean.Parse(node.Attributes["onlyIfNotRunning"].Value);
                }

                ExecuteProcess executeAction = new ExecuteProcess();
                executeAction.FileName         = filename;
                executeAction.Params           = paramxs;
                executeAction.OnlyIfNotRunning = onlyIfnotRunning;

                return(executeAction);


            case ActionType.CopyFolder:

                string source       = mroot.substitue_enviro_vars(node.Attributes["source"].Value);
                string destination  = mroot.substitue_enviro_vars(node.Attributes["destination"].Value);
                string file_pattern = node.Attributes["copy_filepattern"].Value;
                string dir_pattern  = node.Attributes["copy_dirpattern"].Value;

                CopyFolder copyFolder = new CopyFolder();
                copyFolder.Source          = source;
                copyFolder.Destination     = destination;
                copyFolder.CopyFilePattern = file_pattern;
                copyFolder.CopyDirPattern  = dir_pattern;

                return(copyFolder);

            case ActionType.CopyFile:

                source      = mroot.substitue_enviro_vars(node.Attributes["source"].Value);
                destination = mroot.substitue_enviro_vars(node.Attributes["destination"].Value);

                CopyFile copyFile = new CopyFile();
                copyFile.Source      = source;
                copyFile.Destination = destination;
                return(copyFile);

            case ActionType.DeleteFiles:

                string sourceFolder     = mroot.substitue_enviro_vars(node.Attributes["source"].Value);
                string delete_pattern   = node.Attributes["pattern"].Value;
                bool   recursive_delete = Convert.ToBoolean(node.Attributes["recursive"].Value);

                DeleteFiles delteFiles = new DeleteFiles();
                delteFiles.SourceFolder    = sourceFolder;
                delteFiles.DeletePattern   = delete_pattern;
                delteFiles.RecursiveDelete = recursive_delete;
                return(delteFiles);

            case ActionType.DeleteFolders:

                sourceFolder   = mroot.substitue_enviro_vars(node.Attributes["source"].Value);
                delete_pattern = node.Attributes["pattern"].Value;

                DeleteFolders deleteFolders = new DeleteFolders();
                deleteFolders.SourceFolder  = sourceFolder;
                deleteFolders.DeletePattern = delete_pattern;
                return(deleteFolders);

            case ActionType.ZipFolder:

                sourceFolder = mroot.substitue_enviro_vars(node.Attributes["source"].Value);
                string zipfile_destination = mroot.substitue_enviro_vars(node.Attributes["zipfile"].Value);

                ZipFolder zipFolder = new ZipFolder();
                zipFolder.SourceFolder   = sourceFolder;
                zipFolder.DestinationZip = zipfile_destination;
                return(zipFolder);


            case ActionType.ShowDialog:

                ShowDialog showDialog = new ShowDialog();
                showDialog.Message     = mroot.substitue_enviro_vars(node.Attributes["message"].Value);
                showDialog.MessageType = (ShowDialog.Type)Enum.Parse(typeof(ShowDialog.Type), node.Attributes["messagetype"].Value, true);

                return(showDialog);

            default:
                return(null);
            }
        }