From 2bf5ec775cb57d8015bee58c745a1e48081ff1b1 Mon Sep 17 00:00:00 2001
From: 黄学彪 <hxb@hdlchina.com.cn>
Date: 星期二, 15 十月 2019 11:06:05 +0800
Subject: [PATCH] 首次合并了全部的代码

---
 ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs |  763 ++++++++++++++++++++++++++++++++--------------------------
 1 files changed, 419 insertions(+), 344 deletions(-)

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs
index ed9afe6..fba4234 100755
--- a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs
+++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs
@@ -16,7 +16,7 @@
         /// <summary>
         /// 鍒楄〃鎺т欢
         /// </summary>
-        private VerticalScrolViewLayout listView = null;
+        private VerticalFrameControl listView = null;
         /// <summary>
         /// 鎴愬憳淇℃伅
         /// </summary>
@@ -42,7 +42,7 @@
             this.memberShardInfo.SubAccountDistributedMark = this.memberResult.SubAccountDistributedMark;
 
             //璁剧疆澶撮儴淇℃伅
-            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uHadSharedContent));
+            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uShared2));
 
             //娣诲姞鍥炬爣
             var btnAdd = new MostRightIconControl(69, 69);
@@ -56,387 +56,462 @@
             btnAdd.InitControl();
 
             //鍒濆鍖栦腑閮ㄤ俊鎭�
-            //this.InitMiddleFrame();
+            this.InitMiddleFrame();
         }
 
-        ///// <summary>
-        ///// 鍒濆鍖栦腑閮ㄤ俊鎭�
-        ///// </summary>
-        //private void InitMiddleFrame()
-        //{
-        //    //娓呯┖bodyFrame
-        //    this.ClearBodyFrame();
+        /// <summary>
+        /// 鍒濆鍖栦腑閮ㄤ俊鎭�
+        /// </summary>
+        private void InitMiddleFrame()
+        {
+            //娓呯┖bodyFrame
+            this.ClearBodyFrame();
 
-        //    //鍖哄煙鍒楄〃
-        //    var btnTitle = new NormalViewControl(1000, true);
-        //    btnTitle.X = ControlCommonResourse.XXLeft;
-        //    btnTitle.TextID = R.MyInternationalizationString.uAreaList;
-        //    btnTitle.Y = Application.GetRealHeight(30);
-        //    bodyFrameLayout.AddChidren(btnTitle);
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //鑾峰彇鎴愬憳鐨勫叡浜垪琛�
+                var result = await this.GetMemberShardContentListAndSetToLocation();
+                if (result == false)
+                {
+                    return;
+                }
+                //浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃
+                this.GetMemberShardContentListFromLocal();
+                //鍒濆鍖栧尯鍩熷垪琛�
+                this.InitAreaListRow();
 
-        //    this.listView = new VerticalScrolViewLayout();
-        //    listView.Y = btnTitle.Bottom + Application.GetRealHeight(30);
-        //    listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(30) - btnTitle.Bottom;
-        //    bodyFrameLayout.AddChidren(listView);
-
-        //    HdlThreadLogic.Current.Run(async () =>
-        //    {
-        //        //鑾峰彇鎴愬憳鐨勫叡浜垪琛�(杩斿洖鏂囦欢鐨勫悕瀛楀拰涓婚敭)
-        //        var result = await this.GetMemberShardContentListAndSetToLocation();
-        //        if (result == false)
-        //        {
-        //            return;
-        //        }
-        //        //浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃
-        //        this.GetMemberShardContentListFromLocal();
-        //        //鍒濆鍖栧尯鍩熷垪琛�
-        //        this.InitAreaListRow();
-
-        //    });
-        //}
+            });
+        }
 
         #endregion
 
-        //#region 鈻� 鍖哄煙鍒楄〃___________________________
+        #region 鈻� 鍖哄煙鍒楄〃___________________________
 
