Hue/Hue/Devices/Configs/SwUpdate.cs
BlubbFish 4178079f4d [NF] Hue-Lib fertig
[DW] Hue-Bot beginn Arbeit
2018-05-01 21:46:56 +00:00

109 lines
5.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using BlubbFish.IoT.Hue.Events;
using BlubbFish.IoT.Hue.Interfaces;
using BlubbFish.IoT.Hue.lib;
using LitJson;
namespace BlubbFish.IoT.Hue.Devices.Configs {
public class SwUpdate : AConfig {
#region Properties
public Boolean Checkforupdate { get; private set; }
public DateTime Lastchange { get; private set; }
public String Bridgestate { get; private set; }
public DateTime Bridgelastinstall { get; private set; }
public String State { get; private set; }
public String Autoinstallupdatetime { get; private set; }
public Boolean Autoinstallon { get; private set; }
#endregion
#region Constructor
public SwUpdate(JsonData json, HttpConnection http, Boolean polling) : base(json, http, polling) {
this.ComplexInit(json);
}
private void ComplexInit(JsonData json) {
if(json.ContainsKey("checkforupdate") && json["checkforupdate"].IsBoolean) {
this.Checkforupdate = (Boolean)json["checkforupdate"];
}
if (json.ContainsKey("lastchange") && json["lastchange"].IsString) {
this.Lastchange = DateTime.Parse(json["lastchange"].ToString()).ToLocalTime();
}
if (json.ContainsKey("bridge") && json["bridge"].IsObject) {
if (json["bridge"].ContainsKey("state") && json["bridge"]["state"].IsString) {
this.Bridgestate = json["bridge"]["state"].ToString();
}
if (json["bridge"].ContainsKey("lastinstall") && json["bridge"]["lastinstall"].IsString) {
this.Bridgelastinstall = DateTime.Parse(json["bridge"]["lastinstall"].ToString()).ToLocalTime();
}
}
if (json.ContainsKey("state") && json["state"].IsString) {
this.State = json["state"].ToString();
}
if (json.ContainsKey("autoinstall") && json["autoinstall"].IsObject) {
if (json["autoinstall"].ContainsKey("updatetime") && json["autoinstall"]["updatetime"].IsString) {
this.Autoinstallupdatetime = json["autoinstall"]["updatetime"].ToString();
}
if (json["autoinstall"].ContainsKey("on") && json["autoinstall"]["on"].IsBoolean) {
this.Autoinstallon = (Boolean)json["autoinstall"]["on"];
}
}
}
#endregion
#region AConnector
public override String ToString() {
return "Updates: Check-" + this.Checkforupdate + " LatestCheck-" + this.Lastchange + " Updates-" + this.Bridgestate + " Installed-" + this.Bridgelastinstall + " State-" + this.State + " AutoTime-" + this.Autoinstallupdatetime + " AutoOn-" + this.Autoinstallon;
}
public override void SetUpdate(JsonData json) {
if (json.ContainsKey("checkforupdate") && json["checkforupdate"].IsBoolean) {
if (this.Checkforupdate != (Boolean)json["checkforupdate"]) {
this.Checkforupdate = (Boolean)json["checkforupdate"];
this.NotifyClient<ConfigUpdateEvent>(this.Checkforupdate);
}
}
if (json.ContainsKey("lastchange") && json["lastchange"].IsString) {
if (this.Lastchange != DateTime.Parse(json["lastchange"].ToString()).ToLocalTime()) {
this.Lastchange = DateTime.Parse(json["lastchange"].ToString()).ToLocalTime();
this.NotifyClient<ConfigUpdateEvent>(this.Lastchange);
}
}
if (json.ContainsKey("bridge") && json["bridge"].ContainsKey("state") && json["bridge"]["state"].IsString) {
if (this.Bridgestate != json["bridge"]["state"].ToString()) {
this.Bridgestate = json["bridge"]["state"].ToString();
this.NotifyClient<ConfigUpdateEvent>(this.Bridgestate);
}
}
if (json.ContainsKey("bridge") && json["bridge"].ContainsKey("lastinstall") && json["bridge"]["lastinstall"].IsString) {
if (this.Bridgelastinstall != DateTime.Parse(json["bridge"]["lastinstall"].ToString()).ToLocalTime()) {
this.Bridgelastinstall = DateTime.Parse(json["bridge"]["lastinstall"].ToString()).ToLocalTime();
this.NotifyClient<ConfigUpdateEvent>(this.Bridgelastinstall);
}
}
if (json.ContainsKey("state") && json["state"].IsString) {
if (this.State != json["state"].ToString()) {
this.State = json["state"].ToString();
this.NotifyClient<ConfigUpdateEvent>(this.State);
}
}
if (json.ContainsKey("autoinstall") && json["autoinstall"].ContainsKey("updatetime") && json["autoinstall"]["updatetime"].IsString) {
if (this.Autoinstallupdatetime != json["autoinstall"]["updatetime"].ToString()) {
this.Autoinstallupdatetime = json["autoinstall"]["updatetime"].ToString();
this.NotifyClient<ConfigUpdateEvent>(this.Autoinstallupdatetime);
}
}
if (json.ContainsKey("autoinstall") && json["autoinstall"].ContainsKey("on") && json["autoinstall"]["on"].IsBoolean) {
if (this.Autoinstallon != (Boolean)json["autoinstall"]["on"]) {
this.Autoinstallon = (Boolean)json["autoinstall"]["on"];
this.NotifyClient<ConfigUpdateEvent>(this.Autoinstallon);
}
}
}
#endregion
}
}