wxr
2022-11-23 5b77d9d57a6cddb474a66ca54401ad5ab0892db3
HDL_ON/UI/UI2/2-Classification/SceneControlZone.cs
@@ -1,4 +1,8 @@
using System;
using System.Collections.Generic;
using System.Threading;
using HDL_ON.Common;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
@@ -77,7 +81,10 @@
                UnSelectedImagePath = "Collection/CollectionGrayIcon.png",
                IsSelected = scene.collect
            };
            if (scene.sceneType != SceneType.LightScene)
            {
            this.AddChidren(btnCollectionIcon);
            }
            btnIcon.UnSelectedImagePath = "FunctionIcon/Scene/SceneIcon.png";
            if (scene.sceneType == SceneType.MovieScene)
@@ -116,7 +123,157 @@
        /// </summary>
        void LoadEvent_ControlScene(Button btnName, Button btnFromFloor, Scene scene)
        {
            EventHandler<MouseEventArgs> upEvent = (sender, e) => {
            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;
                EventHandler<MouseEventArgs> delEvent = (sender, e) => {
                    Action action = () =>{
                        var waitPage = new Loading();
                        MainPage.BaseView.AddChidren(waitPage);
                        waitPage.Start("");
                        new System.Threading.Thread(() =>
                        {
                            try
                            {
                                var pm = new HttpServerRequest();
                                var packCode = pm.DeleteScene(scene.userSceneId);
                                if (packCode == StateCode.SUCCESS)
                                {
                                    FileUtlis.Files.DeleteFile(scene.savePath);
                                    try
                                    {
                                        foreach (var sss in FunctionList.List.scenes)
                                        {
                                            if (sss.userSceneId == scene.userSceneId)
                                            {
                                                FunctionList.List.scenes.Remove(sss);
                                                break;
                                            }
                                        }
                                    }
                                    catch { }
                                    Application.RunOnMainThread(() =>
                                    {
                                        this.RemoveFromParent();
                                    });
                                }
                                else
                                {
                                    Application.RunOnMainThread(() =>
                                    {
                                        IMessageCommon.Current.ShowErrorInfoAlter(packCode);
                                    });
                                }
                            }
                            catch { }
                            finally
                            {
                                Application.RunOnMainThread(() => {
                                    if(waitPage!= null)
                                    {
                                        waitPage.RemoveFromParent();
                                        waitPage = null;
                                    }
                                });
                            }
                        })
                        { IsBackground = true }.Start();
                    };
                    new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DoYouWantDelCombinedDimming, action);
                };
                btnName.MouseLongEventHandler = delEvent;
                btnFromFloor.MouseLongEventHandler = delEvent;
                this.MouseLongEventHandler = delEvent;
            }
            else
            {
                EventHandler<MouseEventArgs> upEvent = (sender, e) =>
                {
                DriverLayer.Control.Ins.ControlScene(scene);
                string msg = scene.name + Language.StringByID(StringId.AlreadyOpened);
                new PublicAssmebly().TipMsgAutoClose(msg, false);
@@ -125,6 +282,7 @@
            btnFromFloor.MouseUpEventHandler = upEvent;
            this.MouseUpEventHandler = upEvent;
        }
        }
    }