From 02498f7744e6fdc413e518f96b25f3635540dc6b Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 15 十一月 2022 11:27:38 +0800
Subject: [PATCH] 金茂科技系统更新

---
 HDL_ON/UI/UI2/2-Classification/SceneControlZone.cs |  113 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 104 insertions(+), 9 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/SceneControlZone.cs b/HDL_ON/UI/UI2/2-Classification/SceneControlZone.cs
index 5b6e62f..37b83e8 100644
--- a/HDL_ON/UI/UI2/2-Classification/SceneControlZone.cs
+++ b/HDL_ON/UI/UI2/2-Classification/SceneControlZone.cs
@@ -1,4 +1,7 @@
 锘縰sing System;
+using System.Collections.Generic;
+using System.Threading;
+using HDL_ON.DAL.Server;
 using HDL_ON.Entity;
 using HDL_ON.UI.CSS;
 using Shared;
@@ -77,7 +80,10 @@
                 UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
                 IsSelected = scene.collect
             };
-            this.AddChidren(btnCollectionIcon);
+            if (scene.sceneType != SceneType.LightScene)
+            {
+                this.AddChidren(btnCollectionIcon);
+            }
 
             btnIcon.UnSelectedImagePath = "FunctionIcon/Scene/SceneIcon.png";
             if (scene.sceneType == SceneType.MovieScene)
@@ -116,14 +122,103 @@
         /// </summary>
         void LoadEvent_ControlScene(Button btnName, Button btnFromFloor, Scene scene)
         {
-            EventHandler<MouseEventArgs> upEvent = (sender, e) => {
-                DriverLayer.Control.Ins.ControlScene(scene);
-                string msg = scene.name + Language.StringByID(StringId.AlreadyOpened);
-                new PublicAssmebly().TipMsgAutoClose(msg, false);
-            };
-            btnName.MouseUpEventHandler = upEvent;
-            btnFromFloor.MouseUpEventHandler = upEvent;
-            this.MouseUpEventHandler = upEvent;
+            if (scene.sceneType == SceneType.LightScene)
+            {
+                EventHandler<MouseEventArgs> upEvent = (sender, e) =>
+                {
+                    if (scene.functions.Count == 0)
+                    {
+
+                        var waitPage = new Loading();
+                        new Thread(() =>
+                        {
+                            try
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    MainPage.BaseView.AddChidren(waitPage);
+                                    waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                                });
+                                var pm = new HttpServerRequest();
+                                var pack = pm.GetSceneInfo(scene.userSceneId);
+                                if (pack.Code == StateCode.SUCCESS)
+                                {
+                                    var sceneList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(pack.Data.ToString());
+                                    var tempScene = sceneList.Find((obj) => obj.userSceneId == scene.userSceneId);
+                                    if (tempScene != null)
+                                    {
+                                        scene.name = tempScene.name;
+                                        scene.delay = tempScene.delay;
+                                        scene.roomIds = tempScene.roomIds;
+                                        scene.functions = tempScene.functions;
+                                    }
+                                    Application.RunOnMainThread(() =>
+                                    {
+                                        var sceneLishtList = new List<Function>();
+                                        foreach (var light in FunctionList.List.GetLightList())
+                                        {
+                                            var temp = scene.functions.Find((obj) => obj.sid == light.sid);
+                                            if (temp != null)
+                                            {
+                                                sceneLishtList.Add(light);
+                                            }
+                                        }
+                                        Action<Scene> action = (Scene) => { };
+                                        var lightSceneDialog = new LightSceneEditDialog(sceneLishtList, scene, action);
+                                        lightSceneDialog.ShowDialog();
+
+                                        waitPage.Hide();
+                                        waitPage.RemoveFromParent();
+                                    });
+                                }
+                                else
+                                {
+                                    IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
+                                }
+                            }
+                            catch { }
+                            finally
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    waitPage.Hide();
+                                    waitPage.RemoveFromParent();
+                                });
+                            }
+                        }).Start();
+                    }
+                    else
+                    {
+                        var sceneLishtList = new List<Function>();
+                        foreach (var light in FunctionList.List.GetLightList())
+                        {
+                            var temp = scene.functions.Find((obj) => obj.sid == light.sid);
+                            if (temp != null)
+                            {
+                                sceneLishtList.Add(light);
+                            }
+                        }
+                        Action<Scene> action = (Scene) => { };
+                        var lightSceneDialog = new LightSceneEditDialog(sceneLishtList, scene, action);
+                        lightSceneDialog.ShowDialog();
+                    }
+                };
+                btnName.MouseUpEventHandler = upEvent;
+                btnFromFloor.MouseUpEventHandler = upEvent;
+                this.MouseUpEventHandler = upEvent;
+            }
+            else
+            {
+                EventHandler<MouseEventArgs> upEvent = (sender, e) =>
+                {
+                    DriverLayer.Control.Ins.ControlScene(scene);
+                    string msg = scene.name + Language.StringByID(StringId.AlreadyOpened);
+                    new PublicAssmebly().TipMsgAutoClose(msg, false);
+                };
+                btnName.MouseUpEventHandler = upEvent;
+                btnFromFloor.MouseUpEventHandler = upEvent;
+                this.MouseUpEventHandler = upEvent;
+            }
         }
 
 

--
Gitblit v1.8.0