From eb424d24e39bab4a245725f35deab3f234ea0f13 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 13 十二月 2019 10:48:50 +0800
Subject: [PATCH] 2019.12.13
---
ZigbeeApp/Shared/Common/SceneUI.cs | 152 ++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 139 insertions(+), 13 deletions(-)
diff --git a/ZigbeeApp/Shared/Common/SceneUI.cs b/ZigbeeApp/Shared/Common/SceneUI.cs
old mode 100755
new mode 100644
index 3c02d15..5d7b5a1
--- a/ZigbeeApp/Shared/Common/SceneUI.cs
+++ b/ZigbeeApp/Shared/Common/SceneUI.cs
@@ -1,5 +1,6 @@
锘縰sing System;
using System.Collections.Generic;
+using Shared.Phone.Device.Category;
using Shared.Phone.UserCenter;
namespace Shared.Common
@@ -26,7 +27,7 @@
/// <summary>
/// 鍦烘櫙id
/// </summary>
- public int Id = int.MaxValue;
+ public int Id = -1;
/// <summary>
/// 鍦烘櫙鍚�
@@ -38,7 +39,7 @@
/// </summary>
public string IconPath = "Scene/SceneDefault.png";
/// <summary>
- /// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱
+ /// 鍥剧墖鏉ユ簮 0--鏈湴鍥惧簱 1--鎷嶇収 2--绯荤粺鍥惧簱
/// </summary>
public int IconPathType = 0;
@@ -61,10 +62,10 @@
/// 鏍囪瘑褰撳墠鍦烘櫙鏄惁鏄垎浜殑鍦烘櫙
/// </summary>
public bool IsSharedScene = false;
- /// <summary>
- /// 鏄惁鏀惰棌
- /// </summary>
- public bool IsCollected = false;
+ ///// <summary>
+ ///// 鏄惁鏀惰棌
+ ///// </summary>
+ //public bool IsCollected = false;
/// <summary>
/// 寤舵椂鎵ц鏃堕棿--鏁翠釜鍦烘櫙寤舵椂(涓嶆槸寤舵椂鍦烘櫙閲岄潰鐨勬墽琛岀洰鏍�)
@@ -72,11 +73,21 @@
/// </summary>
[Newtonsoft.Json.JsonIgnore]
public int SceneDelayTime = 0;
+
+ /// <summary>
+ /// 鍓╀綑瑙﹀彂鏃堕棿锛屽崟浣嶇
+ /// </summary>
+ [Newtonsoft.Json.JsonIgnore]
+ public int RemainTime;
/// <summary>
/// 鍦烘櫙鎵ц鐩爣
/// </summary>
public List<ZigBee.Device.Scene.AddSceneMemberData> AddSceneMemberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData> { };
+ ///// <summary>
+ ///// RoomId
+ ///// </summary>
+ //public string RoomId = string.Empty;
#endregion
@@ -93,21 +104,136 @@
#endregion
- #region 鈼� 鏀惰棌____________________________
+ #region 鈼� 閫氳繃id鑾峰彇鍦烘櫙鍖哄煙_________________
/// <summary>
- /// collect
+ /// GetZone
/// </summary>
- /// <param name="collected"></param>
- /// <param name="autoBackup"></param>
- public void Collect(bool collected, bool autoBackup = true)
+ /// <returns></returns>
+ public string GetZone()
{
- IsCollected = collected;
- Save(autoBackup);
+ var room = Room.CurrentRoom.GetRoomBySceneId(Id);
+ if(room==null)
+ {
+ return null;
+ }
+ var floorName = Shared.Common.Config.Instance.Home.GetFloorNameById(room.FloorId);
+ if (floorName == null)
+ {
+ return room.Name;
+ }
+ return $"{floorName},{room.Name}";
}
#endregion
+ #region 鈼� 缂栬緫鍦烘櫙_________________________
+ /// <summary>
+ /// 缂栬緫鍦烘櫙
+ /// </summary>
+ /// <param name="sceneUI">sceneUI</param>
+ /// <param name="room">Room.</param>
+ public static void EditScene(SceneUI sceneUI, Room room)
+ {
+ Application.RunOnMainThread(async () =>
+ {
+ try
+ {
+ var targetList = new List<SceneTargetDeviceUI> { };
+ CommonPage.Loading.Start();
+ //浠庣綉鍏充腑鍙嶅簭鍒楀寲鍑哄搴旂殑鎴块棿璁惧
+ var sceneDeviceList = await ZigBee.Device.Scene.GetSceneDeviceListAsync(sceneUI.Id);
+ if (sceneDeviceList == null)
+ {
+ CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine);
+ return;
+ }
+
+ if (Shared.Common.Room.AllRoomDeviceUIList.Count == 0)
+ {
+
+ if (Shared.Common.Room.AllRoomDeviceUIList.Count == 0)
+ {
+ CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ThisSceneHaveNoDevice);
+ }
+ //return;
+ }
+ if (sceneDeviceList.getSceneDeviceListInfo != null)
+ {
+ var deviceList = sceneDeviceList.getSceneDeviceListInfo.DeviceList;
+
+ if (deviceList != null && Room.AllRoomDeviceUIList.Count != 0)
+ {
+ foreach (var sceneDev in deviceList)
+ {
+ if (sceneDev.Type == 0)
+ {
+ var dev = Room.AllRoomDeviceUIList.Find((obj) => obj.DeviceEpoint == sceneDev.Epoint && obj.DeviceAddr == sceneDev.DeviceAddr);
+ if(dev!=null)
+ {
+ var sceneTargetDevice = new SceneTargetDeviceUI {
+ Type = 0,
+ DeviceUI = dev,
+ TaskList = sceneDev.TaskList,
+ DelayTimeSerialNumber= deviceList.IndexOf(sceneDev) + 1
+ };
+
+ targetList.Add(sceneTargetDevice);
+ }
+ }
+ else if (sceneDev.Type == 1)
+ {
+ var localScene = Room.AllRoomSceneUIList.Find((obj) => obj.Id == sceneDev.ElseScenesId);
+ if (localScene != null)
+ {
+ var sceneTargetDeviceScene = new SceneTargetDeviceUI {
+ Type = 1,
+ ElseScenesId = sceneDev.ElseScenesId,
+ SceneName = localScene.Name,
+ SceneUI = localScene,
+ DelayTimeSerialNumber = deviceList.IndexOf(sceneDev) + 1
+ };
+ targetList.Add(sceneTargetDeviceScene);
+ }
+ }
+ else
+ {
+ var sceneTargetDeviceScene = new SceneTargetDeviceUI
+ {
+ Type = 2,
+ DelayTime = sceneDev.DelayTime,
+ DelayTimeSerialNumber = deviceList.IndexOf(sceneDev)+1
+ };
+ targetList.Add(sceneTargetDeviceScene);
+ }
+ }
+ }
+ }
+ else
+ {
+ CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.FailedPleaseTryAgain);
+ }
+ var scene = new CategoryAddScene();
+ Phone.UserView.HomePage.Instance.AddChidren(scene);
+ Phone.UserView.HomePage.Instance.PageIndex += 1;
+ scene.isModify = true;
+ scene.modifyRoom = room;
+ scene.modifySceneUI = sceneUI;
+ scene.modifySceneTargetDevicesList = targetList;
+ scene.Show();
+ }
+ catch (Exception ex)
+ {
+ System.Console.WriteLine($"缂栬緫鍦烘櫙鍑洪敊---{ex.Message}");
+ }
+ finally
+ {
+ CommonPage.Loading.Hide();
+ }
+ });
+ }
+ #endregion
+
#region 鈼� 淇濆瓨____________________________
/// <summary>
--
Gitblit v1.8.0