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<HDLRunSceneIntentResponse> 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<HDLRunSceneIntentResponse> 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<SecurityState>(intent.ControlJSONStr);
|
var sendObj = new List<SecurityState>() { 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);
|
}
|
}
|
}
|
|
|
/// <summary>
|
/// 安防状态配置
|
/// </summary>
|
public class SecurityState
|
{
|
/// <summary>
|
/// 安防云端id
|
/// </summary>
|
public string userSecurityId;
|
/// <summary>
|
/// 网关id 网关id 如果传的是sid该字段需要传
|
/// </summary>
|
public string gatewayId;
|
/// <summary>
|
/// 安防sid
|
/// </summary>
|
public string sid;
|
/// <summary>
|
/// 状态 enable布防、disable撒防
|
/// </summary>
|
public string status;
|
}
|
|
}
|