-        ///// <summary>
-        ///// 鍒濆鍖栧尯鍩熷垪琛�
-        ///// </summary>
-        //private void InitAreaListRow()
-        //{
-        //    if (memberShardInfo.dicShardRoom.Count == 0)
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            if (bodyFrameLayout != null)
-        //            {
-        //                bodyFrameLayout.RemoveAll();
-        //                //璇烽厤缃叡浜澶�
-        //                var btnMsg = new MsgViewControl(bodyFrameLayout.Width, false);
-        //                btnMsg.Gravity = Gravity.CenterVertical;
-        //                btnMsg.TextID = R.MyInternationalizationString.uPleaseConfigureShardDeviceMsg;
-        //                bodyFrameLayout.AddChidren(btnMsg);
-        //            }
-        //        });
-        //        return;
-        //    }
-        //    foreach (var room in memberShardInfo.dicShardRoom.Values)
-        //    {
-        //        Application.RunOnMainThread(() =>
-        //        {
-        //            if (bodyFrameLayout != null)
-        //            {
-        //                this.AddRoomRow(room);
-        //            }
-        //        });
-        //    }
-        //}
+        /// <summary>
+        /// 鍒濆鍖栧尯鍩熷垪琛�
+        /// </summary>
+        private void InitAreaListRow()
+        {
+            if (memberShardInfo.dicShardRoom.Count == 0)
+            {
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    //鏄剧ず娌℃湁鍒嗕韩鏁版嵁妯″紡
+                    this.ShowNotShardMode();
+                });
+            }
+            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);
+                }
 
-        ///// <summary>
-        ///// 娣诲姞鎴块棿琛�
-        ///// </summary>
-        ///// <param name="room"></param>
-        //private void AddRoomRow(Common.Room room)
-        //{
-        //    var row = new StatuRowLayout(listView);
-        //    //鎴块棿鍚�
-        //    var btnName = new RowCenterView(false);
-        //    btnName.Text = room.Name;
-        //    row.AddChidren(btnName);
+                HdlThreadLogic.Current.RunMain(() =>
+                {
+                    bodyFrameLayout.RemoveAll();
 
-        //    var btnDelete = new RowDeleteButton();
-        //    row.AddRightView(btnDelete);
-        //    btnDelete.MouseUpEventHandler += (sender, e) =>
-        //    {
-        //        //纭畾绉婚櫎璇ュ叡浜尯鍩燂紵
-        //        string msg = Language.StringByID(R.MyInternationalizationString.uDeleteShardAreaMsg);
-        //        this.ShowConfirmMsg(msg, "DoDeleteShardContentByRoom", room);
-        //    };
+                    this.listView = new VerticalFrameControl(29);
+                    listView.Height = bodyFrameLayout.Height;
+                    bodyFrameLayout.AddChidren(listView);
 
-        //    row.AddRightArrow();
+                    //娣诲姞鍚勮嚜妤煎眰鐨勬埧闂村垪琛�
+                    foreach (var floorId in dicGroup.Keys)
+                    {
+                        this.AddRoomListRow(floorId, dicGroup[floorId]);
+                    }
+                });
+            }
+        }
 
-        //    row.MouseUpEvent += (sender, e) =>
-        //    {
-        //        var form = new SearchConfigureSharedMainForm();
-        //        form.AddForm(room, memberResult, memberShardInfo);
-        //    };
-        //}
-        //#endregion
+        /// <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);
 
-        //#region 鈻� 鍒犻櫎鍏变韩鍖哄煙_______________________
+            //妤煎眰
+            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
+                {
+                    btnFloor.Text = "UnKnown";
+                }
+            }
 
