| | |
| | | /// <summary>
|
| | | /// 配置新共享内容的主界面
|
| | | /// </summary>
|
| | | public class ConfigureNewSharedListRoomForm : UserCenterCommonForm
|
| | | public class ConfigureNewSharedListRoomForm : EditorCommonForm
|
| | | {
|
| | | #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; |
| | | /// <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.uAddShared)); |
| | | |
| | | //初始化中部信息 |
| | | this.InitMiddleFrame(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 初始化中部信息 |
| | | /// </summary> |
| | | private void InitMiddleFrame() |
| | | { |
| | | bodyFrameLayout.RemoveAll();
|
| | |
|
| | | //区域列表
|
| | | var btnTitle = new TitleViewControl(1000, true);
|
| | | btnTitle.TextID = R.MyInternationalizationString.uAreaList;
|
| | | btnTitle.Y = Application.GetRealHeight(30);
|
| | | bodyFrameLayout.AddChidren(btnTitle);
|
| | | //设置头部信息
|
| | | base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddShared));
|
| | |
|
| | | this.listView = new VerticalScrolViewLayout(); |
| | | listView.Y = btnTitle.Bottom + Application.GetRealHeight(30); |
| | | listView.Height = bodyFrameLayout.Height - Application.GetRealHeight(30) - btnTitle.Bottom; |
| | | bodyFrameLayout.AddChidren(listView); |
| | | |
| | | new System.Threading.Thread(() =>
|
| | | {
|
| | | //初始化区域列表
|
| | | this.InitAreaListRow();
|
| | | })
|
| | | { IsBackground = true }.Start(); |
| | | //初始化中部信息
|
| | | //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);
|
| | |
|
| | | // new System.Threading.Thread(() =>
|
| | | // {
|
| | | // //初始化区域列表
|
| | | // this.InitAreaListRow();
|
| | | // })
|
| | | // { IsBackground = true }.Start();
|
| | | //}
|
| | |
|
| | | #endregion
|
| | |
|
| | | #region ■ 区域列表___________________________
|
| | | //#region ■ 区域列表___________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 初始化区域列表
|
| | | /// </summary>
|
| | | private void InitAreaListRow()
|
| | | {
|
| | | bool hadShard = false;
|
| | | foreach (var room in Shared.Common.Room.Lists)
|
| | | {
|
| | | if (this.CheckCanShowRow(room) == false)
|
| | | {
|
| | | //检测能否显示该房间
|
| | | continue;
|
| | | }
|
| | | hadShard = true;
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | this.AddRoomRow(room);
|
| | | });
|
| | | }
|
| | | if (hadShard == false)
|
| | | {
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | bodyFrameLayout.RemoveAll();
|
| | | //全部区域无可共享的设备
|
| | | var btnMsg = new MsgViewControl(bodyFrameLayout.Width, false);
|
| | | btnMsg.Gravity = Gravity.CenterVertical;
|
| | | btnMsg.TextID = R.MyInternationalizationString.uNotShardDeviceInAllRoomMsg;
|
| | | bodyFrameLayout.AddChidren(btnMsg);
|
| | | });
|
| | | }
|
| | | }
|
| | | ///// <summary>
|
| | | ///// 初始化区域列表
|
| | | ///// </summary>
|
| | | //private void InitAreaListRow()
|
| | | //{
|
| | | // bool hadShard = false;
|
| | | // foreach (var room in Shared.Common.Room.Lists)
|
| | | // {
|
| | | // if (this.CheckCanShowRow(room) == false)
|
| | | // {
|
| | | // //检测能否显示该房间
|
| | | // continue;
|
| | | // }
|
| | | // hadShard = true;
|
| | | // Application.RunOnMainThread(() =>
|
| | | // {
|
| | | // if (this.Parent != null)
|
| | | // {
|
| | | // this.AddRoomRow(room);
|
| | | // }
|
| | | // });
|
| | | // }
|
| | | // if (hadShard == false)
|
| | | // {
|
| | | // Application.RunOnMainThread(() =>
|
| | | // {
|
| | | // if (bodyFrameLayout != null)
|
| | | // {
|
| | | // bodyFrameLayout.RemoveAll();
|
| | | // //全部区域无可共享的设备
|
| | | // var btnMsg = new MsgViewControl(bodyFrameLayout.Width, false);
|
| | | // btnMsg.Gravity = Gravity.CenterVertical;
|
| | | // btnMsg.TextID = R.MyInternationalizationString.uNotShardDeviceInAllRoomMsg;
|
| | | // bodyFrameLayout.AddChidren(btnMsg);
|
| | | // }
|
| | | // });
|
| | | // }
|
| | | //}
|
| | |
|
| | | /// <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);
|
| | | ///// <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);
|
| | |
|
| | | row.AddRightIconControl();
|
| | | // row.AddRightArrow();
|
| | |
|
| | | //分享
|
| | | var btnShard = new RowEditorButton();
|
| | | btnShard.TextID = R.MyInternationalizationString.uShared;
|
| | | row.AddRightView(btnShard);
|
| | | btnShard.MouseUpEventHandler += (sender, e) =>
|
| | | {
|
| | | //确定共享该区域?
|
| | | string msg = Language.StringByID(R.MyInternationalizationString.uConfirmShardRoomContent);
|
| | | this.ShowConfirmMsg(msg, "DoSharedContentByRoom", room);
|
| | | };
|
| | | // //分享
|
| | | // var btnShard = new RowEditorButton();
|
| | | // btnShard.TextID = R.MyInternationalizationString.uShared;
|
| | | // row.AddRightView(btnShard);
|
| | | // btnShard.MouseUpEventHandler += (sender, e) =>
|
| | | // {
|
| | | // //确定共享该区域?
|
| | | // string msg = Language.StringByID(R.MyInternationalizationString.uConfirmShardRoomContent);
|
| | | // this.ShowConfirmMsg(msg, "DoSharedContentByRoom", room);
|
| | | // };
|
| | |
|
| | | row.MouseUpEvent += (sender, e) =>
|
| | | {
|
| | | var form = new ConfigureNewSharedMainForm();
|
| | | this.AddForm(form, room, memberResult, memberShardInfo);
|
| | | };
|
| | | }
|
| | | // row.MouseUpEvent += (sender, e) =>
|
| | | // {
|
| | | // var form = new ConfigureNewSharedMainForm();
|
| | | // form.AddForm(room, memberResult, memberShardInfo);
|
| | | // };
|
| | | //}
|
| | |
|
| | | /// <summary>
|
| | | /// 检测该房间能否显示
|
| | | /// </summary>
|
| | | /// <param name="room"></param>
|
| | | /// <returns></returns>
|
| | | private bool CheckCanShowRow(Common.Room room)
|
| | | {
|
| | | if (room.DeviceUIList.Count == 0 && room.SceneUIList.Count == 0)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | if (room.IsLove == true)
|
| | | {
|
| | | return false;
|
| | | }
|
| | | if (memberShardInfo.dicAllMemberShard.ContainsKey(room.FileName) == false)
|
| | | {
|
| | | //没有这个房间
|
| | | return true;
|
| | | }
|
| | | var listCheck = memberShardInfo.dicAllMemberShard[room.FileName];
|
| | | foreach (var deviceUi in room.DeviceUIList)
|
| | | {
|
| | | if (deviceUi.CommonDevice == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | if (listCheck.Contains(deviceUi.CommonDevice.FilePath) == false)
|
| | | {
|
| | | //存在未分享的设备的话,此房间可以显示
|
| | | return true;
|
| | | }
|
| | | }
|
| | | foreach (var sceneUi in room.SceneUIList)
|
| | | {
|
| | | if (sceneUi == null)
|
| | | {
|
| | | continue;
|
| | | }
|
| | | if (listCheck.Contains(sceneUi.FileName) == false)
|
| | | {
|
| | | //存在未分享的场景的话,此房间可以显示
|
| | | return true;
|
| | | }
|
| | | }
|
| | | return false;
|
| | | }
|
| | | ///// <summary>
|
| | | ///// 检测该房间能否显示
|
| | | ///// </summary>
|
| | | ///// <param name="room"></param>
|
| | | ///// <returns></returns>
|
| | | //private bool CheckCanShowRow(Common.Room room)
|
| | | //{
|
| | | // if (room.DeviceUIList.Count == 0 && room.SceneUIList.Count == 0)
|
| | | // {
|
| | | // return false;
|
| | | // }
|
| | | // if (room.IsLove == true)
|
| | | // {
|
| | | // return false;
|
| | | // }
|
| | | // if (memberShardInfo.dicAllMemberShard.ContainsKey(room.FileName) == false)
|
| | | // {
|
| | | // //没有这个房间
|
| | | // return true;
|
| | | // }
|
| | | // var listCheck = memberShardInfo.dicAllMemberShard[room.FileName];
|
| | | // foreach (var deviceUi in room.DeviceUIList)
|
| | | // {
|
| | | // if (deviceUi.CommonDevice == null)
|
| | | // {
|
| | | // continue;
|
| | | // }
|
| | | // if (listCheck.Contains(deviceUi.CommonDevice.FilePath) == false)
|
| | | // {
|
| | | // //存在未分享的设备的话,此房间可以显示
|
| | | // return true;
|
| | | // }
|
| | | // }
|
| | | // foreach (var sceneUi in room.SceneUIList)
|
| | | // {
|
| | | // if (sceneUi == null)
|
| | | // {
|
| | | // continue;
|
| | | // }
|
| | | // if (listCheck.Contains(sceneUi.FileName) == false)
|
| | | // {
|
| | | // //存在未分享的场景的话,此房间可以显示
|
| | | // return true;
|
| | | // }
|
| | | // }
|
| | | // return false;
|
| | | //}
|
| | |
|
| | | #endregion
|
| | | //#endregion
|
| | |
|
| | | #region ■ 分享指定区域_______________________
|
| | | //#region ■ 分享指定区域_______________________
|
| | |
|
| | | /// <summary>
|
| | | /// 执行分分享指定区域
|
| | | /// </summary>
|
| | | /// <param name="room">指定要分享的房间</param>
|
| | | public void DoSharedContentByRoom(Common.Room room)
|
| | | {
|
| | | if (memberShardInfo.dicAllMemberShard.ContainsKey(room.FileName) == false)
|
| | | {
|
| | | memberShardInfo.dicAllMemberShard[room.FileName] = new HashSet<string>();
|
| | | }
|
| | | //重复检测用
|
| | | var listCheck = memberShardInfo.dicAllMemberShard[room.FileName];
|
| | | //获取全部设备
|
| | | var listDevice = new List<CommonDevice>();
|
| | | foreach (var deviceUi in room.DeviceUIList)
|
| | | {
|
| | | var device = deviceUi.CommonDevice; |
| | | if (device == null || listCheck.Contains(device.FilePath) == true)
|
| | | {
|
| | | //异常,或者已经分享了的,不再显示
|
| | | continue;
|
| | | }
|
| | | listDevice.Add(device);
|
| | | }
|
| | | //获取全部场景
|
| | | var listScene = new List<Common.SceneUI>();
|
| | | foreach (var sceneUi in room.SceneUIList)
|
| | | { |
| | | if (sceneUi == null || listCheck.Contains(sceneUi.FileName) == true)
|
| | | {
|
| | | //异常,或者已经分享了的,不再显示
|
| | | continue;
|
| | | }
|
| | | listScene.Add(sceneUi);
|
| | | }
|
| | | ///// <summary>
|
| | | ///// 执行分分享指定区域
|
| | | ///// </summary>
|
| | | ///// <param name="room">指定要分享的房间</param>
|
| | | //public void DoSharedContentByRoom(Common.Room room)
|
| | | //{
|
| | | // if (memberShardInfo.dicAllMemberShard.ContainsKey(room.FileName) == false)
|
| | | // {
|
| | | // memberShardInfo.dicAllMemberShard[room.FileName] = new HashSet<string>();
|
| | | // }
|
| | | // //重复检测用
|
| | | // var listCheck = memberShardInfo.dicAllMemberShard[room.FileName];
|
| | | // //获取全部设备
|
| | | // var listDevice = new List<CommonDevice>();
|
| | | // foreach (var deviceUi in room.DeviceUIList)
|
| | | // {
|
| | | // var device = deviceUi.CommonDevice;
|
| | | // if (device == null || listCheck.Contains(device.FilePath) == true)
|
| | | // {
|
| | | // //异常,或者已经分享了的,不再显示
|
| | | // continue;
|
| | | // }
|
| | | // listDevice.Add(device);
|
| | | // }
|
| | | // //获取全部场景
|
| | | // var listScene = new List<Common.SceneUI>();
|
| | | // foreach (var sceneUi in room.SceneUIList)
|
| | | // {
|
| | | // if (sceneUi == null || listCheck.Contains(sceneUi.FileName) == true)
|
| | | // {
|
| | | // //异常,或者已经分享了的,不再显示
|
| | | // continue;
|
| | | // }
|
| | | // listScene.Add(sceneUi);
|
| | | // }
|
| | |
|
| | | new System.Threading.Thread(async () =>
|
| | | {
|
| | | //执行上传
|
| | | var result = await HdlShardLogic.Current.DoUploadSharedContent(memberShardInfo, room, listDevice, listScene);
|
| | | if (result == true)
|
| | | {
|
| | | //分享成功
|
| | | string msg = Language.StringByID(R.MyInternationalizationString.uShardSuccess);
|
| | | this.ShowTip(msg);
|
| | | // new System.Threading.Thread(async () =>
|
| | | // {
|
| | | // //执行上传
|
| | | // var result = await HdlShardLogic.Current.DoUploadSharedContent(memberShardInfo, room, listDevice, listScene);
|
| | | // if (result == true)
|
| | | // {
|
| | | // //分享成功
|
| | | // string msg = Language.StringByID(R.MyInternationalizationString.uShardSuccess);
|
| | | // this.ShowMassage(msg);
|
| | |
|
| | | Application.RunOnMainThread(() =>
|
| | | {
|
| | | //重新刷新界面
|
| | | this.InitMiddleFrame();
|
| | | });
|
| | | }
|
| | | })
|
| | | { IsBackground = true }.Start();
|
| | | }
|
| | | // Application.RunOnMainThread(() =>
|
| | | // {
|
| | | // if (this.Parent != null)
|
| | | // {
|
| | | // //重新刷新界面
|
| | | // this.InitMiddleFrame();
|
| | | // }
|
| | | // });
|
| | | // }
|
| | | // })
|
| | | // { IsBackground = true }.Start();
|
| | | //}
|
| | |
|
| | | #endregion
|
| | | //#endregion
|
| | |
|
| | | #region ■ 界面重新激活事件___________________ |
| | | //#region ■ 界面重新激活事件___________________
|
| | |
|
| | | /// <summary>
|
| | | /// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
|
| | | /// </summary> |
| | | public override void FormActionAgainEvent()
|
| | | {
|
| | | //重新刷新界面
|
| | | this.InitMiddleFrame();
|
| | | }
|
| | | ///// <summary>
|
| | | ///// 自身的上层界面关闭后,它自身处于最上层时,触发的事件
|
| | | ///// </summary>
|
| | | //public override void FormActionAgainEvent()
|
| | | //{
|
| | | // //重新刷新界面
|
| | | // this.InitMiddleFrame();
|
| | | //}
|
| | |
|
| | | #endregion
|
| | | //#endregion
|
| | |
|
| | | #region ■ 结构体_____________________________
|
| | | //#region ■ 结构体_____________________________
|
| | |
|
| | | /// <summary>
|
| | | /// 接收分享数据
|
| | | /// </summary>
|
| | | private class MemberShardInfoResult
|
| | | {
|
| | | /// <summary>
|
| | | /// 文件名字
|
| | | /// </summary>
|
| | | public string ShareName = string.Empty;
|
| | | /// <summary>
|
| | | /// 主键
|
| | | /// </summary>
|
| | | public string DistributedMark = string.Empty;
|
| | | }
|
| | | ///// <summary>
|
| | | ///// 接收分享数据
|
| | | ///// </summary>
|
| | | //private class MemberShardInfoResult
|
| | | //{
|
| | | // /// <summary>
|
| | | // /// 文件名字
|
| | | // /// </summary>
|
| | | // public string ShareName = string.Empty;
|
| | | // /// <summary>
|
| | | // /// 主键
|
| | | // /// </summary>
|
| | | // public string DistributedMark = string.Empty;
|
| | | //}
|
| | |
|
| | | #endregion
|
| | | //#endregion
|
| | | }
|
| | | }
|