public static void Parse(string[] data) { if (data.Length == 1) { //Application.Run(new MainWindow()); //Application.Run(new Form_ViewVect("d:\\CODING\\PlotterControl\\PlotterControl\\bin\\Debug\\Data\\Vect\\rd.pcv", true)); Application.Run(FormTranslator.Translate(new MainWindow())); return; } { var data1 = string.Join(" ", data); var data2 = data1.Split(' ').ToList().Skip(2); CommandParseResult a = null; try { a = CommandManagment.Parse(string.Join(" ", data2)); } catch (Exception e) { MessageBox.Show("\"" + string.Join(" ", data2) + "\" - " + TB.L.Error["Core.WrongInputCommand"] + e.Message); } MakeAction(a); } }
private static void MakeAction(CommandParseResult res) { if (res == null) { Application.Run(FormTranslator.Translate(new MainWindow())); return; } else if (res.Name == "print_vector") { try { if (!File.Exists(res.Filename)) { MessageBox.Show(string.Format(TB.L.Error["Core.CantFindFile"], res.Filename)); Application.Run(new MainWindow()); return; } else { string port = res.Flags["port"]; int bdrate = int.Parse(res.Flags["bdrate"]); SizeF a = new SizeF(); a.Width = float.Parse(res.Flags["size"].Split('x')[0], CultureInfo.InvariantCulture); a.Height = float.Parse(res.Flags["size"].Split('x')[1], CultureInfo.InvariantCulture); bool auto = bool.Parse(res.Flags["auto"]); Application.Run(FormTranslator.Translate(new Form_PrintMaster(res.Filename, true, port, bdrate, a, auto))); } } catch (Exception e) { MessageBox.Show(TB.L.Error["Core.OpenError.Print"] + e.Message); Application.Run(new MainWindow()); return; } } else if (res.Name == "open_vector") { try { if (!File.Exists(res.Filename)) { MessageBox.Show(string.Format(TB.L.Error["Core.CantFindFile"], res.Filename)); Application.Run(new MainWindow()); return; } Application.Run(FormTranslator.Translate(new Form_ViewVect(res.Filename, false))); } catch (Exception e) { MessageBox.Show(TB.L.Error["Core.OpenError.ViewVect"] + e.Message); Application.Run(new MainWindow()); return; } } else if (res.Name == "render_vector") { try { if (!File.Exists(res.Filename)) { MessageBox.Show(string.Format(TB.L.Error["Core.CantFindFile"], res.Filename)); Application.Run(new MainWindow()); return; } new Vector(res.Filename).ToBitmap(Color.FromName(res.Flags["backcolor"]), Color.FromName(res.Flags["drawcolor"])).Save(new FileInfo(Application.ExecutablePath).Directory.FullName + "\\Temp\\_contex_render_.png"); System.Diagnostics.Process.Start(new FileInfo(Application.ExecutablePath).Directory.FullName + "\\Temp\\_contex_render_.png"); System.Threading.Thread.Sleep(2000); } catch (Exception e) { MessageBox.Show(TB.L.Error["Core.OpenError.Render"] + e.Message); Application.Run(new MainWindow()); return; } } else if (res.Name == "edit_vector") { } if (res.Name == "open_doc") { try { if (!File.Exists(res.Filename)) { MessageBox.Show(string.Format(TB.L.Error["Core.CantFindFile"], res.Filename)); Application.Run(new MainWindow()); return; } Application.Run(FormTranslator.Translate(new Form_EditVector(res.Filename))); } catch (Exception e) { MessageBox.Show(TB.L.Error["Core.OpenError.VectEditor"] + e.Message); Application.Run(new MainWindow()); return; } } }
public static CommandParseResult Parse(string Str) { string FileName = ""; string[] flags; string flagsdata = ""; if (Str.Contains('~')) { var k = Str.Split('~').ToList().FindAll(p => p != "").Select(p => p.Trim()).ToArray(); if (k.Length != 2) { MessageBox.Show(TB.L.Error["Core.MoreThan1FilenameTags"]); return(null); } FileName = k.Last(); flagsdata = k.First(); } else { flagsdata = Str; FileName = ""; } flags = flagsdata.Split('-').ToList().FindAll(p => p.Trim() != "").ToArray(); List <string> fl = new List <string>(); foreach (var j in flags) { fl.AddRange(j.Split(')')); } flags = fl.FindAll(p => p.Trim() != "").Select(p => p.Trim()).ToArray(); string MainCommand = flags.First(); var h = new Dictionary <string, string>(); for (int i = 1; i <= flags.Length - 1; i++) { string name = flags[i].Split('(')[0]; string value = flags[i].Split('(')[1]; h.Add(name, value); } Command cmd = Commands.Find(p => p.Name == MainCommand); if (cmd == null) { MessageBox.Show(TB.L.Error["Core.UnknownCommand"]); return(null); } for (int i = 0; i <= h.Count - 1; i++) { if (!cmd.Flags.Select(p => p.Name).Contains(h.Keys.ElementAt(i))) { if (cmd.Flags.Count == 0) { MessageBox.Show(TB.L.Error["Core.WrongAnyFlags"]); } MessageBox.Show(TB.L.Error["Core.WrongFlag"] + string.Join(",", cmd.Flags.Select(p => p.Name))); } } for (int i = 0; i <= cmd.Flags.Count - 1; i++) { if (!h.ContainsKey(cmd.Flags[i].Name)) { h.Add(cmd.Flags[i].Name, (string)cmd.Flags[i].DefValue); } else { }; } var m = new CommandParseResult(h, cmd); m.Filename = FileName; return(m); }