-        ///// <summary>
-        ///// 鍒犻櫎鍏变韩鍖哄煙
-        ///// </summary>
-        ///// <param name="room">鎸囧畾瑕佸垹闄ょ殑鍏变韩鍖哄煙</param>
-        //public void DoDeleteShardContentByRoom(Common.Room room)
-        //{
-        //    //鑾峰彇鍏ㄩ儴璁惧
-        //    var listDevice = new List<CommonDevice>();
-        //    foreach (var deviceUi in room.DeviceUIList)
-        //    {
-        //        var device = deviceUi.CommonDevice;
-        //        if (device == null)
-        //        {
-        //            var byteData = HdlShardLogic.Current.GetShardFileContent(deviceUi.DeviceFileName);
-        //            if (byteData == null)
-        //            {
-        //                continue;
-        //            }
-        //            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);
-        //    }
+            for (int i = 0; i < listRoom.Count; i++)
+            {
+                var room = listRoom[i];
+                var frameRow = new RowLayoutControl(frameBack.rowSpace / 2);
+                frameBack.AddChidren(frameRow);
+                //鍥炬爣
+                var btnIcon = frameRow.frameTable.AddLeftIcon(81);
+                btnIcon.UnSelectedImagePath = "Item/RoomIcon.png";
+                //鍚嶇О
+                var btnName = frameRow.frameTable.AddLeftCaption(room.Name, 600);
+                btnName.TextSize = 15;
+                //鍙崇澶�
+                frameRow.frameTable.AddRightArrow();
+                if (i != listRoom.Count - 1)
+                {
+                    //搴曠嚎
+                    frameRow.frameTable.AddBottomLine();
+                }
+                frameRow.frameTable.ButtonClickEvent += (sender, e) =>
+                {
+                };
 
-        //    HdlThreadLogic.Current.Run(async () =>
-        //    {
-        //        //鎵ц鍒犻櫎
-        //        var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, room, listDevice, listScene);
-        //        if (result == true)
-        //        {
-        //            Application.RunOnMainThread(() =>
-        //            {
-        //                //閲嶆柊鍒锋柊鐣岄潰
-        //                this.InitMiddleFrame();
-        //            });
-        //        }
-        //    });
-        //}
+                //鍒犻櫎
+                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
 
-        //#endregion
+        #region 鈻� 鍒犻櫎鍏变韩鍖哄煙_______________________
 
-        //#region 鈻� 鑾峰彇鎴愬憳鍏变韩鍒楄〃___________________
+        /// <summary>
+        /// 鍒犻櫎鍏变韩鍖哄煙
+        /// </summary>
+        /// <param name="room">鎸囧畾瑕佸垹闄ょ殑鍏变韩鍖哄煙</param>
+        public void DoDeleteShardContentByRoom(Common.Room room)
+        {
+            //鑾峰彇鍏ㄩ儴璁惧
+            var listDevice = new List<CommonDevice>();
+            foreach (var deviceUi in room.DeviceUIList)
+            {
+                var device = deviceUi.CommonDevice;
+                if (device == null)
+                {
+                    string deviceFile = deviceUi.FileName.Replace("DeviceUI_", string.Empty);
+                    var byteData = HdlShardLogic.Current.GetShardFileContent(deviceFile);
+                    if (byteData == null)
+                    {
+                        continue;
+                    }
+                    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);
+            }
 
-        ///// <summary>
-        ///// 鑾峰彇鎴愬憳鍏变韩鍒楄〃鐒跺悗淇濆瓨鍒版湰鍦�
-        ///// </summary>
-        ///// <returns></returns>
-        //private async Task<bool> GetMemberShardContentListAndSetToLocation()
-        //{
-        //    if (this.memberShardInfo.Refresh == false)
-        //    {
-        //        return true;
-        //    }
-        //    this.memberShardInfo.Refresh = false;
+            HdlThreadLogic.Current.RunThread(async () =>
+            {
+                //鎵ц鍒犻櫎
+                var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, room, listDevice, listScene);
+                if (result == true)
+                {
+                    HdlThreadLogic.Current.RunMain(() =>
+                    {
+                        //閲嶆柊鍒锋柊鐣岄潰
+                        this.InitMiddleFrame();
+                    });
+                }
+            });
+        }
 
-        //    //寮�鍚繘搴︽潯
-        //    this.ShowProgressBar();
+        #endregion
 
