using System;
using HDL_ON.UI.CSS;
using Shared;
using HDL_ON.Entity;
using System.Collections.Generic;
using HDL_ON.DAL;
namespace HDL_ON.UI
{
///
/// 使用权限页面
///
public partial class MemberPermissionPage : FrameLayout
{
MemberPermissionPage bodyView;
Button btnDelMember;
VerticalScrolViewLayout roomListView;
ResidenceMemberInfo memberInfo;
Action backAction;
public MemberPermissionPage(ResidenceMemberInfo mInfo,Action action)
{
bodyView = this;
memberInfo = mInfo;
backAction = action;
}
public void LoadPage()
{
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
new TopViewDiv(bodyView, Language.StringByID(StringId.PermissionToUse)).LoadTopView();
FrameLayout headPortraitView = new FrameLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(66),
BackgroundColor = CSS_Color.MainBackgroundColor,
};
bodyView.AddChidren(headPortraitView);
ImageView userHeadImageView = new ImageView()
{
X = Application.GetRealWidth(16),
Gravity = Gravity.CenterVertical,
Width = Application.GetRealWidth(42),
Height = Application.GetRealWidth(42),
Radius = (uint)Application.GetRealWidth(21),
ImagePath = memberInfo.headImagePagePath
};
headPortraitView.AddChidren(userHeadImageView);
Button btnMemberName = new Button()
{
X = Application.GetRealWidth(70),
Width = Application.GetRealWidth(300),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
//Text = memberInfo.nickName + "(" + memberInfo.UserName + ")",
};
headPortraitView.AddChidren(btnMemberName);
string username = HDLCommon.Current.GetUserName(memberInfo.memberName);
btnMemberName.Text = memberInfo.nickName + "(" + username + ")";
#region RoomList
roomListView = new VerticalScrolViewLayout()
{
Y = Application.GetRealHeight(138),
Height = Application.GetRealHeight(471),
//BackgroundColor = CSS_Color.MainBackgroundColor,
};
bodyView.AddChidren(roomListView);
#endregion
btnDelMember = new Button()
{
Y = Application.GetRealHeight(617),
//Height = MainPage.Increase ? Application.GetRealHeight(70) : Application.GetRealHeight(50),
Height = Application.GetRealHeight(50),
TextAlignment = TextAlignment.Center,
TextSize = CSS_FontSize.SubheadingFontSize,
TextColor = CSS_Color.WarningColor,
TextID = StringId.RemoveTheMember,
BackgroundColor = CSS_Color.MainBackgroundColor,
};
bodyView.AddChidren(btnDelMember);
LoadEventList();
GetShareDataByAccount();
}
///
/// 加载房间列表,统计分享的数据
///
void ShowRoomListView()
{
roomListView.RemoveAll();
var titleView = new FrameLayout()
{
BackgroundColor = CSS_Color.MainBackgroundColor,
Height = Application.GetRealWidth(44),
};
roomListView.AddChidren(titleView);
var btnTitle = new Button()
{
X = Application.GetRealWidth(16),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.SubheadingFontSize,
TextID = StringId.UseArea,
};
titleView.AddChidren(btnTitle);
var btnLine = new Button()
{
X = Application.GetRealWidth(16),
Y = titleView.Height - Application.GetRealHeight(2),
Width = Application.GetRealWidth(360),
Height = Application.GetRealHeight(1),
BackgroundColor = CSS_Color.DividingLineColor,
};
titleView.AddChidren(btnLine);
//---------------------------------------------
//未分配区域的功能
List allFunctionList = FunctionList.List.GetDeviceFunctionList();
//未分配区域的功能
List unallocatedList = new List();
foreach (var function in allFunctionList)
{
function.roomIds.Remove(null);
if (function.roomIds.Count > 0)
{
//allocatedList.Add(function);
}
else
{
unallocatedList.Add(function);
}
}
//移除当前住宅已经不存在的功能
for (int i = 0; i < memberInfo.CurResidenceShareDate.Count;)
{
var sd = memberInfo.CurResidenceShareDate[i];
if (allFunctionList.Find((obj) => obj.deviceId == sd.shareTypeId) == null)
{
//new DAL.Server.HttpServerRequest().DeleteShareData(sd);
//待确认是否同步云端删除分享
memberInfo.CurResidenceShareDate.Remove(sd);
}
else
{
i++;
}
}
foreach (var room in SpatialInfo.CurrentSpatial.RoomList)
{
var roomView = new RowLayout()
{
Height = Application.GetRealWidth(50),
BackgroundColor = CSS_Color.MainBackgroundColor,
LineColor = CSS_Color.MainBackgroundColor,
};
roomListView.AddChidren(roomView);
var btnRoomName = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealWidth(4),
Width = Application.GetRealWidth(330),
Height = Application.GetRealWidth(24),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
Text = room.roomName,
};
roomView.AddChidren(btnRoomName);
//计算已经加入房间的设备数量
int addCount = 0;
foreach (var sd in memberInfo.CurResidenceShareDate)
{
if (room.GetRoomFunctions(false).Find((obj) => obj.deviceId == sd.shareTypeId) != null)
{
addCount++;
}
}
////移除当前住宅已经不存在的功能
//for (int i = 0; i < memberInfo.CurResidenceShareDate.Count;)
//{
// var sd = memberInfo.CurResidenceShareDate[i];
// if (allFunctionList.Find((obj) => obj.deviceId == sd.shareTypeId) == null)
// {
// //new DAL.Server.HttpServerRequest().DeleteShareData(sd);
// memberInfo.CurResidenceShareDate.Remove(sd);
// }
// else
// {
// i++;
// }
//}
var btnFunctionCount = new Button()
{
X = Application.GetRealWidth(16),
Y = btnRoomName.Bottom,
Width = Application.GetRealWidth(330),
Height = Application.GetRealWidth(18),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
Text = addCount + "/" + room.GetRoomFunctions(false).Count.ToString(),
};
roomView.AddChidren(btnFunctionCount);
var btnRight = new Button()
{
X = Application.GetRealWidth(351),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/Right.png",
};
roomView.AddChidren(btnRight);
//分割线
var lineView = new LineView(roomView.Height - Application.GetRealHeight(1));
roomView.AddChidren(lineView);
//删除按钮
var deleteBtn = new Button()
{
TextID = StringId.Del,
BackgroundColor = CSS_Color.AuxiliaryColor2,
TextColor = CSS_Color.MainBackgroundColor,
TextSize = CSS_FontSize.TextFontSize,
};
roomView.AddRightView(deleteBtn);
deleteBtn.MouseUpEventHandler = (sender, e) =>
{
//删除事件
};
EventHandler eHandler = (sender, e) =>
{
Action refreshFunctionCount = (newCount) => {
btnFunctionCount.Text = newCount + "/" + room.GetRoomFunctions(false).Count.ToString();
};
var mmp = new MemberFunctionPermissionPage(memberInfo, room, refreshFunctionCount);
MainPage.BasePageView.AddChidren(mmp);
mmp.LoadPage(StringId.PermissionToUse);
MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
roomView.MouseUpEventHandler = eHandler;
btnRoomName.MouseUpEventHandler = eHandler;
btnRight.MouseUpEventHandler = eHandler;
btnFunctionCount.MouseUpEventHandler = eHandler;
}
//2020-12-16 加载未分配区域功能
AddNoAreaFunction(unallocatedList);
}
///
/// 添加未分配区域功能
///
///
void AddNoAreaFunction(List unallocatedList)
{
var roomView = new RowLayout()
{
Height = Application.GetRealWidth(50),
BackgroundColor = CSS_Color.MainBackgroundColor,
LineColor = CSS_Color.MainBackgroundColor,
};
roomListView.AddChidren(roomView);
var btnRoomName = new Button()
{
X = Application.GetRealWidth(16),
Y = Application.GetRealWidth(4),
Width = Application.GetRealWidth(330),
Height = Application.GetRealWidth(24),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.FirstLevelTitleColor,
TextSize = CSS_FontSize.TextFontSize,
TextID = StringId.NoAreaFunction
};
roomView.AddChidren(btnRoomName);
//计算已经加入房间的设备数量
int addCount = 0;
foreach (var sd in memberInfo.CurResidenceShareDate)
{
if (unallocatedList.Find((obj) => obj.deviceId == sd.shareTypeId) != null)
{
addCount++;
}
}
////移除当前住宅已经不存在的功能
//for (int i = 0; i < memberInfo.CurResidenceShareDate.Count;)
//{
// var sd = memberInfo.CurResidenceShareDate[i];
// if (allFunctionList.Find((obj) => obj.deviceId == sd.shareTypeId) == null)
// {
// //new DAL.Server.HttpServerRequest().DeleteShareData(sd);
// memberInfo.CurResidenceShareDate.Remove(sd);
// }
// else
// {
// i++;
// }
//}
var btnFunctionCount = new Button()
{
X = Application.GetRealWidth(16),
Y = btnRoomName.Bottom,
Width = Application.GetRealWidth(330),
Height = Application.GetRealWidth(18),
TextAlignment = TextAlignment.CenterLeft,
TextColor = CSS_Color.PromptingColor1,
TextSize = CSS_FontSize.PromptFontSize_SecondaryLevel,
Text = addCount + "/" + unallocatedList.Count.ToString(),
};
roomView.AddChidren(btnFunctionCount);
var btnRight = new Button()
{
X = Application.GetRealWidth(351),
Gravity = Gravity.CenterVertical,
Width = Application.GetMinRealAverage(16),
Height = Application.GetMinRealAverage(16),
UnSelectedImagePath = "Public/Right.png",
};
roomView.AddChidren(btnRight);
////分割线
//var lineView = new LineView(roomView.Height - Application.GetRealHeight(1));
//roomView.AddChidren(lineView);
//删除按钮
var deleteBtn = new Button()
{
TextID = StringId.Del,
BackgroundColor = CSS_Color.AuxiliaryColor2,
TextColor = CSS_Color.MainBackgroundColor,
TextSize = CSS_FontSize.TextFontSize,
};
roomView.AddRightView(deleteBtn);
deleteBtn.MouseUpEventHandler = (sender, e) =>
{
//删除事件
};
EventHandler eHandler = (sender, e) =>
{
Action refreshFunctionCount = (newCount) => {
btnFunctionCount.Text = newCount + "/" + unallocatedList.Count.ToString();
};
//var mmp = new MemberFunctionPermissionPage(memberInfo, room, refreshFunctionCount);
//MainPage.BasePageView.AddChidren(mmp);
//mmp.LoadPage(StringId.PermissionToUse);
//MainPage.BasePageView.PageIndex = MainPage.BasePageView.ChildrenCount - 1;
};
roomView.MouseUpEventHandler = eHandler;
btnRoomName.MouseUpEventHandler = eHandler;
btnRight.MouseUpEventHandler = eHandler;
btnFunctionCount.MouseUpEventHandler = eHandler;
}
}
}