From 66a9965c44ecc32a6696abca876ab9d1cd091584 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期五, 28 二月 2020 15:25:13 +0800
Subject: [PATCH] 2020.2.28

---
 ZigbeeApp/Shared/Common/SceneUI.cs |  156 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 153 insertions(+), 3 deletions(-)

diff --git a/ZigbeeApp/Shared/Common/SceneUI.cs b/ZigbeeApp/Shared/Common/SceneUI.cs
index 360a30d..3f4cd40 100644
--- 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,6 +62,10 @@
         /// 鏍囪瘑褰撳墠鍦烘櫙鏄惁鏄垎浜殑鍦烘櫙
         /// </summary>
         public bool IsSharedScene = false;
+        ///// <summary>
+        ///// 鏄惁鏀惰棌
+        ///// </summary>
+        //public bool IsCollected = false;
 
         /// <summary>
         /// 寤舵椂鎵ц鏃堕棿--鏁翠釜鍦烘櫙寤舵椂(涓嶆槸寤舵椂鍦烘櫙閲岄潰鐨勬墽琛岀洰鏍�)
@@ -68,16 +73,30 @@
         /// </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
 
         #region 鈼� 閫氳繃鍦烘櫙id鑾峰彇鍦烘櫙璺緞_____________
-
+        /// <summary>
+        /// GetSceneFilePathBySceneId
+        /// </summary>
+        /// <param name="sceneId"></param>
+        /// <returns></returns>
         public static string GetSceneFilePathBySceneId(int sceneId)
         {
             return $"Scene_{sceneId}.json";
@@ -85,6 +104,137 @@
 
         #endregion
 
+        #region 鈼� 閫氳繃id鑾峰彇鍦烘櫙鍖哄煙_________________
+
+        /// <summary>
+        /// GetZone
+        /// </summary>
+        /// <returns></returns>
+        public string GetZone()
+        {
+            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