-        //    var infoPra = new
-        //    {
-        //        DistributedMark = memberResult.SubAccountDistributedMark,
-        //        HouseDistributedMark = Shared.Common.Config.Instance.HomeId,
-        //        IsOtherAccountControl = Common.Config.Instance.isAdministrator
-        //    };
-        //    var result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeDataShare/GetShareDataBySubAccount", false, infoPra);
-        //    if (result == null)
-        //    {
-        //        //鍏抽棴杩涘害鏉�
-        //        this.CloseProgressBar(ShowReLoadMode.YES);
-        //        return false;
-        //    }
-        //    var listData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ReceiveShardInfoResult>>(result);
-        //    //鍏堟竻绌哄叡浜枃浠跺す
-        //    HdlShardLogic.Current.ClearShardDirectory();
+        #region 鈻� 鑾峰彇鎴愬憳鍏变韩鍒楄〃___________________
 
-        //    var listMark = new List<string>();
-        //    foreach (var data in listData)
-        //    {
-        //        //鎬ц兘浼樺寲锛氬鏋滄湰鍦版嫢鏈夎繖涓枃浠剁殑璇�,鐩存帴浣跨敤閭d釜鏂囦欢
-        //        string fileName = data.ShareName;
-        //        //璁板綍璧峰畠鐨勪富閿�
-        //        memberShardInfo.dicAllShardKeys[fileName] = data.DistributedMark;
+        /// <summary>
+        /// 鑾峰彇鎴愬憳鍏变韩鍒楄〃鐒跺悗淇濆瓨鍒版湰鍦�
+        /// </summary>
+        /// <returns></returns>
+        private async Task<bool> GetMemberShardContentListAndSetToLocation()
+        {
+            if (this.memberShardInfo.Refresh == false)
+            {
+                return true;
+            }
+            this.memberShardInfo.Refresh = false;
 
-        //        if (fileName.StartsWith("Room_") == true || fileName.StartsWith("Scene_") == true)
-        //        {
-        //            //鎴块棿鏂囦欢鍜屽満鏅枃浠堕渶瑕侀噸鏂板弽搴忓垪鍖�
-        //            listMark.Add(data.DistributedMark);
-        //            continue;
-        //        }
-        //        if (Shared.Common.Global.IsExistsByHomeId(fileName) == true)
-        //        {
-        //            //鍏朵粬鏂囦欢鐨勮瘽锛屽鏋滄湰鍦板瓨鍦紝鍒欎互鏈湴鏂囦欢涓哄噯
-        //            HdlShardLogic.Current.AddShardFile(fileName);
-        //            continue;
-        //        }
-        //        listMark.Add(data.DistributedMark);
-        //    }
+            //寮�鍚繘搴︽潯
+            this.ShowProgressBar();
 
-        //    //灏嗗垎浜殑鏁版嵁瀛樺叆鏈湴,杩斿洖鐨勬槸鏂囦欢鍚嶅瓧(寮傚父鏃惰繑鍥瀗ull)
-        //    var listFile = await HdlShardLogic.Current.SetShardFileToLocation(listMark);
-        //    if (listFile == null)
-        //    {
-        //        //鍏抽棴杩涘害鏉�
-        //        this.CloseProgressBar(ShowReLoadMode.YES);
-        //        return false;
-        //    }
-        //    //鍏抽棴杩涘害鏉�
-        //    this.CloseProgressBar();
+            var infoPra = new
+            {
+                DistributedMark = memberResult.SubAccountDistributedMark,
+                HouseDistributedMark = Shared.Common.Config.Instance.HomeId,
+                IsOtherAccountControl = Common.Config.Instance.isAdministrator
+            };
+            var result = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeDataShare/GetShareDataBySubAccount", false, infoPra);
+            if (result == null)
+            {
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar(ShowReLoadMode.YES);
+                return false;
+            }
+            var listData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ReceiveShardInfoResult>>(result);
+            //鍏堟竻绌哄叡浜枃浠跺す
+            HdlShardLogic.Current.ClearShardDirectory();
 
-        //    return true;
-        //}
+            var listMark = new List<string>();
+            foreach (var data in listData)
+            {
+                //鎬ц兘浼樺寲锛氬鏋滄湰鍦版嫢鏈夎繖涓枃浠剁殑璇�,鐩存帴浣跨敤閭d釜鏂囦欢
+                string fileName = data.ShareName;
+                //璁板綍璧峰畠鐨勪富閿�
+                memberShardInfo.dicAllShardKeys[fileName] = data.DistributedMark;
 
-        ///// <summary>
-        ///// 浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃
-        ///// </summary>
-        //private void GetMemberShardContentListFromLocal()
-        //{
-        //    memberShardInfo.dicShardRoom = new Dictionary<string, Common.Room>();
+                if (fileName.StartsWith("Room_") == true || fileName.StartsWith("Scene_") == true)
+                {
+                    //鎴块棿鏂囦欢鍜屽満鏅枃浠堕渶瑕侀噸鏂板弽搴忓垪鍖�
+                    listMark.Add(data.DistributedMark);
+                    continue;
+                }
+                if (Shared.Common.Global.IsExistsByHomeId(fileName) == true)
+                {
+                    //鍏朵粬鏂囦欢鐨勮瘽锛屽鏋滄湰鍦板瓨鍦紝鍒欎互鏈湴鏂囦欢涓哄噯
+                    HdlShardLogic.Current.AddShardFile(fileName);
+                    continue;
+                }
+                listMark.Add(data.DistributedMark);
+            }
 
-        //    var listFile = HdlShardLogic.Current.GetLocalAllShardFile();
-        //    foreach (string fileName in listFile)
-        //    {
-        //        if (fileName.StartsWith("Room_") == true)
-        //        {
-        //            var byteData = HdlShardLogic.Current.GetShardFileContent(fileName);
-        //            if (byteData == null)
-        //            {
-        //                continue;
-        //            }
-        //            string valueData = System.Text.Encoding.UTF8.GetString(byteData);
-        //            var roomTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Room>(valueData);
-        //            memberShardInfo.dicShardRoom[fileName] = roomTemp;
+            //灏嗗垎浜殑鏁版嵁瀛樺叆鏈湴,杩斿洖鐨勬槸鏂囦欢鍚嶅瓧(寮傚父鏃惰繑鍥瀗ull)
+            var listFile = await HdlShardLogic.Current.SetShardFileToLocation(listMark);
+            if (listFile == null)
+            {
+                //鍏抽棴杩涘害鏉�
+                this.CloseProgressBar(ShowReLoadMode.YES);
+                return false;
+            }
+            //鍏抽棴杩涘害鏉�
+            this.CloseProgressBar();
 
-        //            if (memberShardInfo.dicAllMemberShard.ContainsKey(fileName) == false)
-        //            {
-        //                //鍏堝垵濮嬪寲鎴块棿
-        //                memberShardInfo.dicAllMemberShard[fileName] = new HashSet<string>();
-        //            }
-        //        }
-        //    }
-        //    //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�)
-        //    this.InitRoomAttributeData();
-        //}
+            return true;
+        }
 
