Finishes converting all existing types to new DeviceFactory mechanism. #106

This commit is contained in:
Neil Dorin
2020-04-22 16:17:07 -06:00
parent d3562bf22d
commit 56c339bb08
29 changed files with 626 additions and 336 deletions

View File

@@ -12,7 +12,7 @@ namespace PepperDash.Essentials.Core.Shades
/// <summary>
/// Base class for a shade device
/// </summary>
public abstract class ShadeBase : Device, IShadesOpenClose
public abstract class ShadeBase : EssentialsDevice, IShadesOpenClose
{
public ShadeBase(string key, string name)
: base(key, name)

View File

@@ -5,13 +5,14 @@ using System.Text;
using Crestron.SimplSharp;
using PepperDash.Core;
using PepperDash.Essentials.Core.Config;
namespace PepperDash.Essentials.Core.Shades
{
/// <summary>
/// Class that contains the shades to be controlled in a room
/// </summary>
public class ShadeController : Device, IShades
public class ShadeController : EssentialsDevice, IShades
{
ShadeControllerConfigProperties Config;
@@ -55,4 +56,21 @@ namespace PepperDash.Essentials.Core.Shades
public string Key { get; set; }
}
}
public class ShadeControllerFactory : EssentialsDeviceFactory<ShadeController>
{
public ShadeControllerFactory()
{
TypeNames = new List<string>() { "shadecontroller" };
}
public override EssentialsDevice BuildDevice(DeviceConfig dc)
{
Debug.Console(1, "Factory Attempting to create new ShadeController Device");
var props = Newtonsoft.Json.JsonConvert.DeserializeObject<Core.Shades.ShadeControllerConfigProperties>(dc.Properties.ToString());
return new Core.Shades.ShadeController(dc.Key, dc.Name, props);
}
}
}