aboutsummaryrefslogtreecommitdiffstats
path: root/Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI
diff options
context:
space:
mode:
authorRoy Ben-Shabat <Roy@Twine-s.com>2018-02-28 16:29:45 +0200
committerRoy Ben-Shabat <Roy@Twine-s.com>2018-02-28 16:29:45 +0200
commit9823b433c62ed173671923c32ccccadc1d06c0bd (patch)
tree3b64f95e9362c0e25a235f63ca5bbb0232a44b57 /Software/Visual_Studio/Utilities/Tango.PMRGenerator.CLI
parent3e725887814383f6f18b1e6e951e1322104ebd1c (diff)
downloadTango-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.cs104
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))