-        ///// <summary>
-        ///// 鍒濆鍖栨埧闂寸殑灞炴�у璞″叏閮ㄧ殑鏈湴鏂囦欢
-        ///// </summary>
-        //private void InitRoomAttributeData()
-        //{
-        //    //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�)
-        //    foreach (var tempRoom in memberShardInfo.dicShardRoom.Values)
-        //    {
-        //        var listShard = memberShardInfo.dicAllMemberShard[tempRoom.FileName];
-        //        listShard.Clear();
-        //        //娣诲姞鎴块棿
-        //        listShard.Add(tempRoom.FileName);
+        /// <summary>
+        /// 浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃
+        /// </summary>
+        private void GetMemberShardContentListFromLocal()
+        {
+            memberShardInfo.dicShardRoom = new Dictionary<string, Common.Room>();
 
-        //        //杩樺師UI璁惧瀵硅薄
-        //        tempRoom.DeviceUIList.Clear();
-        //        foreach (string uiPath in tempRoom.DeviceUIFilePathList)
-        //        {
-        //            var byteData = HdlShardLogic.Current.GetShardFileContent(uiPath);
-        //            if (byteData == null)
-        //            {
-        //                continue;
-        //            }
-        //            string valueData = System.Text.Encoding.UTF8.GetString(byteData);
-        //            var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.DeviceUI>(valueData);
-        //            tempRoom.DeviceUIList.Add(tempUi);
+            var listFile = HdlShardLogic.Current.GetLocalAllShardFile();
+            //璁惧鏂囦欢(鍒嗕韩鐨�,鑰屼笉鏄湰鍦扮殑)
+            var dicDeviceFile = new Dictionary<string, string>();
+            //鍏堝垵濮嬪寲鎴块棿
+            foreach (string fileName in listFile)
+            {
+                if (fileName.StartsWith("Room_") == true)
+                {
+                    var byteData = HdlShardLogic.Current.GetShardFileContent(fileName);
+                    if (byteData == null)
+                    {
+                        continue;
+                    }
+                    string valueData = System.Text.Encoding.UTF8.GetString(byteData);
+                    var roomTemp = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.Room>(valueData);
+                    memberShardInfo.dicShardRoom[fileName] = roomTemp;
 
-        //            //璁惧UI
-        //            listShard.Add(tempUi.FileName);
-        //            //璁惧
-        //            listShard.Add(tempUi.DeviceFileName);
-        //        }
-        //        //杩樺師鍦烘櫙瀵硅薄
-        //        tempRoom.SceneUIList.Clear();
-        //        foreach (string uiPath in tempRoom.SceneUIFilePathList)
-        //        {
-        //            var byteData = HdlShardLogic.Current.GetShardFileContent(uiPath);
-        //            if (byteData == null)
-        //            {
-        //                continue;
-        //            }
-        //            string valueData = System.Text.Encoding.UTF8.GetString(byteData);
-        //            var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(valueData);
-        //            tempRoom.SceneUIList.Add(tempUi);
+                    if (memberShardInfo.dicAllMemberShard.ContainsKey(fileName) == false)
+                    {
+                        memberShardInfo.dicAllMemberShard[fileName] = new HashSet<string>();
+                    }
+                }
+                else if (fileName.StartsWith("Device_") == true)
+                {
+                    //璁惧鏂囦欢
+                    string[] MyArry = fileName.Split(new string[] { "_" }, StringSplitOptions.RemoveEmptyEntries);
+                    if (MyArry.Length == 4)
+                    {
+                        string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(MyArry[2], Convert.ToInt32(MyArry[3]));
+                        dicDeviceFile[mainKeys] = fileName;
+                    }
+                }
+            }
 
-        //            //鍦烘櫙鐨勪富閿�
-        //            listShard.Add(tempUi.FileName);
-        //            //浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛�
-        //            this.GetSceneBindFileName(tempUi, ref listShard);
-        //        }
-        //    }
-        //}
+            //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�)
+            foreach (var tempRoom in memberShardInfo.dicShardRoom.Values)
+            {
+                var listShard = memberShardInfo.dicAllMemberShard[tempRoom.FileName];
+                listShard.Clear();
+                //娣诲姞鎴块棿
+                listShard.Add(tempRoom.FileName);
 
-        //#endregion
+                //杩樺師璁惧瀵硅薄
+                tempRoom.DeviceUIList.Clear();
+                foreach (string uiPath in tempRoom.DeviceUIFilePathList)
+                {
+                    string deviceFile = uiPath.Replace("DeviceUI_", string.Empty);
+                    if (HdlShardLogic.Current.IsFileExists(deviceFile) == false)
+                    {
+                        continue;
+                    }
+                    tempRoom.DeviceUIList.Add(Common.LocalDevice.Current.GetDeviceUI(uiPath));
+                    //璁惧
+                    listShard.Add(deviceFile);
+                }
+                //杩樺師鍦烘櫙瀵硅薄
+                tempRoom.SceneUIList.Clear();
+                foreach (string uiPath in tempRoom.SceneUIFilePathList)
+                {
+                    var byteData = HdlShardLogic.Current.GetShardFileContent(uiPath);
+                    if (byteData == null)
+                    {
+                        continue;
+                    }
+                    string valueData = System.Text.Encoding.UTF8.GetString(byteData);
+                    var tempUi = Newtonsoft.Json.JsonConvert.DeserializeObject<Common.SceneUI>(valueData);
+                    tempRoom.SceneUIList.Add(tempUi);
 
-        //#region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+                    //鍦烘櫙鐨勪富閿�
+                    listShard.Add(tempUi.FileName);
+                    //浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛�
+                    this.GetSceneBindFileName(tempUi, dicDeviceFile, ref listShard);
+                }
+            }
+        }
 
