From a4924de3136289d10cabbf2f61a228387d44ded7 Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期四, 07 十一月 2019 13:48:36 +0800
Subject: [PATCH] Merge branch 'dev-tzy' into DEV_GXC

---
 ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs |  315 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 315 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..c4a6ace
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/LookSharedListRoomForm.cs
@@ -0,0 +1,315 @@
+锘縰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(async () =>
+            {
+                //鑾峰彇鎴愬憳鐨勫叡浜垪琛�
+                var result = await 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 = Common.Room.CurrentRoom.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.AddChidrenFrame(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 = Common.Room.CurrentRoom.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 deviceFile in room.DeviceUIFilePathList)
+            {
+                var byteData = HdlShardLogic.Current.GetShardFileContent(deviceFile);
+                if (byteData == null)
+                {
+                    continue;
+                }
+                var device = Newtonsoft.Json.JsonConvert.DeserializeObject<CommonDevice>(System.Text.Encoding.UTF8.GetString(byteData));
+                listDevice.Add(device);
+            }
+            //鑾峰彇鍏ㄩ儴鍦烘櫙
+            var listScene = new List<Common.SceneUI>();
+            foreach (var sceneUi in room.SceneUIList)
+            {
+                listScene.Add(sceneUi);
+            }
+
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //鎵ц鍒犻櫎
+                var result = await 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