xm
2021-12-01 6d73bf6e816570291865674bef8bce8972e4de3f
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)
@@ -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}");
                }
            });
            }));
        }
    }
}