From 5d6626e390f7bccbbfbc0df1e95f8fb86a53af58 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 15 十二月 2020 18:25:47 +0800
Subject: [PATCH] Merge branch 'NewFilePath' into CJL

---
 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs |  171 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 115 insertions(+), 56 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
index cb146e7..049a185 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
@@ -374,6 +374,37 @@
             bodyView.AddChidren(btnComplete);
 
             LoadEventList();
+
+            var waitPage = new Loading();
+            new Thread(() => {
+                Application.RunOnMainThread(() => {
+                    bodyView.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.functions = tempScene.functions;
+                    }
+                    Application.RunOnMainThread(() =>
+                    {
+                        waitPage.Hide();
+                    });
+                }
+                else
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        waitPage.Hide();
+                        IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
+                    });
+                }
+            }).Start();
         }
         /// <summary>
         /// 鍔犺浇鍔熻兘鍒楄〃
@@ -513,66 +544,94 @@
                     if (sfs.value == "off")
                         return Language.StringByID(StringId.Close);
                 }
-                if (sfs.key == FunctionAttributeKey.Mode)
-                {
-                    
-                }
             }
-            FunctionAttributes perTrait;
 
-            switch (sceneFunction.localFunction.functionType)
+            if (sceneFunction.status.Count == 0)
             {
-                case FunctionType.AC:
-                    sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
-                    sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() +
-                         sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString;
-                    sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan").GetCurValueText();
-                    break;
-                case FunctionType.FloorHeating:
-                    sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
-                    sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() +
-                         sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString;
-                    break;
-                case FunctionType.Dimmer:
-                    perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness");
-                    if (perTrait != null)
-                    {
-                        sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
-                    }
-                    else
-                    {
-                        sceneFunctionInfo += Language.StringByID(StringId.Open);
-                    }
-                    break;
-                case FunctionType.Relay:
-                    sceneFunctionInfo += Language.StringByID(StringId.Open);
-                    break;
-                case FunctionType.RGB:
-                    perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
-                    if (perTrait != null)
-                    {
-                        sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
-                    }
-                    else
-                    {
-                        sceneFunctionInfo += Language.StringByID(StringId.Open);
-                    }
-                    break;
-                case FunctionType.Curtain:
-                    sceneFunctionInfo += Language.StringByID(StringId.Open);
-                    break;
-                case FunctionType.MotorCurtain:
-                    perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
-                    if (perTrait != null)
-                    {
-                        sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent").curValue.ToString() + "%";
-                    }
-                    else
-                    {
-                        sceneFunctionInfo += Language.StringByID(StringId.Open);
-                    }
-                    break;
+                return sceneFunctionInfo += Language.StringByID(StringId.Open);
             }
+
+            var modeState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Mode);
+            var tempState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.SetTemp);
+            var fanState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.FanSpeed);
+            if (modeState != null)
+            {
+                sceneFunctionInfo += FunctionList.List.GetValueText(modeState.key, modeState.value);
+            }
+            if (tempState != null)
+            {
+                sceneFunctionInfo += FunctionList.List.GetValueText(tempState.key, tempState.value);
+                sceneFunctionInfo += FunctionList.List.GetUintString(tempState.key);
+            }
+            if (fanState != null)
+            {
+                sceneFunctionInfo += FunctionList.List.GetValueText(fanState.key, fanState.value);
+            }
+            var briState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Brightness);
+            if (briState != null)
+            {
+                sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + briState.value + "%";
+            }
+            var perState = sceneFunction.status.Find((obj) => obj.key == FunctionAttributeKey.Percent);
+            if (perState != null)
+            {
+                sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + perState.value + "%";
+            }
+            //FunctionAttributes perTrait;
+
+            //switch (sceneFunction.localFunction.functionType)
+            //{
+            //    case FunctionType.AC:
+            //        sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
+            //        sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() +
+            //             sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString;
+            //        sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan").GetCurValueText();
+            //        break;
+            //    case FunctionType.FloorHeating:
+            //        sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
+            //        sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() +
+            //             sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString;
+            //        break;
+            //    case FunctionType.Dimmer:
+            //        perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness");
+            //        if (perTrait != null)
+            //        {
+            //            sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
+            //        }
+            //        else
+            //        {
+            //            sceneFunctionInfo += Language.StringByID(StringId.Open);
+            //        }
+            //        break;
+            //    case FunctionType.Relay:
+            //        sceneFunctionInfo += Language.StringByID(StringId.Open);
+            //        break;
+            //    case FunctionType.RGB:
+            //        perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
+            //        if (perTrait != null)
+            //        {
+            //            sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness").curValue.ToString() + "%";
+            //        }
+            //        else
+            //        {
+            //            sceneFunctionInfo += Language.StringByID(StringId.Open);
+            //        }
+            //        break;
+            //    case FunctionType.Curtain:
+            //        sceneFunctionInfo += Language.StringByID(StringId.Open);
+            //        break;
+            //    case FunctionType.MotorCurtain:
+            //        perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent");
+            //        if (perTrait != null)
+            //        {
+            //            sceneFunctionInfo += Language.StringByID(StringId.Open) + " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "percent").curValue.ToString() + "%";
+            //        }
+            //        else
+            //        {
+            //            sceneFunctionInfo += Language.StringByID(StringId.Open);
+            //        }
+            //        break;
+            //}
             return sceneFunctionInfo;
         }
 

--
Gitblit v1.8.0