-        ///// <summary>
-        ///// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
-        ///// </summary>
-        //public override void FormActionAgainEvent()
-        //{
-        //    //涓嶈鍒犻櫎杩欎釜鍑芥暟
-        //    base.FormActionAgainEvent();
-        //    //閲嶆柊鍒锋柊鐣岄潰
-        //    this.InitMiddleFrame();
-        //}
+        /// <summary>
+        /// 浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛�
+        /// </summary>
+        /// <param name="scene">鍦烘櫙</param>
+        /// <param name="dicDeviceFile">鍒嗕韩鐨勮澶囨枃浠�</param>
+        /// <param name="listFile">鏂囦欢鍒楄〃(閲岄潰瀛樼殑鏄澶嘦I鏂囦欢鍜岃澶囨枃浠跺拰鍦烘櫙鏂囦欢)</param>
+        private void GetSceneBindFileName(Common.SceneUI scene, Dictionary<string, string> dicDeviceFile, ref HashSet<string> listFile)
+        {
+            foreach (var data in scene.AddSceneMemberDataList)
+            {
+                //璁惧
+                if (data.Type == 0)
+                {
+                    var mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(data.DeviceAddr, data.Epoint);
+                    if (dicDeviceFile.ContainsKey(mainKeys) == true && listFile.Contains(dicDeviceFile[mainKeys]) == false)
+                    {
+                        listFile.Add(dicDeviceFile[mainKeys]);
+                    }
+                }
+                if (data.Type == 1)
+                {
+                    var sceneTemp = new Common.SceneUI();
+                    sceneTemp.Id = data.ElseScenesId;
+                    if (listFile.Contains(sceneTemp.FileName))
+                    {
+                        listFile.Add(sceneTemp.FileName);
+                    }
+                }
+            }
+        }
 
