diff options
| author | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-02-28 16:29:45 +0200 |
|---|---|---|
| committer | Roy Ben-Shabat <Roy@Twine-s.com> | 2018-02-28 16:29:45 +0200 |
| commit | 9823b433c62ed173671923c32ccccadc1d06c0bd (patch) | |
| tree | 3b64f95e9362c0e25a235f63ca5bbb0232a44b57 /Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI | |
| parent | 3e725887814383f6f18b1e6e951e1322104ebd1c (diff) | |
| download | Tango-9823b433c62ed173671923c32ccccadc1d06c0bd.tar.gz Tango-9823b433c62ed173671923c32ccccadc1d06c0bd.zip | |
Lots of work !!!
Diffstat (limited to 'Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI')
| -rw-r--r-- | Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs | 104 |
1 files changed, 103 insertions, 1 deletions
diff --git a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs index 0376a1a53..21ba63461 100644 --- a/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs +++ b/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI/Program.cs @@ -27,8 +27,10 @@ namespace Tango.PMRGenerator.CLI GenerateHardwareDancers(db, pmrFolder); GenerateHardwarePidControls(db, pmrFolder); GenerateHardwareDispensers(db, pmrFolder); + GenerateHardwareWinders(db, pmrFolder); GenerateLiquidTypes(db, pmrFolder); GenerateWindingMethods(db, pmrFolder); + GenerateSpoolTypes(db, pmrFolder); } Console.WriteLine("Done"); @@ -149,19 +151,79 @@ namespace Tango.PMRGenerator.CLI private static void GenerateHardwareDispensers(ObservablesContext db, String pmrFolder) { - Console.WriteLine("Generating Dispenser..."); + Console.WriteLine("Generating Hardware Dispenser Types..."); + + ProtoEnumFile enumFile = new ProtoEnumFile(); + enumFile.Name = "HardwareDispenserType"; + enumFile.Package = "Tango.PMR.Hardware"; + + foreach (var field in db.DispenserTypes.ToList().OrderBy(x => x.Code)) + { + enumFile.Fields.Add(new EnumerationField() + { + Name = field.Name.Replace(" ", ""), + Value = field.Code, + }); + } + + Console.WriteLine("Generating Hardware Dispenser..."); ProtoMessageFile messageFile = new ProtoMessageFile(); messageFile.Name = "HardwareDispenser"; messageFile.Package = "Tango.PMR.Hardware"; + messageFile.Imports.Add("HardwareDispenserType.proto"); + + messageFile.Properties.Add(new Property("HardwareDispenserType", "HardwareDispenserType")); foreach (var prop in typeof(DispenserType).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) { + if (prop.Name != "Name" && prop.Name != "Code") + { + messageFile.Properties.Add(new Property(prop.Name, CoercePropertyType(prop.PropertyType))); + } + } + + String enumString = enumFile.GenerateCode(); + String messageString = messageFile.GenerateCode(); + + File.WriteAllText(Path.Combine(pmrFolder, "Hardware", enumFile.Name + ".proto"), enumString); + File.WriteAllText(Path.Combine(pmrFolder, "Hardware", messageFile.Name + ".proto"), messageString); + } + + private static void GenerateHardwareWinders(ObservablesContext db, String pmrFolder) + { + Console.WriteLine("Generating Hardware Winder Types..."); + + ProtoEnumFile enumFile = new ProtoEnumFile(); + enumFile.Name = "HardwareWinderType"; + enumFile.Package = "Tango.PMR.Hardware"; + + foreach (var field in db.HardwareWinderTypes.ToList().OrderBy(x => x.Code)) + { + enumFile.Fields.Add(new EnumerationField() + { + Name = field.Name.Replace(" ", ""), + Value = field.Code, + }); + } + + Console.WriteLine("Generating Hardware Winder..."); + ProtoMessageFile messageFile = new ProtoMessageFile(); + messageFile.Name = "HardwareWinder"; + messageFile.Package = "Tango.PMR.Hardware"; + messageFile.Imports.Add("HardwareWinderType.proto"); + + messageFile.Properties.Add(new Property("HardwareWinderType", "HardwareWinderType")); + + foreach (var prop in typeof(HardwareWinder).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) + { messageFile.Properties.Add(new Property(prop.Name, CoercePropertyType(prop.PropertyType))); } + String enumString = enumFile.GenerateCode(); String messageString = messageFile.GenerateCode(); + File.WriteAllText(Path.Combine(pmrFolder, "Hardware", enumFile.Name + ".proto"), enumString); File.WriteAllText(Path.Combine(pmrFolder, "Hardware", messageFile.Name + ".proto"), messageString); } @@ -209,6 +271,46 @@ namespace Tango.PMRGenerator.CLI File.WriteAllText(Path.Combine(pmrFolder, "Printing", enumFile.Name + ".proto"), enumString); } + private static void GenerateSpoolTypes(ObservablesContext db, String pmrFolder) + { + Console.WriteLine("Generating Spool Types..."); + + ProtoEnumFile enumFile = new ProtoEnumFile(); + enumFile.Name = "JobSpoolType"; + enumFile.Package = "Tango.PMR.Printing"; + + foreach (var field in db.SpoolTypes.ToList().OrderBy(x => x.Code)) + { + enumFile.Fields.Add(new EnumerationField() + { + Name = field.Name.Replace(" ", ""), + Value = field.Code, + }); + } + + Console.WriteLine("Generating Spool..."); + ProtoMessageFile messageFile = new ProtoMessageFile(); + messageFile.Name = "JobSpool"; + messageFile.Package = "Tango.PMR.Printing"; + messageFile.Imports.Add("JobSpoolType.proto"); + + messageFile.Properties.Add(new Property("JobSpoolType", "JobSpoolType")); + + foreach (var prop in typeof(SpoolType).GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.DeclaredOnly).Where(x => x.PropertyType.IsPrimitive)) + { + if (prop.Name != "Name" && prop.Name != "Code") + { + messageFile.Properties.Add(new Property(prop.Name, CoercePropertyType(prop.PropertyType))); + } + } + + String enumString = enumFile.GenerateCode(); + String messageString = messageFile.GenerateCode(); + + File.WriteAllText(Path.Combine(pmrFolder, "Printing", enumFile.Name + ".proto"), enumString); + File.WriteAllText(Path.Combine(pmrFolder, "Printing", messageFile.Name + ".proto"), messageString); + } + private static String CoercePropertyType(Type type) { if (type == typeof(bool)) |
