From 17c8d94258154ab2e9f6d2cf821202c873b9f118 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 16 十二月 2020 15:39:15 +0800
Subject: [PATCH] 22222
---
HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs | 374 +++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 373 insertions(+), 1 deletions(-)
diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
index de4cba5..6b0a1c4 100644
--- a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
+++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs
@@ -1,18 +1,390 @@
锘縰sing System;
+using System.Collections.Generic;
+using HDL_ON.DriverLayer;
+using HDL_ON.Entity;
+using HDL_ON.UI.CSS;
+using Shared;
+
namespace HDL_ON.UI
{
public partial class ClassificationPage
{
/// <summary>
+ /// 鏇存柊鐣岄潰淇℃伅
+ /// 鏇存柊鍔熻兘鎵撳紑鏁伴噺
+ /// 鏇存柊鍏ㄥ叧鍔熻兘鐘舵��
+ /// </summary>
+ /// <param name="function"></param>
+ public static void UpdataInfo(Function function)
+ {
+ Application.RunOnMainThread(() => {
+ if (bodyView == null)
+ return;
+ UpdataFunctionOnCount(function.functionCategory,function.functionType);
+ UpdataCloseAllButton(function);
+ });
+ }
+
+ /// <summary>
+ /// 鏇存柊鍔熻兘鎵撳紑鏁伴噺
+ /// </summary>
+ /// <param name="functionCategory"></param>
+ static void UpdataFunctionOnCount(FunctionCategory functionCategory, FunctionType functionType)
+ {
+ try
+ {
+ for (int i = 0; i < bodyView.functionsPageView.ChildrenCount; i++)
+ {
+ if (bodyView.functionsPageView.GetChildren(i).GetType() == typeof(FrameLayout))
+ {
+ var view1 = bodyView.functionsPageView.GetChildren(i) as FrameLayout;
+ for (int j = 0; j < view1.ChildrenCount; j++)
+ {
+ if (view1.GetChildren(j).GetType() == typeof(FrameLayout))
+ {
+ var view2 = view1.GetChildren(j) as FrameLayout;
+ for (var k = 0; k < view2.ChildrenCount; k++)
+ {
+ if (view2.GetChildren(k).GetType() == typeof(FrameLayout))
+ {
+ var view3 = view2.GetChildren(j) as FrameLayout;
+ if(view3== null)
+ {
+ continue;
+ }
+ for (var o = 0; o < view3.ChildrenCount; o++)
+ {
+ if (view3.GetChildren(o).GetType() == typeof(Button))
+ {
+ var btn = view3.GetChildren(o) as Button;
+ if (btn.Tag != null)
+ {
+ if (btn.Tag.ToString() == functionCategory + "_onCount")
+ {
+ string btnText = "0";
+ switch (functionCategory)
+ {
+ case FunctionCategory.Thermostat:
+ switch (functionType)
+ {
+ case FunctionType.FloorHeating:
+ btnText = FunctionList.List.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString();
+ break;
+ case FunctionType.AC:
+ btnText = FunctionList.List.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString();
+ break;
+ }
+ break;
+ case FunctionCategory.Curtain:
+ btnText = FunctionList.List.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString();
+ break;
+ case FunctionCategory.Light:
+ btnText = FunctionList.List.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString();
+ break;
+ case FunctionCategory.Electrical:
+ btnText = FunctionList.List.electricals.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count.ToString();
+ break;
+ }
+ btn.Text = btnText;
+ }
+ else if (btn.Tag.ToString() == functionCategory + "_AllControl")
+ {
+ var openCount = 0;
+ switch (functionCategory)
+ {
+ case FunctionCategory.Thermostat:
+ switch (functionType)
+ {
+ case FunctionType.FloorHeating:
+ openCount = FunctionList.List.floorHeatings.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+ break;
+ case FunctionType.AC:
+ openCount = FunctionList.List.aCs.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+ break;
+ }
+ break;
+ case FunctionCategory.Curtain:
+ openCount = FunctionList.List.curtains.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+ break;
+ case FunctionCategory.Light:
+ openCount = FunctionList.List.lights.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+ break;
+ case FunctionCategory.Electrical:
+ openCount = FunctionList.List.electricals.FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on").Count;
+ break;
+ }
+ btn.IsSelected = openCount != 0;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"鏇存柊鍏ㄥ叧鎸夐挳寮傚父 : {ex.Message}");
+ }
+ }
+ /// <summary>
+ /// 鏇存柊鍏ㄥ叧鍔熻兘鐘舵��
+ /// </summary>
+ static void UpdataCloseAllButton(Function function)
+ {
+ for (int i = 0; i < bodyView.roomListView.ChildrenCount; i++)
+ {
+ if (bodyView.roomListView.GetChildren(i).GetType() == typeof(FrameLayout))
+ {
+ var view1 = bodyView.roomListView.GetChildren(i) as FrameLayout;
+ if (!function.roomIds.Contains(view1.Tag.ToString()))
+ continue;
+ for (int j = 0; j < view1.ChildrenCount; j++)
+ {
+ if (view1.GetChildren(j).GetType() == typeof(Button))
+ {
+ var btn = view1.GetChildren(j) as Button;
+ if (btn.Tag != null && btn.Tag.ToString() == "AllClose")
+ {
+ if (function.trait_on_off.curValue.ToString() == "on")
+ {
+ btn.Visible = true;
+ }
+ else
+ {
+ foreach (var rId in function.roomIds)
+ {
+ if(rId == null)
+ {
+ continue;
+ }
+ var r = SpatialInfo.CurrentSpatial.RoomList.Find(s => s.roomId == rId);
+ if(r == null)
+ {
+ continue;
+ }
+ var ssd = r.GetRoomFunctions(false).FindAll((obj) => obj.trait_on_off.curValue.ToString() == "on" && obj.functionCategory != FunctionCategory.Scene);
+ var sss = ssd.Count;
+ if (sss == 0)
+ {
+ btn.Visible = false;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// 鍔犺浇鍏抽棴鎴块棿鎵�鏈夊姛鑳戒簨浠�
+ /// </summary>
+ void LoadEvent_CloseAllFunction(Button btn, Room room)
+ {
+ try
+ {
+ btn.MouseUpEventHandler = (sender, e) =>
+ {
+ Action action = () =>
+ {
+ new System.Threading.Thread(() =>
+ {
+ foreach (var f in room.GetRoomFunctions(false))
+ {
+ if (f.functionCategory == FunctionCategory.Scene)
+ {
+ continue;
+ }
+
+ f.trait_on_off.curValue = "off";
+ Dictionary<string, string> d = new Dictionary<string, string>();
+ d.Add("on_off", f.trait_on_off.curValue.ToString());
+ Control.Ins.SendWriteCommand(f, d);
+ }
+
+ foreach (var m in Music.A31MusicModel.A31MusicModelList)
+ {
+ if (m.roomIds.Contains(room.roomId))
+ {
+ Music.SendMethod.Pause(m);
+ }
+ }
+ })
+ { IsBackground = true }.Start();
+
+ btn.Visible = false;
+ };
+ new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.TipCloseAllFunctionInRoom, action);
+ };
+ foreach (var f in room.GetRoomFunctions(false))
+ {
+ if (f.functionCategory == FunctionCategory.Scene)
+ {
+ continue;
+ }
+ if (f.trait_on_off.curValue.ToString() == "on")
+ {
+ btn.Visible = true;
+ break;
+ }
+ }
+ }
+ catch (Exception ex)
+ {
+ MainPage.Log($"load close all function : {ex.Message}");
+ }
+ }
+
+ /// <summary>
/// 鍔犺浇浜嬩欢鍒楄〃
/// </summary>
void LoadEventList()
{
-
+ LoadEvent_ShowedChange();
}
#region 椤堕儴瀵艰埅鏍忎簨浠�
+ /// <summary>
+ /// 鏄剧ず鐣岄潰鍒囨崲
+ /// </summary>
+ void LoadEvent_ShowedChange()
+ {
+ contentPageView.PageChange = (sender, e) =>
+ {
+ if(contentPageView.PageIndex == 0)
+ {
+ btnRoomTilte.IsSelected = true;
+ btnRoomTilte.TextSize = CSS_FontSize.HeadlineFontSize;
+ btnRoomTilte.IsBold = true;
+ btnFuncTitle.IsSelected = false;
+ btnFuncTitle.TextSize = CSS_FontSize.TextFontSize;
+ btnFuncTitle.IsBold = false;
+ }
+ else
+ {
+ btnFuncTitle.IsSelected = true;
+ btnFuncTitle.TextSize = CSS_FontSize.HeadlineFontSize;
+ btnFuncTitle.IsBold = true;
+ btnRoomTilte.IsSelected = false;
+ btnRoomTilte.TextSize = CSS_FontSize.TextFontSize;
+ btnRoomTilte.IsBold = false;
+ }
+ };
+ btnRoomTilte.MouseUpEventHandler = (sender, e) =>
+ {
+ if (btnRoomTilte.IsSelected)
+ {
+ return;
+ }
+ btnRoomTilte.IsSelected = true;
+ btnRoomTilte.TextSize = CSS_FontSize.HeadlineFontSize;
+ btnFuncTitle.IsSelected = false;
+ btnFuncTitle.TextSize = CSS_FontSize.TextFontSize;
+
+ contentPageView.PageIndex = 0;
+ };
+ btnFuncTitle.MouseUpEventHandler = (sender, e) => {
+ if (btnFuncTitle.IsSelected)
+ {
+ return;
+ }
+ btnFuncTitle.IsSelected = true;
+ btnFuncTitle.TextSize = CSS_FontSize.HeadlineFontSize;
+ btnRoomTilte.IsSelected = false;
+ btnRoomTilte.TextSize = CSS_FontSize.TextFontSize;
+ contentPageView.PageIndex = 1;
+ };
+ }
#endregion
+
+ /// <summary>
+ /// 鍏抽棴鎵撳紑鍏ㄩ儴閫変腑绫诲瀷鍔熻兘
+ /// </summary>
+ void LoadEvent_SwitchFunction(Button btn, ShowFunction functionCategory)
+ {
+ btn.MouseUpEventHandler = (sender, e) => {
+ btn.IsSelected = !btn.IsSelected;
+ var onoff = btn.IsSelected ? "on" : "off";
+ switch (functionCategory)
+ {
+ case ShowFunction.AC:
+ foreach(var f in FunctionList.List.aCs)
+ {
+ f.trait_on_off.curValue = onoff;
+ //Control.Send(CommandType_A.write, f);
+ Dictionary<string, string> d = new Dictionary<string, string>();
+ d.Add("on_off", f.trait_on_off.curValue.ToString());
+ Control.Ins.SendWriteCommand(f, d);
+ }
+ break;
+ case ShowFunction.Curtain:
+ //foreach (var f in FunctionList.List.curtains)
+ //{
+ // f.trait_on_off.value = onoff;
+ // //Control.Send(CommandType_A.write, f);
+ // Dictionary<string, string> d = new Dictionary<string, string>();
+ // d.Add("percent", "100");
+ // Control.SendWriteCommand(f, d);
+ //}
+ break;
+ case ShowFunction.Light:
+ foreach (var f in FunctionList.List.lights)
+ {
+ f.trait_on_off.curValue = onoff;
+ //Control.Send(CommandType_A.write, f);
+ Dictionary<string, string> d = new Dictionary<string, string>();
+ d.Add("on_off", f.trait_on_off.curValue.ToString());
+ Control.Ins.SendWriteCommand(f, d);
+ }
+ break;
+ }
+
+ };
+ }
+
+
+ /// <summary>
+ /// 绐楀笜鍏ㄥ紑鍏ㄥ叧
+ /// </summary>
+ void LoadEvent_CurtainSwitch(Button btnClose, Button btnOpen)
+ {
+ btnOpen.MouseUpEventHandler = (sender, e) =>
+ {
+ DB_ResidenceData.Instance.GlobalCurtainStatus = true;
+ btnOpen.IsSelected = true;
+ btnClose.IsSelected = false;
+ foreach (var f in FunctionList.List.curtains)
+ {
+ f.trait_on_off.curValue = "on";
+ f.percent = 100;
+ Dictionary<string, string> d = new Dictionary<string, string>();
+ d.Add("on_off", f.trait_on_off.curValue.ToString());
+ Control.Ins.SendWriteCommand(f, d);
+ }
+ };
+
+ btnClose.MouseUpEventHandler = (sender, e) =>
+ {
+ DB_ResidenceData.Instance.GlobalCurtainStatus = false;
+ btnClose.IsSelected = true;
+ btnOpen.IsSelected = false;
+ foreach (var f in FunctionList.List.curtains)
+ {
+ f.trait_on_off.curValue = "off";
+ f.percent = 0;
+ Dictionary<string, string> d = new Dictionary<string, string>();
+ d.Add("on_off", f.trait_on_off.curValue.ToString());
+ Control.Ins.SendWriteCommand(f, d);
+ }
+ };
+
+
+ }
}
}
--
Gitblit v1.8.0