From ed2f4a97aa48cdb4a013d2a389877f52eb3eccdf Mon Sep 17 00:00:00 2001
From: gxc <guoxuecheng@guoxuechengdeMacBook-Pro.local>
Date: 星期二, 29 十月 2019 13:15:59 +0800
Subject: [PATCH] Merge branch 'DEV_GXC' of http://172.16.1.23:6688/r/~xm/HomeApp into DEV_GXC

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

diff --git a/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs
new file mode 100755
index 0000000..ed9afe6
--- /dev/null
+++ b/ZigbeeApp/Shared/Phone/UserCenter/SharedContent/SearchConfigureSharedListRoomForm.cs
@@ -0,0 +1,442 @@
+锘縰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 SearchConfigureSharedListRoomForm : EditorCommonForm
+    {
+        #region 鈻� 鍙橀噺澹版槑___________________________
+
+        /// <summary>
+        /// 鍒楄〃鎺т欢
+        /// </summary>
+        private VerticalScrolViewLayout 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.uHadSharedContent));
+
+            //娣诲姞鍥炬爣
+            var btnAdd = new MostRightIconControl(69, 69);
+            btnAdd.UnSelectedImagePath = "Item/Add.png";
+            btnAdd.ButtonClickEvent += (sender, e) =>
+            {
+                var form = new ConfigureNewSharedListRoomForm();
+                form.AddForm(this.memberResult, this.memberShardInfo);
+            };
+            topFrameLayout.AddChidren(btnAdd);
+            btnAdd.InitControl();
+
+            //鍒濆鍖栦腑閮ㄤ俊鎭�
+            //this.InitMiddleFrame();
+        }
+
+        ///// <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);
+
+        //    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 鈻� 鍖哄煙鍒楄〃___________________________
+
+        ///// <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>
+        ///// <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);
+
+        //    var btnDelete = new RowDeleteButton();
+        //    row.AddRightView(btnDelete);
+        //    btnDelete.MouseUpEventHandler += (sender, e) =>
+        //    {
+        //        //纭畾绉婚櫎璇ュ叡浜尯鍩燂紵
+        //        string msg = Language.StringByID(R.MyInternationalizationString.uDeleteShardAreaMsg);
+        //        this.ShowConfirmMsg(msg, "DoDeleteShardContentByRoom", room);
+        //    };
+
+        //    row.AddRightArrow();
+
+        //    row.MouseUpEvent += (sender, e) =>
+        //    {
+        //        var form = new SearchConfigureSharedMainForm();
+        //        form.AddForm(room, memberResult, memberShardInfo);
+        //    };
+        //}
+        //#endregion
+
+        //#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)
+        //        {
+        //            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);
+        //    }
+
+        //    HdlThreadLogic.Current.Run(async () =>
+        //    {
+        //        //鎵ц鍒犻櫎
+        //        var result = await HdlShardLogic.Current.DoDeleteSharedContent(memberShardInfo, room, listDevice, listScene);
+        //        if (result == true)
+        //        {
+        //            Application.RunOnMainThread(() =>
+        //            {
+        //                //閲嶆柊鍒锋柊鐣岄潰
+        //                this.InitMiddleFrame();
+        //            });
+        //        }
+        //    });
+        //}
+
+        //#endregion
+
+        //#region 鈻� 鑾峰彇鎴愬憳鍏变韩鍒楄〃___________________
+
+        ///// <summary>
+        ///// 鑾峰彇鎴愬憳鍏变韩鍒楄〃鐒跺悗淇濆瓨鍒版湰鍦�
+        ///// </summary>
+        ///// <returns></returns>
+        //private async Task<bool> GetMemberShardContentListAndSetToLocation()
+        //{
+        //    if (this.memberShardInfo.Refresh == false)
+        //    {
+        //        return true;
+        //    }
+        //    this.memberShardInfo.Refresh = false;
+
+        //    //寮�鍚繘搴︽潯
+        //    this.ShowProgressBar();
+
+        //    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();
+
+        //    var listMark = new List<string>();
+        //    foreach (var data in listData)
+        //    {
+        //        //鎬ц兘浼樺寲锛氬鏋滄湰鍦版嫢鏈夎繖涓枃浠剁殑璇�,鐩存帴浣跨敤閭d釜鏂囦欢
+        //        string fileName = data.ShareName;
+        //        //璁板綍璧峰畠鐨勪富閿�
+        //        memberShardInfo.dicAllShardKeys[fileName] = data.DistributedMark;
+
+        //        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);
+        //    }
+
+        //    //灏嗗垎浜殑鏁版嵁瀛樺叆鏈湴,杩斿洖鐨勬槸鏂囦欢鍚嶅瓧(寮傚父鏃惰繑鍥瀗ull)
+        //    var listFile = await HdlShardLogic.Current.SetShardFileToLocation(listMark);
+        //    if (listFile == null)
+        //    {
+        //        //鍏抽棴杩涘害鏉�
+        //        this.CloseProgressBar(ShowReLoadMode.YES);
+        //        return false;
+        //    }
+        //    //鍏抽棴杩涘害鏉�
+        //    this.CloseProgressBar();
+
+        //    return true;
+        //}
+
+        ///// <summary>
+        ///// 浠庢湰鍦拌幏鍙栨垚鍛樼殑鍒嗕韩鍒楄〃
+        ///// </summary>
+        //private void GetMemberShardContentListFromLocal()
+        //{
+        //    memberShardInfo.dicShardRoom = new Dictionary<string, Common.Room>();
+
+        //    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;
+
+        //            if (memberShardInfo.dicAllMemberShard.ContainsKey(fileName) == false)
+        //            {
+        //                //鍏堝垵濮嬪寲鎴块棿
+        //                memberShardInfo.dicAllMemberShard[fileName] = new HashSet<string>();
+        //            }
+        //        }
+        //    }
+        //    //璁剧疆鎴块棿閲岄潰璁惧鐨刄I瀵硅薄(鍥犱负杩欎釜涓滆タ鏄弽搴忓垪鍖栧嚭鏉ョ殑,璁惧UI瀵硅薄鏄笉搴忓垪鍖栧璞�)
+        //    this.InitRoomAttributeData();
+        //}
+
+        ///// <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);
+
+        //        //杩樺師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);
+
+        //            //璁惧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);
+
+        //            //鍦烘櫙鐨勪富閿�
+        //            listShard.Add(tempUi.FileName);
+        //            //浠庡満鏅璞¢噷闈㈣幏鍙栧叏閮ㄧ殑缁戝畾鐩爣鐨勬枃浠跺悕瀛�
+        //            this.GetSceneBindFileName(tempUi, ref listShard);
+        //        }
+        //    }
+        //}
+
+        //#endregion
+
+        //#region 鈻� 鐣岄潰閲嶆柊婵�娲讳簨浠禵__________________
+
+        ///// <summary>
+        ///// 鑷韩鐨勪笂灞傜晫闈㈠叧闂悗,瀹冭嚜韬浜庢渶涓婂眰鏃�,瑙﹀彂鐨勪簨浠�
+        ///// </summary>
+        //public override void FormActionAgainEvent()
+        //{
+        //    //涓嶈鍒犻櫎杩欎釜鍑芥暟
+        //    base.FormActionAgainEvent();
+        //    //閲嶆柊鍒锋柊鐣岄潰
+        //    this.InitMiddleFrame();
+        //}
+
+        //#endregion
+
+        //#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
+
+        //#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