-        //#endregion
+        #endregion
 
-        //#region 鈻� 涓�鑸柟娉昣__________________________
+        #region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
 
-        ///// <summary>
-        ///// 浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛�
-        ///// </summary>
-        ///// <param name="scene">鍦烘櫙</param>
-        ///// <param name="listFile">鏂囦欢鍒楄〃(閲岄潰瀛樼殑鏄澶嘦I鏂囦欢鍜岃澶囨枃浠跺拰鍦烘櫙鏂囦欢)</param>
-        //private void GetSceneBindFileName(Common.SceneUI scene, ref HashSet<string> listFile)
-        //{
-        //    foreach (var data in scene.AddSceneMemberDataList)
-        //    {
-        //        //璁惧
-        //        if (data.Type == 0)
-        //        {
-        //            var device = Common.LocalDevice.Current.GetDevice(data.DeviceAddr, data.Epoint);
-        //            if (device != null)
-        //            {
-        //                string uiName = "DeviceUI_" + device.FilePath;
-        //                if (listFile.Contains(uiName) == false)
-        //                {
-        //                    listFile.Add(uiName);
-        //                    listFile.Add(device.FilePath);
-        //                }
-        //            }
-        //        }
-        //        if (data.Type == 1)
-        //        {
-        //            var sceneTemp = Common.Room.CurrentRoom.GetSceneUIBySceneId(data.ElseScenesId);
-        //            if (sceneTemp != null && listFile.Contains(sceneTemp.FileName))
-        //            {
-        //                listFile.Add(sceneTemp.FileName);
-        //            }
-        //        }
-        //    }
-        //}
-        //#endregion
+        /// <summary>
+        /// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+        /// </summary>
+        public override int FormActionAgainEvent()
+        {
+            //閲嶆柊鍒锋柊鐣岄潰
+            this.InitMiddleFrame();
+            return 1;
+        }
 
