From 351bdda734832d821a9764b0cde8be5d83c4ec50 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期四, 01 十二月 2022 09:56:25 +0800
Subject: [PATCH] 2022年12月01日09:56:23

---
 ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs |  310 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 310 insertions(+), 0 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs
new file mode 100644
index 0000000..a328d0f
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlControlLogic.cs
@@ -0,0 +1,310 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+
+namespace Shared.Phone.UserCenter
+{
+    /// <summary>
+    /// 鎺т欢鐨勯�昏緫
+    /// </summary>
+    public class HdlControlLogic
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鎺т欢鐨勯�昏緫
+        /// </summary>
+        private static HdlControlLogic m_Current = null;
+        /// <summary>
+        /// 鎺т欢鐨勯�昏緫
+        /// </summary>
+        public static HdlControlLogic Current
+        {
+            get
+            {
+                if (m_Current == null)
+                {
+                    m_Current = new HdlControlLogic();
+                }
+                return m_Current;
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 璁$畻鎺т欢鐪熷疄澶у皬___________________
+
+        /// <summary>
+        /// 璁$畻鍥剧墖鐨勭湡瀹為珮瀹藉害
+        /// </summary>
+        /// <param name="i_size"></param>
+        /// <returns></returns>
+        public int GetPictrueRealSize(int i_size)
+        {
+            return Application.GetRealWidth(i_size);
+        }
+
+        /// <summary>
+        /// 璁$畻鐪熷疄瀹藉害(鍙兘浠ュ悗浼氬彉鍔�,鎵�浠ュ0鏄庡嚭鏉ユ湁鐢ㄥ)
+        /// </summary>
+        /// <param name="i_size"></param>
+        /// <returns></returns>
+        public int GetRealWidth(int i_size)
+        {
+            return Application.GetRealWidth(i_size);
+        }
+
+        /// <summary>
+        /// 璁$畻鐪熷疄楂樺害搴�(鍙兘浠ュ悗浼氬彉鍔�,鎵�浠ュ0鏄庡嚭鏉ユ湁鐢ㄥ)
+        /// </summary>
+        /// <param name="i_size"></param>
+        /// <returns></returns>
+        public int GetRealHeight(int i_size)
+        {
+            return Application.GetRealHeight(i_size);
+        }
+
+        /// <summary>
+        /// 璁$畻鐪熷疄澶у皬(杩欎釜涓滆タ鏈夌壒娈婄敤澶�,鑰冭檻鍒板姞闀垮瀷灞忓箷鐨勬帶浠�,璋冪敤姝ゆ柟娉�)
+        /// </summary>
+        /// <param name="i_size"></param>
+        /// <returns></returns>
+        public int GetRealSizeEx(int i_size)
+        {
+            return Application.GetRealWidth(i_size);
+        }
+
+        #endregion
+
+        #region 鈻� 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛╛____________
+
+        /// <summary>
+        /// 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛�(褰撹繕娌℃湁鎴块棿鏃�,浼氳繑鍥瀎alse)
+        /// </summary>
+        /// <param name="RoomKey">榛樿閫夋嫨鐨勬埧闂翠富閿�</param>
+        /// <param name="titleText">鏍囬淇℃伅</param>
+        /// <param name="SelectRoomEvent">纭閫夋嫨鎴块棿鐨勫洖璋冨嚱鏁�(鎴块棿ID,鎴块棿鍚�(浼氭嫾涓婃ゼ灞�))</param>
+        public bool ShowBottomListRoomView(string RoomKey, string titleText, Action<string, string> SelectRoomEvent)
+        {
+            //妤煎眰鍒楄〃鍚嶅瓧
+            var listFloorName = new List<string>();
+            //妤煎眰鍒楄〃涓婚敭
+            var listFloorKeys = new List<string>();
+            //鎴块棿鍚嶅瓧
+            var listRoomName = new List<List<string>>();
+            //鎴块棿涓婚敭
+            var listRoomKeys = new List<List<string>>();
+
+            //鍒濆鍖栨埧闂村垪琛ㄦ暟鎹�
+            bool result = this.InitRoomListData(ref listFloorName, ref listFloorKeys, ref listRoomName, ref listRoomKeys);
+            if (result == false)
+            {
+                return false;
+            }
+
+            var room = HdlRoomLogic.Current.GetRoomById(RoomKey);
+            int index1 = room != null ? listFloorKeys.IndexOf(room.FloorId) : 0;
+            if (index1 == -1) { index1 = 0; }
+            int index2 = listRoomKeys[index1].IndexOf(RoomKey);
+            if (index2 == -1) { index2 = 0; }
+
+            if (listFloorKeys.Count == 0)
+            {
+                //鏃犳ゼ灞傛ā寮�
+                PickerView.Show(listRoomName[0], (value) =>
+                {
+                    RoomKey = listRoomKeys[0][value];
+                    string roomName = string.Empty;
+                    if (RoomKey != string.Empty)
+                    {
+                        //鎴块棿
+                        roomName = listRoomName[0][value];
+                    }
+                    else
+                    {
+                        roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+                    }
+                    SelectRoomEvent?.Invoke(RoomKey, roomName);
+
+                }, index2, titleText,
+                Language.StringByID(R.MyInternationalizationString.uFinish),
+                Language.StringByID(R.MyInternationalizationString.uCancel));
+            }
+            else
+            {
+                //鏈夋ゼ灞傛ā寮�
+                PickerView.ShowSecondary(listFloorName, listRoomName, (value1, value2) =>
+                {
+                    RoomKey = listRoomKeys[value1][value2];
+                    string roomName = string.Empty;
+                    if (RoomKey != string.Empty)
+                    {
+                        //妤煎眰+鎴块棿
+                        roomName = listFloorName[value1] + " " + listRoomName[value1][value2];
+                    }
+                    else
+                    {
+                        roomName = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+                    }
+                    SelectRoomEvent?.Invoke(RoomKey, roomName);
+
+                }, index1, index2, titleText,
+                Language.StringByID(R.MyInternationalizationString.uFinish),
+                Language.StringByID(R.MyInternationalizationString.uCancel));
+            }
+            return true;
+        }
+
+        /// <summary>
+        /// 鍒濆鍖栨埧闂村垪琛ㄦ暟鎹�
+        /// </summary>
+        /// <param name="listFloorName">妤煎眰鍒楄〃鍚嶅瓧</param>
+        /// <param name="listFloorKeys">妤煎眰鍒楄〃涓婚敭</param>
+        /// <param name="listRoomName">鎴块棿鍚嶅瓧</param>
+        /// <param name="listRoomKeys">鎴块棿涓婚敭</param>
+        private bool InitRoomListData(ref List<string> listFloorName, ref List<string> listFloorKeys, ref List<List<string>> listRoomName, ref List<List<string>> listRoomKeys)
+        {
+            var dicFloor = HdlRoomLogic.Current.GetFloorSortList();
+            if (dicFloor.Count == 0)
+            {
+                //绗竴浣嶉粯璁ゆ坊鍔犳湭鍒嗛厤
+                var listKeys = new List<string>() { "" };
+                var listName = new List<string>() { Language.StringByID(R.MyInternationalizationString.uUndistributed) };
+                //鎴块棿鍚嶅瓧鍜屼富閿敹闆�
+                var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(string.Empty, false);
+                foreach (var myRoom in listRoom)
+                {
+                    listName.Add(myRoom.Name);
+                    listKeys.Add(myRoom.Id);
+                }
+                listRoomName.Add(listName);
+                listRoomKeys.Add(listKeys);
+            }
+            else
+            {
+                //绗竴浣嶉粯璁ゆ坊鍔犳湭鍒嗛厤(鏈垎閰嶆斁鍦ㄦゼ灞傞偅涓彍鍗�)
+                var listKeys = new List<string>() { "" };
+                var listName = new List<string>() { "" };
+                listRoomName.Add(listName);
+                listRoomKeys.Add(listKeys);
+                listFloorKeys.Add("");
+                listFloorName.Add(Language.StringByID(R.MyInternationalizationString.uUndistributed));
+
+                foreach (string fKeys in dicFloor.Keys)
+                {
+                    var listRoom = HdlRoomLogic.Current.GetFloorSortRoom(fKeys, false);
+                    if (listRoom.Count > 0)
+                    {
+                        //妤煎眰鍚嶅瓧鍜屼富閿敹闆�
+                        listFloorKeys.Add(fKeys);
+                        listFloorName.Add(dicFloor[fKeys]);
+                        //鎴块棿鍚嶅瓧鍜屼富閿敹闆�
+                        listName = new List<string>();
+                        listKeys = new List<string>();
+                        foreach (var myRoom in listRoom)
+                        {
+                            listName.Add(myRoom.Name);
+                            listKeys.Add(myRoom.Id);
+                        }
+                        listRoomName.Add(listName);
+                        listRoomKeys.Add(listKeys);
+                    }
+                }
+            }
+            //娌℃湁寤虹珛鎴块棿
+            if (listFloorKeys.Count == 0 && listRoomKeys.Count == 0)
+            {
+                return false;
+            }
+            return true;
+        }
+
+        #endregion
+
+        #region 鈻� 鏄剧ず搴曢儴寮圭獥鐨勬埧闂村垪琛╛____________
+
+        /// <summary>
+        /// 鏄剧ず搴曢儴寮圭獥鐨勬椂闂村垪琛�
+        /// </summary>
+        /// <param name="hKey">閫夋嫨鐨勬椂闂翠富閿�</param>
+        /// <param name="mKey">閫夋嫨鐨勫垎閽熶富閿�</param> 
+        /// <param name="titleText">鏍囬淇℃伅</param>
+        /// <param name="SelectTimeEvent">纭閫夋嫨鏃堕棿鐨勫洖璋冨嚱鏁� </param>
+        /// <param name="type">鏅捐。鏋舵椂闂� 锛�1鐑樺共锛�2:椋庡共锛�3娑堟瘨</param>
+        public bool ShowBottomListTimeView(string hKey, string mKey, string titleText, Action<string, string> SelectTimeEvent, int type)
+        {
+            //灏忔椂鍒楄〃鍚嶅瓧
+            var listHourName = new List<string>();
+            //灏忔椂鍒楄〃涓婚敭
+            var listHourKeys = new List<string>();
+            //鍒嗛挓鍚嶅瓧 
+            var listMinName = new List<List<string>>();
+            //鍒嗛挓涓婚敭 
+            var listMinKeys = new List<List<string>>();
+            var listKeys = new List<string>() { "" };
+            var listName = new List<string>() { "" };
+            if (type == 3)
+            {
+                //鍚嶅瓧鍜岄敭鏀堕泦
+                for (int i = 1; i < 31; i++)
+                {
+                    listName.Add(i.ToString());
+                    listKeys.Add(i.ToString());
+                }
+                listMinName.Add(listName);
+                listMinKeys.Add(listKeys);
+            }
+            else
+            {
+                //鍚嶅瓧鍜岄敭鏀堕泦
+                for (int i = 0; i < 4; i++)
+                {
+                    listHourName.Add(i.ToString());
+                    listHourKeys.Add((i + 1).ToString());
+                }
+                for (int i = 0; i < 60; i++)
+                {
+                    listName.Add(i.ToString());
+                    listKeys.Add((i + 1).ToString());
+                }
+                listMinName.Add(listName);
+                listMinKeys.Add(listKeys);
+            }
+
+            int index1 = hKey != null ? int.Parse(hKey) : 0;
+            int index2 = mKey != null ? int.Parse(mKey) : 0;
+
+            if (type == 3)
+            {
+                //鍙湁鍒嗛挓锛屾秷姣掓椂闂�
+                PickerView.Show(
+                    listMinName[0],
+                    (value) =>
+                    {
+                        mKey = listMinKeys[0][value];
+                        SelectTimeEvent?.Invoke(mKey, listMinKeys[0][value]);
+                    },
+                    index2,
+                    titleText,
+                Language.StringByID(R.MyInternationalizationString.uFinish),
+                Language.StringByID(R.MyInternationalizationString.uCancel));
+            }
+            else
+            {
+                //鏈夊皬鏃讹紝鍒嗛挓
+                PickerView.ShowSecondary(listHourName, listMinName, (value1, value2) =>
+                {
+                    mKey = listMinKeys[value1][value2];
+                    string name = listHourName[value1] + " " + listMinName[value1][value2];
+                    SelectTimeEvent?.Invoke(mKey, name);
+
+                }, index1, index2, titleText,
+                Language.StringByID(R.MyInternationalizationString.uFinish),
+                Language.StringByID(R.MyInternationalizationString.uCancel));
+            }
+            return true;
+        }
+        #endregion
+
+    }
+}

--
Gitblit v1.8.0