From d6fb0646531172f23648441c224cdcccd721b894 Mon Sep 17 00:00:00 2001
From: xm <1271024303@qq.com>
Date: 星期一, 14 十二月 2020 09:59:01 +0800
Subject: [PATCH] 请合并代码,完成晾衣架最终功能。
---
ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs | 326 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 326 insertions(+), 0 deletions(-)
diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs
new file mode 100755
index 0000000..7feed80
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs
@@ -0,0 +1,326 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Text;
+using System.Threading.Tasks;
+using ZigBee.Device;
+
+namespace Shared.Phone.UserCenter.SharedContent
+{
+ /// <summary>
+ /// 鏌ョ湅宸插叡浜唴瀹圭殑鎴块棿鍒楄〃鐣岄潰鈽�
+ /// </summary>
+ public class LookSharedListRoomForm : EditorCommonForm
+ {
+ #region 鈻� 鍙橀噺澹版槑___________________________
+
+ /// <summary>
+ /// 鍒楄〃鎺т欢
+ /// </summary>
+ private VerticalFrameControl listView = null;
+ /// <summary>
+ /// 鎴愬憳淇℃伅
+ /// </summary>
+ private MemberInfoRes memberResult = null;
+ /// <summary>
+ /// 鎴愬憳鐨勫垎浜暟鎹�
+ /// </summary>
+ private MemberShardInfoData memberShardInfo = null;
+
+ #endregion
+
+ #region 鈻� 鍒濆鍖朹____________________________
+
+ /// <summary>
+ /// 鐢婚潰鏄剧ず(搴曞眰浼氬浐瀹氳皟鐢ㄦ鏂规硶锛屽�熶互瀹屾垚鐢婚潰鍒涘缓)
+ /// </summary>
+ /// <param name="i_memberResult">鎴愬憳淇℃伅</param>
+ /// <param name="i_memberShardInfo">鎴愬憳鐨勫叡浜俊鎭�</param>
+ public void ShowForm(MemberInfoRes i_memberResult, MemberShardInfoData i_memberShardInfo)
+ {
+ this.memberResult = i_memberResult;
+ this.memberShardInfo = i_memberShardInfo;
+ this.memberShardInfo.SubAccountDistributedMark = this.memberResult.SubAccountDistributedMark;
+
+ //璁剧疆澶撮儴淇℃伅
+ base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uShared2));
+
+ //娣诲姞鍥炬爣
+ var btnAdd = new MostRightIconControl(69, 69);
+ btnAdd.UnSelectedImagePath = "Item/Add.png";
+ btnAdd.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new AddNewSharedListRoomForm();
+ form.AddForm(this.memberResult, this.memberShardInfo);
+ };
+ topFrameLayout.AddChidren(btnAdd);
+ btnAdd.InitControl();
+
+ //鍒濆鍖栦腑閮ㄤ俊鎭�
+ this.InitMiddleFrame();
+ }
+
+ /// <summary>
+ /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+ /// </summary>
+ private void InitMiddleFrame()
+ {
+ //娓呯┖bodyFrame
+ this.ClearBodyFrame();
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //鑾峰彇鎴愬憳鐨勫叡浜垪琛�
+ var result = HdlShardLogic.Current.GetMemberShardContentListAndSetToLocation(memberShardInfo);
+ if (result == false)
+ {
+ //鏄剧ず閲嶆柊鍔犺浇鐨勭晫闈�
+ this.ShowReLoadView();
+ return;
+ }
+ //鍒濆鍖栧尯鍩熷垪琛�
+ this.InitAreaListRow();
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 鍖哄煙鍒楄〃___________________________
+
+ /// <summary>
+ /// 鍒濆鍖栧尯鍩熷垪琛�
+ /// </summary>
+ private void InitAreaListRow()
+ {
+ if (memberShardInfo.dicShardRoom.Count == 0)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ bodyFrameLayout.RemoveAll();
+ //杩樻病鏈夊叡浜尯鍩熺粰鎴愬憳{0}鍙偣鍑诲彸涓婅鈥�+鈥濇坊鍔�
+ string msg = Language.StringByID(R.MyInternationalizationString.uNotShardComtentMsg);
+ string[] Arry = msg.Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+ this.ShowNotDataImage(bodyFrameLayout, Arry, "Item/NotShardPic.png", 383, 279);
+ });
+ }
+ else
+ {
+ //鍚堝苟鍚屼竴妤煎眰鐨勬埧闂�
+ var dicGroup = new Dictionary<string, List<Common.Room>>();
+ foreach (var room in memberShardInfo.dicShardRoom.Values)
+ {
+ if (dicGroup.ContainsKey(room.FloorId) == false)
+ {
+ dicGroup[room.FloorId] = new List<Common.Room>();
+ }
+ dicGroup[room.FloorId].Add(room);
+ }
+
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ bodyFrameLayout.RemoveAll();
+
+ this.listView = new VerticalFrameControl(29);
+ listView.Height = bodyFrameLayout.Height;
+ bodyFrameLayout.AddChidren(listView);
+
+ //鎺掑簭妤煎眰
+ var dicSort = HdlRoomLogic.Current.GetFloorSortList();
+ foreach (var floorId in dicSort.Keys)
+ {
+ if (dicGroup.ContainsKey(floorId) == true)
+ {
+ //娣诲姞鍚勮嚜妤煎眰鐨勬埧闂村垪琛�
+ this.AddRoomListRow(floorId, dicGroup[floorId]);
+ dicGroup.Remove(floorId);
+ }
+ }
+ //娣诲姞鍚勮嚜妤煎眰鐨勬埧闂村垪琛�(杩欓噷鏄寚瀹氭ゼ灞傚苟涓嶅湪鎺掑簭璁板綍閲岄潰鐨�)
+ foreach (var floorId in dicGroup.Keys)
+ {
+ this.AddRoomListRow(floorId, dicGroup[floorId]);
+ }
+ //璋冩暣妗屽竷楂樺害
+ listView.AdjustTableHeight();
+ });
+ }
+ }
+
+ /// <summary>
+ /// 娣诲姞鎴块棿鍒楄〃琛�
+ /// </summary>
+ /// <param name="listRoom"></param>
+ private void AddRoomListRow(string floorId, List<Common.Room> listRoom)
+ {
+ var frameBack = new FrameListControl(29);
+ frameBack.BackgroundColor = UserCenterColor.Current.White;
+ frameBack.Height = 10;
+ this.listView.AddChidren(frameBack);
+
+ //妤煎眰
+ if (string.IsNullOrEmpty(floorId) == false)
+ {
+ var btnFloor = new NormalViewControl(800, 60, true);
+ btnFloor.X = ControlCommonResourse.XXLeft;
+ btnFloor.Y = Application.GetRealHeight(52);
+ btnFloor.TextColor = UserCenterColor.Current.TextColor2;
+ btnFloor.TextSize = 15;
+ frameBack.AddChidren(btnFloor);
+ if (memberShardInfo.dicShardFloor.ContainsKey(floorId) == true)
+ {
+ btnFloor.Text = memberShardInfo.dicShardFloor[floorId];
+ }
+ else if (floorId == "Other")
+ {
+ //鏈垎閰嶅尯鍩�
+ btnFloor.Text = Language.StringByID(R.MyInternationalizationString.uDeviceNotAssignedRoom);
+ }
+ else
+ {
+ btnFloor.Text = "UnKnown";
+ }
+ }
+ //鎴块棿鎺掑簭
+ var listSortRoom = HdlRoomLogic.Current.GetFloorSortRoom(floorId, false);
+ var listSort = new HashSet<string>();
+ foreach (var room in listSortRoom)
+ {
+ //鏀堕泦鐜版湁鐨勬帓搴廔D
+ listSort.Add(room.Id);
+ }
+ var dicRoom = new Dictionary<string, Common.Room>();
+ foreach (var room in listRoom)
+ {
+ //淇濆瓨闇�瑕佹樉绀哄嚭鏉ョ殑鎴块棿
+ dicRoom[room.Id] = room;
+ if (listSort.Contains(room.Id) == false)
+ {
+ //涓嶅啀鎺掑簭璁板綍鍐�,鍒欏湪灏鹃儴杩藉姞
+ listSort.Add(room.Id);
+ }
+ }
+
+ foreach(var roomId in listSort)
+ {
+ if (dicRoom.ContainsKey(roomId) == false)
+ {
+ continue;
+ }
+ var room = dicRoom[roomId];
+ dicRoom.Remove(roomId);
+
+ var frameRow = new RowLayoutControl(frameBack.rowSpace / 2);
+ frameBack.AddChidren(frameRow);
+ //鍥炬爣
+ var btnIcon = frameRow.frameTable.AddLeftIcon(81);
+ btnIcon.UnSelectedImagePath = "Item/RoomIconSelected.png";
+ //鍚嶇О
+ var btnName = frameRow.frameTable.AddLeftCaption(room.Name, 600);
+ btnName.TextSize = 15;
+ //鍙崇澶�
+ frameRow.frameTable.AddRightArrow();
+ if (dicRoom.Count != 0)
+ {
+ //搴曠嚎
+ frameRow.frameTable.AddBottomLine();
+ }
+ frameRow.frameTable.ButtonClickEvent += (sender, e) =>
+ {
+ var form = new LookSharedContentForm();
+ form.AddForm(room, memberShardInfo);
+ };
+
+ //鍒犻櫎
+ var btnDelete = new NormalViewControl(Application.GetRealWidth(184), frameRow.Height, false);
+ btnDelete.BackgroundColor = 0xfff75858;
+ btnDelete.TextSize = 12;
+ btnDelete.TextColor = UserCenterColor.Current.White;
+ btnDelete.TextAlignment = TextAlignment.Center;
+ btnDelete.TextID = R.MyInternationalizationString.uDelete;
+ frameRow.AddRightView(btnDelete);
+ btnDelete.ButtonClickEvent += (sender, e) =>
+ {
+ //纭鍒犻櫎鍏变韩鎴块棿锛�
+ string msg = Language.StringByID(R.MyInternationalizationString.uDeleteShardRoomMsg);
+ this.ShowMassage(ShowMsgType.Confirm, msg, () =>
+ {
+ //鍒犻櫎鍏变韩鍖哄煙
+ this.DoDeleteShardContentByRoom(room);
+ });
+ };
+ }
+ //璋冩暣瀛愭帶浠禙rame楂樺害
+ this.listView.AdjustChidrenFrameHeight(frameBack, Application.GetRealHeight(29));
+ }
+ #endregion
+
+ #region 鈻� 鍒犻櫎鍏变韩鍖哄煙_______________________
+
+ /// <summary>
+ /// 鍒犻櫎鍏变韩鍖哄煙
+ /// </summary>
+ /// <param name="room">鎸囧畾瑕佸垹闄ょ殑鍏变韩鍖哄煙</param>
+ public void DoDeleteShardContentByRoom(Common.Room room)
+ {
+ //鑾峰彇鍏ㄩ儴璁惧
+ var listDevice = new List<CommonDevice>();
+ foreach (var deviceKeys in room.ListDevice)
+ {
+ string deviceFile = HdlShardLogic.Current.GetShardDeviceFileName(deviceKeys);
+ if (deviceFile == string.Empty)
+ {
+ continue;
+ }
+ var byteData = HdlShardLogic.Current.GetShardFileContent(deviceFile);
+ if (byteData == null)
+ {
+ continue;
+ }
+ var device = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice>(System.Text.Encoding.UTF8.GetString(byteData));
+ device.Type = (DeviceType)device.DeviceID;
+ listDevice.Add(device);
+ }
+ //鑾峰彇鍏ㄩ儴鍦烘櫙
+ var listScene = new List<Common.SceneUI>();
+ foreach (var sceneId in room.ListSceneId)
+ {
+ var byteData = HdlShardLogic.Current.GetShardFileContent($"Scene_{sceneId}.json");
+ if (byteData == null)
+ {
+ continue;
+ }
+ var sceneUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(System.Text.Encoding.UTF8.GetString(byteData));
+ listScene.Add(sceneUi);
+ }
+
+ HdlThreadLogic.Current.RunThread(() =>
+ {
+ //鎵ц鍒犻櫎
+ var result = HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, room, listDevice, listScene);
+ if (result == true)
+ {
+ HdlThreadLogic.Current.RunMain(() =>
+ {
+ //閲嶆柊鍒锋柊鐣岄潰
+ this.InitMiddleFrame();
+ });
+ }
+ });
+ }
+
+ #endregion
+
+ #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+ /// <summary>
+ /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+ /// </summary>
+ public override int FormActionAgainEvent()
+ {
+ //閲嶆柊鍒锋柊鐣岄潰
+ this.InitMiddleFrame();
+ return 1;
+ }
+
+ #endregion
+ }
+}
--
Gitblit v1.8.0