using System.Collections.Generic;
using System.Threading.Tasks;
using System.Collections.Generic;
public static void Main()
Console.WriteLine("Hello Google home");
Lights = new List<ILight>()
new SimpleLight("1","Dnevna soba 1"),
new SimpleLight("2","Dnevna soba 2"),
new SimpleLight("3","Spalna soba"),
new FancyLightAdapter(new FancyLight("4","OfficeRoom"))
Console.WriteLine("Enter your command");
var command = Console.ReadLine();
var lightId = command.Split(' ')[0];
var onOff = command.Split(' ')[1];
myHome.TurnOnLight(lightId);
myHome.TurnOffLight(lightId);
Console.WriteLine("Invalid command");
Console.WriteLine(string.Format("Light {0} switched {1} :)", lightId, onOff));
public string Name { get; set; }
public List<ILight> Lights;
public void TurnOnLight(string lightId)
Lights.FirstOrDefault(l => l.Id == lightId).TurnOn();
public void TurnOffLight(string lightId)
Lights.FirstOrDefault(l => l.Id == lightId).TurnOff();
public class SimpleLight : ILight
public SimpleLight(string id, string label)
public string Id { get { return _id; } }
public string Label { get { return _label; } }
private decimal _brightness;
public FancyLight(string id, string name)
public string Id { get { return _id; } }
public string Name { get { return _name; } }
public void DimLight(decimal brightness)
_brightness = brightness;
class FancyLightAdapter : ILight
public string id => light.Id;
public string label => light.Name;
public FancyLightAdapter(FancyLight light)
public string Id { get { return id; } }
public string Label { get { return label; } }