private async Task ParseAndControlLight(string lightid, ControlItem citem) { var cmd = new LightCommand(); if (citem.Powered.HasValue) { cmd.On = citem.Powered.Value; } if (citem.Color.HasValue) { cmd.TurnOn().SetColor(citem.Color.Value); } if (citem.Alert.HasValue) { cmd.Alert = citem.Alert.Value; } if (citem.Effect.HasValue) { cmd.Effect = citem.Effect.Value; } await client.SendCommandAsync(cmd, new List <string> { lightid }); }
internal static ControlItem ParseAsync(string[] args) { if (args.Length < 1) { Console.WriteLine("Not valid args"); Console.WriteLine("use \"--help\" option to check usage."); Environment.Exit(7); return(null); } var cmd = new ControlItem(); switch (args[0]) { case "on": cmd.Powered = true; break; case "off": cmd.Powered = false; break; case "color": ColorParser(ref cmd, args.Skip(1).ToArray()); break; } return(cmd); }
internal async Task ControlLight(string id, ControlItem items) { if (!await CheckLightAsync(id)) { return; } await ParseAndControlLight(id, items); }
private static void ColorParser(ref ControlItem c, string[] args) { if (args.Length < 2) { Console.WriteLine("Not valid args"); Console.WriteLine("use \"--help\" option to check usage."); Environment.Exit(7); } switch (args[0]) { case "hex": c.CSharpColor = HexParser(args[1]); break; } }