-        //#region 鈻� 缁撴瀯浣揰____________________________
+        #endregion
 
-        ///// <summary>
-        ///// 鎺ユ敹鍒嗕韩鏁版嵁
-        ///// </summary>
-        //private class ReceiveShardInfoResult
-        //{
-        //    /// <summary>
-        //    /// 鏂囦欢鍚嶅瓧
-        //    /// </summary>
-        //    public string ShareName = string.Empty;
-        //    /// <summary>
-        //    /// 涓婚敭
-        //    /// </summary>
-        //    public string DistributedMark = string.Empty;
-        //}
+        #region 鈻� 涓�鑸柟娉昣__________________________
 
-        //#endregion
+        /// <summary>
+        /// 鏄剧ず娌℃湁鍒嗕韩鏁版嵁妯″紡
+        /// </summary>
+        private void ShowNotShardMode()
+        {
+            bodyFrameLayout.RemoveAll();
+            //鍥剧墖
+            var btnPic = new PicViewControl(383, 279);
+            btnPic.Gravity = Gravity.CenterHorizontal;
+            btnPic.Y = Application.GetRealHeight(498);
+            btnPic.UnSelectedImagePath = "Item/NotShardPic.png";
+            bodyFrameLayout.AddChidren(btnPic);
+
+            //杩樻病鏈夊叡浜尯鍩熺粰鎴愬憳{0}鍙偣鍑诲彸涓婅鈥�+鈥濇坊鍔�
+            string msg = Language.StringByID(R.MyInternationalizationString.uNotShardComtentMsg);
+            string[] Arry = msg.Split(new string[] { "{0}" }, StringSplitOptions.RemoveEmptyEntries);
+            var btnMsg1 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(50), false);
+            btnMsg1.Y = Application.GetRealHeight(962);
+            btnMsg1.TextAlignment = TextAlignment.Center;
+            btnMsg1.TextSize = 12;
+            btnMsg1.TextColor = UserCenterColor.Current.TextGrayColor1;
+            btnMsg1.Text = Arry[0];
+            bodyFrameLayout.AddChidren(btnMsg1);
+            if (Arry.Length > 1)
+            {
+                var btnMsg2 = new NormalViewControl(bodyFrameLayout.Width, Application.GetRealHeight(50), false);
+                btnMsg2.Y = btnMsg1.Bottom;
+                btnMsg2.TextAlignment = TextAlignment.Center;
+                btnMsg2.TextSize = 12;
+                btnMsg2.TextColor = UserCenterColor.Current.TextGrayColor1;
+                btnMsg2.Text = Arry[1];
+                bodyFrameLayout.AddChidren(btnMsg2);
+            }
+        }
+
+        #endregion
+
+        #region 鈻� 缁撴瀯浣揰____________________________
+
+        /// <summary>
+        /// 鎺ユ敹鍒嗕韩鏁版嵁
+        /// </summary>
+        private class ReceiveShardInfoResult
+        {
+            /// <summary>
+            /// 鏂囦欢鍚嶅瓧
+            /// </summary>
+            public string ShareName = string.Empty;
+            /// <summary>
+            /// 涓婚敭
+            /// </summary>
+            public string DistributedMark = string.Empty;
+        }
+
+        #endregion
     }
 }

--
Gitblit v1.8.0