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