From 7167334c0e89dd84827d59e726123d14776e3a09 Mon Sep 17 00:00:00 2001 From: 陈嘉乐 <cjl@hdlchina.com.cn> Date: 星期二, 16 六月 2020 11:14:13 +0800 Subject: [PATCH] 2020-06-16-1 --- HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs | 220 ++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 208 insertions(+), 12 deletions(-) diff --git a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs index d0c0e9f..1b0f8e9 100644 --- a/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs +++ b/HDL_ON/UI/UI2/2-Classification/ClassificationPageBLL.cs @@ -1,5 +1,6 @@ 锘縰sing System; using System.Collections.Generic; +using HDL_ON.Entity; using HDL_ON.UI.CSS; using Shared; @@ -7,6 +8,175 @@ { 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; + 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 && btn.Tag.ToString() == functionCategory + "_onCount") + { + string btnText = "0/0"; + switch (functionCategory) + { + case FunctionCategory.Thermostat: + switch (functionType) + { + case FunctionType.FloorHeating: + btnText = DB_ResidenceData.residenceData.functionList.floorHeatings.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.floorHeatings.Count; + break; + case FunctionType.AC: + btnText = DB_ResidenceData.residenceData.functionList.aCs.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.aCs.Count; + break; + } + break; + case FunctionCategory.Curtain: + btnText = DB_ResidenceData.residenceData.functionList.curtains.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.curtains.Count; + break; + case FunctionCategory.Light: + btnText = DB_ResidenceData.residenceData.functionList.lights.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.lights.Count; + break; + case FunctionCategory.Electrical: + btnText = DB_ResidenceData.residenceData.functionList.electricals.FindAll((obj) => obj.on_off == "on").Count + "/" + DB_ResidenceData.residenceData.functionList.electricals.Count; + break; + } + btn.Text = btnText; + } + } + } + } + } + } + } + } + } + } + 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.roomIdList.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.on_off == "on") + { + btn.Visible = true; + } + else + { + foreach (var rId in function.roomIdList) + { + var r = DB_ResidenceData.residenceData.rooms.Find(s => s.sid == rId); + var ssd = r.functions.FindAll((obj) => obj.on_off == "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 = () => + { + foreach (var f in room.functions) + { + if (f.functionCategory == FunctionCategory.Scene) + { + continue; + } + f.on_off = "off"; + Control.Send(CommandType_A.write, f); + } + btn.Visible = false; + }; + new PublicAssmebly().TipMsg(StringId.Tip, StringId.TipCloseAllFunctionInRoom, action); + }; + foreach (var f in room.functions) + { + if (f.functionCategory == FunctionCategory.Scene) + { + continue; + } + if (f.on_off == "on") + { + btn.Visible = true; + break; + } + } + } + catch (Exception ex) + { + MainPage.Log($"load close all function : {ex.Message}"); + } + } /// <summary> /// 鍔犺浇浜嬩欢鍒楄〃 @@ -72,34 +242,55 @@ #endregion /// <summary> - /// 鍏抽棴鎵撳紑鍏ㄩ儴鐏厜 + /// 鍏抽棴鎵撳紑鍏ㄩ儴閫変腑绫诲瀷鍔熻兘 /// </summary> - void LoadEvent_LightsPower(Button btn) + void LoadEvent_SwitchFunction(Button btn, ShowFunction functionCategory) { - btn.IsSelected = !btn.IsSelected; - if (btn.IsSelected) - { + btn.MouseUpEventHandler = (sender, e) => { + btn.IsSelected = !btn.IsSelected; + switch(functionCategory) + { + case ShowFunction.AC: + foreach(var f in DB_ResidenceData.residenceData.functionList.aCs) + { + f.on_off = btn.IsSelected ? "on" : "off"; + Control.Send(CommandType_A.write, f); + } + break; + case ShowFunction.Curtain: + + break; + case ShowFunction.Light: + foreach (var f in DB_ResidenceData.residenceData.functionList.lights) + { + f.on_off = btn.IsSelected ? "on" : "off"; + Control.Send(CommandType_A.write, f); + } + break; + } - } - else - { - - } + }; } + /// <summary> /// 绐楀笜鍏ㄥ紑鍏ㄥ叧 /// </summary> - void LoadEvent_CurtainSwitch(Button btnClose,Button btnOpen) + void LoadEvent_CurtainSwitch(Button btnClose, Button btnOpen) { btnOpen.MouseUpEventHandler = (sender, e) => { - if(btnOpen.IsSelected) + if (btnOpen.IsSelected) { return; } btnOpen.IsSelected = true; btnClose.IsSelected = false; + foreach (var f in DB_ResidenceData.residenceData.functionList.curtains) + { + f.on_off = "on"; + Control.Send(CommandType_A.write, f); + } }; btnClose.MouseUpEventHandler = (sender, e) => @@ -110,6 +301,11 @@ } btnClose.IsSelected = true; btnOpen.IsSelected = false; + foreach (var f in DB_ResidenceData.residenceData.functionList.curtains) + { + f.on_off = "off"; + Control.Send(CommandType_A.write, f); + } }; -- Gitblit v1.8.0