예제 #1
0
        private void TaskGenerator(string cmdString)
        {
            var tkExe = new ExecuterTask("Executer");

            cmdString = cmdString.Replace(@"C:\", "%$%");

            var cmds = cmdString.Split((":").ToArray(), StringSplitOptions.RemoveEmptyEntries);

            for (int i = 0; i < cmds.Length; i++)
            {
                cmds[i] = cmds[i].Replace("%$%", @"C:\");
            }

            Task.Task tk;
            Task.Task tkFather = tkExe;
            Task.Task tkFatherF = tkExe;

            var isBrother = false;

            foreach (var cmd in cmds)
            {
                var args = cmd.Split((" ").ToArray(), StringSplitOptions.RemoveEmptyEntries).ToList();
                var exe = args[0];
                isBrother = exe.StartsWith(">");
                exe = exe.TrimStart('>');
                args.RemoveAt(0);
                var name = DateTime.Now.Ticks.ToString();
                if (args.Count > 0)
                {
                    name = args[0];
                    if (args.Count > 1) { args.RemoveAt(0); }
                }
                tk = new Task.Task(name,exe, args.ToArray());
                if(isBrother)
                    tkFatherF.Add(tk);
                else
                    tkFather.Add(tk);
                tkFatherF = tkFather;
                tkFather = tk;
            }

            try
            {
                var result = tkExe.Execute();
                foreach (var item in result.Values)
                {
                    WriteOutput(": " + item.Value.ToString());

                    //if (item.Value.GetType() == typeof(List<object>))
                    //{
                    //    WriteOutput(": LISTSTART: " + item.Key);
                    //    foreach (var itemList in (List<object>)item.Value)
                    //    {
                    //        WriteOutput(": " + itemList.ToString());
                    //    }
                    //    WriteOutput(": LISTEND: " + item.Key);
                    //}
                    //else if (item.Value.GetType() == typeof(List<string>))
                    //{
                    //    WriteOutput(": LISTSTART: " + item.Key);
                    //    foreach (var itemList in (List<string>)item.Value)
                    //    {
                    //        WriteOutput(": " + itemList.ToString());
                    //    }
                    //    WriteOutput(": LISTEND: " + item.Key);
                    //}
                    //else
                    //{
                    //    WriteOutput(": " + item.Value.ToString());
                    //}
                }

            }
            catch (Exception ex)
            {
                WriteOutput("Não foi possível realizar comando: " + ex.Message);
            }
        }
예제 #2
0
 public TaskResult(ExecuterTask task)
 {
     ExecuterTask = task;
 }