From 6d73bf6e816570291865674bef8bce8972e4de3f Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期三, 01 十二月 2021 16:32:57 +0800
Subject: [PATCH] 2021-12-01-01

---
 HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs |  220 +++++++++++++++++++++++++++----------------------------
 1 files changed, 108 insertions(+), 112 deletions(-)

diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
index d041894..5a6a5d3 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificaitionPublicBLL.cs
@@ -16,9 +16,8 @@
         /// <param name="updataFunction"></param>
         public void UpdataStates(Function updataFunction, FrameLayout view, VerticalScrolViewLayout scrolView, Room room = null)
         {
-            Application.RunOnMainThread(() =>
+            Application.RunOnMainThread((Action)(() =>
             {
-
                 try
                 {
                     if (view == null || scrolView == null || updataFunction == null)
@@ -43,9 +42,9 @@
                             continue;
                         }
                         var viewTag = scrolView.GetChildren(i).Tag.ToString();
-                        if (viewTag == updataFunction.sid)
+                        if (scrolView.GetChildren(i).Tag != null && viewTag == updataFunction.spk + updataFunction.sid)
                         {
-                            if (scrolView.GetChildren(i).Tag != null && scrolView.GetChildren(i).Tag.ToString() == updataFunction.sid)
+                            //if ( && scrolView.GetChildren(i).Tag.ToString() == updataFunction.sid)
                             {
                                 var fcView = scrolView.GetChildren(i) as FrameLayout;
                                 for (int j = 0; j < fcView.ChildrenCount; j++)
@@ -53,126 +52,123 @@
                                     if (fcView.GetChildren(j).Tag == null)
                                         continue;
                                     var cTag = fcView.GetChildren(j).Tag.ToString();
-                                    switch (updataFunction.functionCategory)
+                                    if (SPK.LightSpkList().Contains(updataFunction.spk) ||
+                                    SPK.AcSpkList().Contains(updataFunction.spk) ||
+                                    SPK.FhSpkList().Contains(updataFunction.spk) ||
+                                    SPK.ElectricalSpkList().Contains(updataFunction.spk) ||
+                                    SPK.AirFreshSpkList().Contains(updataFunction.spk))
                                     {
-                                        case FunctionCategory.Light:
-                                        case FunctionCategory.Thermostat:
-                                            #region 鎸夐挳鐘舵�佹洿鏂�
-                                            if (cTag == updataFunction.sid + "_Switch")
+                                        #region 鎸夐挳鐘舵�佹洿鏂�
+                                        if (cTag == updataFunction.sid + "_Switch")
+                                        {
+                                            try
                                             {
-                                                try
-                                                {
-                                                    (fcView.GetChildren(j) as Button).IsSelected = updataFunction.trait_on_off.curValue.ToString() == "on";
-                                                }
-                                                catch (Exception ex)
-                                                {
-                                                    MainPage.Log($"{this.GetType()} error 0 : {ex.Message}");
-                                                }
+                                                (fcView.GetChildren(j) as Button).IsSelected = updataFunction.trait_on_off.curValue.ToString() == "on";
                                             }
-                                            #endregion
-                                            #region 璋冨厜鐘舵�佽繘搴︽洿鏂�
-                                            else if (cTag == updataFunction.sid + "_DimmerBar")
+                                            catch (Exception ex)
                                             {
-                                                try
-                                                {
-                                                    if (updataFunction.trait_on_off.curValue.ToString() == "on")
-                                                    {
-                                                        (fcView.GetChildren(j) as DiyImageSeekBar).Progress = (updataFunction as Light).brightness;
-                                                        (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1;
-                                                    }
-                                                    else
-                                                    {
-                                                        (fcView.GetChildren(j) as DiyImageSeekBar).Progress = (updataFunction as Light).brightness;
-                                                        (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.PromptingColor2;
-                                                    }
-                                                }
-                                                catch (Exception ex)
-                                                {
-                                                    MainPage.Log($"{this.GetType()} error 1 : {ex.Message}");
-                                                }
+                                                MainPage.Log($"{this.GetType()} error 0 : {ex.Message}");
                                             }
-                                            #endregion
-                                            #region 鍔熻兘鐘舵�佷俊鎭洿鏂�
-                                            else if (cTag == updataFunction.functionType + "_laststates_" + updataFunction.sid)
-                                            {
-                                                try
-                                                {
-                                                    (fcView.GetChildren(j) as Button).IsSelected = updataFunction.trait_on_off.curValue.ToString() == "on";
-                                                    (fcView.GetChildren(j) as Button).Text = updataFunction.lastState;
-                                                }
-                                                catch (Exception ex)
-                                                {
-                                                    MainPage.Log($"{this.GetType()} error 2 : {ex.Message}");
-                                                }
-                                            }
-                                            break;
+                                        }
                                         #endregion
-                                        case FunctionCategory.Curtain:
-                                            #region 绐楀笜鏇存柊
-                                            var uCurtain = updataFunction as Curtain;
-                                            switch (uCurtain.trait_on_off.curValue.ToString())
+                                        #region 璋冨厜鐘舵�佽繘搴︽洿鏂�
+                                        else if (cTag == updataFunction.sid + "_DimmerBar")
+                                        {
+                                            try
                                             {
-                                                case "off":
-                                                    if (cTag == updataFunction.sid + "_off")
-                                                    {
-                                                        try
-                                                        {
-                                                            (fcView.GetChildren(j) as Button).IsSelected = true;
-                                                        }
-                                                        catch { }
-                                                    }
-                                                    else
-                                                    {
-                                                        (fcView.GetChildren(j) as Button).IsSelected = false;
-                                                    }
-                                                    break;
-                                                case "on":
-                                                    if (cTag == updataFunction.sid + "_on")
-                                                    {
-                                                        try
-                                                        {
-                                                            (fcView.GetChildren(j) as Button).IsSelected = true;
-                                                        }
-                                                        catch { }
-                                                    }
-                                                    else
-                                                    {
-                                                        (fcView.GetChildren(j) as Button).IsSelected = false;
-                                                    }
-                                                    break;
-                                                case "stop":
-                                                    if (cTag == updataFunction.sid + "_stop")
-                                                    {
-                                                        try
-                                                        {
-                                                            (fcView.GetChildren(j) as Button).IsSelected = true;
-                                                        }
-                                                        catch { }
-                                                    }
-                                                    else
-                                                    {
-                                                        (fcView.GetChildren(j) as Button).IsSelected = false;
-                                                    }
-                                                    break;
+                                                (fcView.GetChildren(j) as DiyImageSeekBar).Progress = Convert.ToInt32(updataFunction.GetAttrState(FunctionAttributeKey.Brightness));
+                                                if (updataFunction.trait_on_off.curValue.ToString() == "on")
+                                                {
+                                                    (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.AuxiliaryColor1;
+                                                }
+                                                else
+                                                {
+                                                    (fcView.GetChildren(j) as DiyImageSeekBar).ProgressBarColor = CSS.CSS_Color.PromptingColor2;
+                                                }
                                             }
-                                            #endregion
-                                            break;
-                                        case FunctionCategory.Music:
-                                            #region 闊充箰鏇存柊
-                                            var uMusic = updataFunction as Music.A31MusicModel;
-                                            if (cTag == updataFunction.functionType + "_State_" + updataFunction.sid)
+                                            catch (Exception ex)
+                                            {
+                                                MainPage.Log($"{this.GetType()} error 1 : {ex.Message}");
+                                            }
+                                        }
+                                        #endregion
+                                        #region 鍔熻兘鐘舵�佷俊鎭洿鏂�
+                                        else if (cTag == updataFunction.spk + "_laststates_" + updataFunction.sid)
+                                        {
+                                            try
+                                            {
+                                                (fcView.GetChildren(j) as Button).IsSelected = updataFunction.trait_on_off.curValue.ToString() == "on";
+                                                (fcView.GetChildren(j) as Button).Text = updataFunction.lastState;
+                                            }
+                                            catch (Exception ex)
+                                            {
+                                                MainPage.Log($"{this.GetType()} error 2 : {ex.Message}");
+                                            }
+                                        }
+                                        #endregion
+                                    }
+                                    else if (SPK.CurtainSpkList().Contains(updataFunction.spk))
+                                    {
+                                        #region 绐楀笜鏇存柊
+                                        var onoffString = updataFunction.GetAttrState(FunctionAttributeKey.OnOff);
+                                        if (onoffString == "stop")
+                                        {
+                                            return;
+                                        }
+                                        var percent = onoffString == "off" ? 0 : 100;
+                                        if (updataFunction.GetAttributes().Contains(FunctionAttributeKey.Percent))
+                                        {
+                                            string percentString = updataFunction.GetAttrState(FunctionAttributeKey.Percent);
+                                            int.TryParse(percentString, out percent);
+                                        }
+                                        if (percent == 0)
+                                        {
+                                            if (cTag == updataFunction.sid + "_off")
                                             {
                                                 try
                                                 {
-                                                    (fcView.GetChildren(j) as Button).IsSelected = uMusic.A31PlayStatus.status == "play";
+                                                    (fcView.GetChildren(j) as Button).IsSelected = true;
                                                 }
-                                                catch (Exception ex)
-                                                {
-                                                    MainPage.Log($"{this.GetType()} error 3 : {ex.Message}");
-                                                }
+                                                catch { }
                                             }
-                                            #endregion
-                                            break;
+                                            else
+                                            {
+                                                (fcView.GetChildren(j) as Button).IsSelected = false;
+                                            }
+                                        }
+                                        else
+                                        {
+                                            if (cTag == updataFunction.sid + "_on")
+                                            {
+                                                try
+                                                {
+                                                    (fcView.GetChildren(j) as Button).IsSelected = true;
+                                                }
+                                                catch { }
+                                            }
+                                            else
+                                            {
+                                                (fcView.GetChildren(j) as Button).IsSelected = false;
+                                            }
+                                        }
+                                        #endregion
+                                    }
+                                    else if (SPK.MusicSpkList().Contains(updataFunction.spk))
+                                    {
+                                        #region 闊充箰鏇存柊
+                                        var uMusic = updataFunction as Music.A31MusicModel;
+                                        if (cTag == updataFunction.spk + "_State_" + updataFunction.sid)
+                                        {
+                                            try
+                                            {
+                                                (fcView.GetChildren(j) as Button).IsSelected = uMusic.A31PlayStatus.status == "play";
+                                            }
+                                            catch (Exception ex)
+                                            {
+                                                MainPage.Log($"{this.GetType()} error 3 : {ex.Message}");
+                                            }
+                                        }
+                                        #endregion
                                     }
                                 }
                             }
@@ -183,7 +179,7 @@
                 {
                     MainPage.Log($"RoomControlZone Updata States error : {ex.Message}");
                 }
-            });
+            }));
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.8.0