黄学彪
2020-04-08 4dce704aaf8587cf3f91cf88f2208315a03c4cbb
ZigbeeApp/Shared/Phone/Device/CommonForm/SceneCategoryView.cs
@@ -181,7 +181,6 @@
                    if (removeSceneAllData.removeSceneData.Result == 1)
                    {
                        HdlSceneLogic.Current.RemoveScene(scene);
                        //RefreshBodyView();
                        RemoveFromParent();
                    }
                    //0 移除失败
@@ -194,119 +193,32 @@
                    else if (removeSceneAllData.removeSceneData.Result == 2)
                    {
                        HdlSceneLogic.Current.RemoveScene(scene);
                        //RefreshBodyView();
                        RemoveFromParent();
                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheSceneIsNull));
                        return;
                    }
                };
            };
            //编辑场景
            btnEditor.ButtonClickEvent += async (sender, e) =>
            btnEditor.ButtonClickEvent += (sender, e) =>
            {
                try
                //关闭左滑菜单
                this.HideMenu();
                //编辑场景
                var form = new Phone.Category.AddOrEditorSceneForm();
                form.AddForm(i_scene);
                form.SceneChangedEvent = (myScene, roomId) =>
                {
                    //关闭左滑菜单
                    this.HideMenu();
                    var targetList = new List<SceneTargetDeviceUI> { };
                    CommonPage.Loading.Start();
                    //从网关中反序列化出对应的房间设备
                    var sceneDeviceList = await ZigBee.Device.Scene.GetSceneDeviceListAsync(scene.Id);
                    if (sceneDeviceList == null)
                    if (roomId != room.Id)
                    {
                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.TheMainGatewayIsNotOnLine));
                        return;
                    }
                    if (sceneDeviceList.getSceneDeviceListInfo != null)
                    {
                        var deviceList = sceneDeviceList.getSceneDeviceListInfo.DeviceList;
                        var allDevice = HdlRoomLogic.Current.GetAllRoomListDevice();
                        var allScene = HdlSceneLogic.Current.GetAllRoomSceneList();
                        if (deviceList != null && allDevice.Count != 0)
                        {
                            foreach (var sceneDev in deviceList)
                            {
                                if (sceneDev.Type == 0)
                                {
                                    var dev = allDevice.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 = allScene.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);
                                }
                            }
                        }
                        //它变更了房间
                        this.RemoveFromParent();
                    }
                    else
                    {
                        CommonFormResouce.ShowTip(Language.StringByID(R.MyInternationalizationString.FailedPleaseTryAgain));
                        this.InitControl(myScene, room);
                    }
                    var sceneView = new CategoryAddScene();
                    Phone.UserView.HomePage.Instance.AddChidren(sceneView);
                    Phone.UserView.HomePage.Instance.PageIndex += 1;
                    sceneView.isModify = true;
                    sceneView.modifyRoom = room;
                    sceneView.modifySceneUI = scene;
                    sceneView.modifySceneTargetDevicesList = targetList;
                    sceneView.Show();
                    sceneView.EditorAction = (s, r) =>
                    {
                        if (r.Id != room.Id)
                        {
                            RemoveFromParent();
                        }
                        else
                        {
                            this.InitControl(s, r);
                        }
                    };
                }
                catch (Exception ex)
                {
                    System.Console.WriteLine($"编辑场景出错---{ex.Message}");
                }
                finally
                {
                    CommonPage.Loading.Hide();
                }
                };
            };
            //编辑延时
            btnDelay.ButtonClickEvent += (sender, e) =>