using System; using System.Collections.Generic; using Foundation; using HDLSceneSiri; using ObjCRuntime; using UIKit; //using HdlSiri; namespace SiriIntents { public class HDLRunSceneIntentHandlder : HDLRunSceneIntentHandling { public override void ConfirmHDLRunScene (HDLRunSceneIntent intent, Action completion) { if (UIDevice.CurrentDevice.CheckSystemVersion(12, 0)) { if (Server.HttpServerRequest.Ins.DataManager.IsLgoin) { var rsp = new HDLRunSceneIntentResponse(HDLRunSceneIntentResponseCode.InProgress, null); if (NSLocale.PreferredLanguages[0].Contains("zh-")) { rsp.SuccessMessage = "请等待..."; } else { rsp.SuccessMessage = "Please wait..."; } completion(rsp); } else { var rsp = new HDLRunSceneIntentResponse(HDLRunSceneIntentResponseCode.Error, null); if (NSLocale.PreferredLanguages[0].Contains("zh-")) { rsp.SuccessMessage = "账号未登录"; } else { rsp.SuccessMessage = "Not logged in to the app."; } completion(rsp); } } else { var rsp = new HDLRunSceneIntentResponse(HDLRunSceneIntentResponseCode.ContinueInApp, null); rsp.SuccessMessage = "Ok"; completion(rsp); } } public override void HandleHDLRunScene(HDLRunSceneIntent intent,Action completion) { if (UIDevice.CurrentDevice.CheckSystemVersion(12, 0)) { if (Server.HttpServerRequest.Ins.DataManager.IsLgoin) { if(Server.HttpServerRequest.Ins.DataManager.HomeId!= intent.HomeId) { var rsp = new HDLRunSceneIntentResponse(HDLRunSceneIntentResponseCode.Error, null); if (NSLocale.PreferredLanguages[0].Contains("zh-")) { rsp.SuccessMessage = "住宅不匹配"; } else { rsp.SuccessMessage = "Residential mismatch."; } completion(rsp); return; } var result = "-1"; if (intent.ControlType == "1") { result = Server.HttpServerRequest.Ins.ExecuteScene(intent.ControlId); } else { var security = Newtonsoft.Json.JsonConvert.DeserializeObject(intent.ControlJSONStr); var sendObj = new List() { new SecurityState() { gatewayId =security.gatewayId,sid = security.sid, status = security.status, userSecurityId = security.userSecurityId } }; result = Server.HttpServerRequest.Ins.SetSecurityStatus(sendObj); } if (result == "0") { var rsp = new HDLRunSceneIntentResponse(HDLRunSceneIntentResponseCode.Success, null); if (NSLocale.PreferredLanguages[0].Contains("zh-")) { rsp.SuccessMessage = "执行成功"; } else { rsp.SuccessMessage = "Successful execution "; } completion(rsp); } else { var rsp = new HDLRunSceneIntentResponse(HDLRunSceneIntentResponseCode.Error, null); if (NSLocale.PreferredLanguages[0].Contains("zh-")) { rsp.SuccessMessage = "执行失败"; } else { rsp.SuccessMessage = "Execution failed."; } completion(rsp); } } else { var rsp = new HDLRunSceneIntentResponse(HDLRunSceneIntentResponseCode.Error, null); if (NSLocale.PreferredLanguages[0].Contains("zh-")) { rsp.SuccessMessage = "账号未登录"; } else { rsp.SuccessMessage = "Not logged in to the app."; } completion(rsp); } } else { var rsp = new HDLRunSceneIntentResponse(HDLRunSceneIntentResponseCode.ContinueInApp, null); rsp.SuccessMessage = "Ok"; completion(rsp); } } } /// /// 安防状态配置 /// public class SecurityState { /// /// 安防云端id /// public string userSecurityId; /// /// 网关id 网关id 如果传的是sid该字段需要传 /// public string gatewayId; /// /// 安防sid /// public string sid; /// /// 状态 enable布防、disable撒防 /// public string status; } }