HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2019-10-28 8b4d79ca03495e522a1953e04ca17527f33c853a
ZigbeeApp/Shared/Common/SceneRoomUI.cs
@@ -55,127 +55,6 @@
        [Newtonsoft.Json.JsonIgnore]
        public static List<SceneRoomUI> AllSceneRoomUIList = new List<SceneRoomUI> { };
        /// <summary>
        /// 编辑场景
        /// </summary>
        /// <param name="sceneUI">sceneUI</param>
        /// <param name="room">Room.</param>
        public static void EditScene(SceneUI sceneUI,Room room)
        {
            Application.RunOnMainThread(async () =>
            {
                try
                {
                    CommonPage.Loading.Start();
                    //从网关中反序列化出对应的房间设备
                    var sceneDeviceList = await ZigBee.Device.Scene.GetSceneDeviceListAsync(sceneUI.Id);
                    if (sceneDeviceList == null)
                    {
                        CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.TheMainGatewayIsNotOnLine);
                        //CommonPage.Instance.FailureToServer();
                        return;
                    }
                    if (Shared.Common.Room.AllRoomDeviceUIList.Count == 0)
                    {
                        Shared.Common.Room.GetAllRoomDeviceUIList();
                        if (Shared.Common.Room.AllRoomDeviceUIList.Count == 0)
                        {
                            CommonPage.Instance.ShowErrorInfoAlert(R.MyInternationalizationString.ThisSceneHaveNoDevice);
                        }
                        //return;
                    }
                    if (sceneDeviceList.getSceneDeviceListInfo != null)
                    {
                        var deviceList = sceneDeviceList.getSceneDeviceListInfo.DeviceList;
                        //CategoryAddScene.sceneTargetDevicesList?.Clear();
                        //累加延时
                        int AddedDelayTime = 0;
                        if (deviceList != null && Shared.Common.Room.AllRoomDeviceUIList.Count != 0)
                        {
                            foreach (var sceneDev in deviceList)
                            {
                                if (sceneDev.Type == 0)
                                {
                                    foreach (var dev in Shared.Common.Room.AllRoomDeviceUIList)
                                    {
                                        if (dev == null || dev.CommonDevice == null)
                                        {
                                            continue;
                                        }
                                        if (dev.CommonDevice.DeviceAddr == sceneDev.DeviceAddr && dev.CommonDevice.DeviceEpoint == sceneDev.Epoint)
                                        {
                                            if (sceneDev.DelayTime - AddedDelayTime > 0)
                                            {
                                                var sceneTargetDeviceTime = new SceneTargetDeviceUI { Type = 1, DelayTime = sceneDev.DelayTime - AddedDelayTime };
                                                //CategoryAddScene.sceneTargetDevicesList.Add(sceneTargetDeviceTime);
                                                //CategoryAddScene.beforeSceneTargetDevicesList.Add(sceneTargetDeviceTime);
                                                var sceneTargetDevice = new SceneTargetDeviceUI { Type = 0, DeviceUI = dev, TaskList = sceneDev.TaskList };
                                                //CategoryAddScene.sceneTargetDevicesList.Add(sceneTargetDevice);
                                                //CategoryAddScene.beforeSceneTargetDevicesList.Add(sceneTargetDevice);
                                                AddedDelayTime = sceneDev.DelayTime;
                                            }
                                            else
                                            {
                                                var sceneTargetDevice = new SceneTargetDeviceUI { Type = 0, DeviceUI = dev, TaskList = sceneDev.TaskList };
                                                //CategoryAddScene.sceneTargetDevicesList.Add(sceneTargetDevice);
                                                //CategoryAddScene.beforeSceneTargetDevicesList.Add(sceneTargetDevice);
                                            }
                                        }
                                    }
                                }
                                else if (sceneDev.Type == 1)
                                {
                                    string localSceneName = string.Empty;
                                    var localScene = SceneRoomUI.AllSceneRoomUIList.Find((obj) => obj.sceneUI.Id == sceneDev.ElseScenesId);
                                    if (localScene != null)
                                    {
                                        localSceneName = localScene.sceneUI.Name;
                                    }
                                    if (sceneDev.DelayTime - AddedDelayTime > 0)
                                    {
                                        var sceneTargetDeviceTime = new SceneTargetDeviceUI { Type = 1, DelayTime = sceneDev.DelayTime - AddedDelayTime };
                                        //CategoryAddScene.sceneTargetDevicesList.Add(sceneTargetDeviceTime);
                                        //CategoryAddScene.beforeSceneTargetDevicesList.Add(sceneTargetDeviceTime);
                                        var sceneTargetDeviceScene = new SceneTargetDeviceUI { Type = 2, ElseScenesId = sceneDev.ElseScenesId, SceneName = localSceneName };
                                        //CategoryAddScene.sceneTargetDevicesList.Add(sceneTargetDeviceScene);
                                        //CategoryAddScene.beforeSceneTargetDevicesList.Add(sceneTargetDeviceScene);
                                        AddedDelayTime = sceneDev.DelayTime;
                                    }
                                    else
                                    {
                                        var sceneTargetDeviceScene = new SceneTargetDeviceUI { Type = 2, ElseScenesId = sceneDev.ElseScenesId, SceneName = localSceneName };
                                        //CategoryAddScene.sceneTargetDevicesList.Add(sceneTargetDeviceScene);
                                        //CategoryAddScene.beforeSceneTargetDevicesList.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;
                    //CategoryAddScene.SceneText = sceneUI.Name;
                    //scene.curRoom = room;
                    //CategoryAddScene.ModifySceneUI = sceneUI;
                    //CategoryAddScene.Modify = true;
                    //CategoryAddScene.ImagePath = sceneUI.IconPath;
                    scene.Show();
                }
                catch (Exception ex)
                {
                    System.Console.WriteLine($"编辑场景出错---{ex.Message}");
                }
                finally
                {
                    CommonPage.Loading.Hide();
                }
            });
        }
    }
}