using System;
|
using Shared;
|
using HDL_ON.Entity;
|
using HDL_ON.UI.CSS;
|
using System.Collections.Generic;
|
using HDL_ON.DAL;
|
using HDL_ON.DAL.Server;
|
|
namespace HDL_ON.UI
|
{
|
public class MemberFunctionPermissionPage : FrameLayout
|
{
|
MemberFunctionPermissionPage bodyView;
|
|
Button btnChooseAll;
|
|
ResidenceMemberInfo memberInfo;
|
|
Room room;
|
|
List<Function> funs;
|
|
|
public MemberFunctionPermissionPage(ResidenceMemberInfo mInfo, Room r)
|
{
|
bodyView = this;
|
memberInfo = mInfo;
|
room = r;
|
funs = new List<Function>();
|
if (memberInfo.CurShareData.ShareDataBytes != null)
|
{
|
funs = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Function>>(
|
CommonPage.MyEncodingUTF8.GetString(memberInfo.CurShareData.ShareDataBytes));
|
}
|
}
|
public void LoadPage()
|
{
|
new TopViewDiv(bodyView, Language.StringByID(StringId.PermissionToUse)).LoadTopView();
|
|
var allRoomView = new FrameLayout()
|
{
|
Y = Application.GetRealHeight(64),
|
Height = Application.GetRealHeight(50),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
};
|
bodyView.AddChidren(allRoomView);
|
|
Button btnAllRoomText = new Button()
|
{
|
X = Application.GetRealWidth(16),
|
Width = Application.GetRealWidth(280),
|
TextID = StringId.All,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextAlignment = TextAlignment.CenterLeft,
|
};
|
allRoomView.AddChidren(btnAllRoomText);
|
|
btnChooseAll = new Button()
|
{
|
X = Application.GetRealWidth(331),
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetMinRealAverage(28),
|
Height = Application.GetMinRealAverage(28),
|
UnSelectedImagePath = "Public/ChooseIcon.png",
|
SelectedImagePath = "Public/ChooseOnIcon.png",
|
IsSelected = true,
|
};
|
allRoomView.AddChidren(btnChooseAll);
|
|
allRoomView.AddChidren(new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(49),
|
Height = Application.GetMinReal(1),
|
Width = Application.GetRealWidth(343),
|
BackgroundColor = CSS_Color.DividingLineColor,
|
});
|
|
var contentView = new VerticalScrolViewLayout()
|
{
|
Y = Application.GetRealHeight(64+50),
|
Height = Application.GetRealHeight(450),
|
};
|
bodyView.AddChidren(contentView);
|
|
foreach (var function in room.functions)
|
{
|
var roomView = new FrameLayout()
|
{
|
Height = Application.GetRealHeight(50),
|
BackgroundColor = CSS_Color.MainBackgroundColor,
|
Tag = "row"
|
};
|
contentView.AddChidren(roomView);
|
|
Button btnRoomText = new Button()
|
{
|
X = Application.GetRealWidth(16),
|
Width = Application.GetRealWidth(280),
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
TextColor = CSS_Color.FirstLevelTitleColor,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = function.name,
|
};
|
roomView.AddChidren(btnRoomText);
|
|
Button btnChoose = new Button()
|
{
|
X = Application.GetRealWidth(331),
|
Gravity = Gravity.CenterVertical,
|
Width = Application.GetMinRealAverage(28),
|
Height = Application.GetMinRealAverage(28),
|
UnSelectedImagePath = "Public/ChooseIcon.png",
|
SelectedImagePath = "Public/ChooseOnIcon.png",
|
Tag = "ChooseIcon"
|
};
|
roomView.AddChidren(btnChoose);
|
if (funs.Find((obj)=>obj.sid == function.sid) != null)
|
{
|
btnChoose.IsSelected = true;
|
funs.Add(function);
|
}
|
else
|
{
|
if (btnChooseAll.IsSelected)
|
btnChooseAll.IsSelected = false;
|
}
|
|
EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
|
{
|
btnChoose.IsSelected = !btnChoose.IsSelected;
|
if (btnChoose.IsSelected)
|
{
|
try
|
{
|
funs.Add(function);
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"Evhaaa {ex.Message}");
|
}
|
}
|
else
|
{
|
funs.Remove(function);
|
}
|
};
|
|
btnChoose.MouseUpEventHandler = eventHandler;
|
btnRoomText.MouseUpEventHandler = eventHandler;
|
roomView.MouseUpEventHandler = eventHandler;
|
|
var btnLine = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(49),
|
Height = Application.GetMinReal(1),
|
Width = Application.GetRealWidth(343),
|
BackgroundColor = CSS_Color.DividingLineColor,
|
};
|
roomView.AddChidren(btnLine);
|
}
|
|
var btnOption = new Button()
|
{
|
Y = Application.GetRealHeight(519+64),
|
Gravity = Gravity.CenterHorizontal,
|
Width = Application.GetRealWidth(220),
|
Height = Application.GetRealHeight(44),
|
BackgroundColor = CSS_Color.MainColor,
|
TextAlignment = TextAlignment.Center,
|
TextColor = CSS_Color.MainBackgroundColor,
|
TextID = StringId.Confirm,
|
TextSize = CSS_FontSize.SubheadingFontSize,
|
IsBold = true,
|
Radius = (uint) Application.GetRealWidth(22),
|
BorderColor = 0x00000000,
|
BorderWidth = 0,
|
};
|
bodyView.AddChidren(btnOption);
|
btnOption.MouseUpEventHandler = (sender, e) => {
|
var act = TipLoadingMsg(Language.StringByID(StringId.SavingPleaseWait));
|
memberInfo.CurShareData.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs));
|
EditShareData();
|
act();
|
};
|
}
|
|
void EditShareData()
|
{
|
if (memberInfo.CurShareData.ShareName == "")
|
{
|
var ssdd = new ShareData();
|
ssdd.ShareName = DB_ResidenceData.residenceData.residecenInfo.RegionID;
|
ssdd.HouseDistributedMark = DB_ResidenceData.residenceData.residecenInfo.RegionID;
|
ssdd.ShareDataBytes = CommonPage.MyEncodingUTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(funs));
|
ssdd.SubAccountDistributedMark = memberInfo.SubAccountDistributedMark;
|
ResponsePack responePack = new HttpServerRequest().AddShareData(ssdd);
|
if (responePack.StateCode.ToUpper() != "SUCCESS")
|
{
|
new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.OperationFailed), true);
|
return;
|
}
|
else
|
{
|
ssdd.DistributedMark = responePack.ResponseData.ToString();
|
}
|
memberInfo.CurShareData = ssdd;
|
}
|
else
|
{
|
UpdataShareData();
|
}
|
}
|
|
void UpdataShareData()
|
{
|
ResponsePack responePack = new HttpServerRequest().EditShareData(memberInfo.CurShareData);
|
if (responePack.StateCode.ToUpper() == "SUCCESS")
|
{
|
new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.SavedSuccessfully), true);
|
}
|
else
|
{
|
new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.OperationFailed), true);
|
}
|
}
|
|
Action TipLoadingMsg(string msg)
|
{
|
Dialog dialog = new Dialog()
|
{
|
X = Application.GetRealWidth(89),
|
Y = Application.GetRealHeight(285),
|
Width = Application.GetRealWidth(198),
|
Height = Application.GetRealHeight(98),
|
};
|
|
FrameLayout frame = new FrameLayout()
|
{
|
BackgroundColor = CSS_Color.DialogTransparentColor1,
|
Radius = (uint)Application.GetRealWidth(12),
|
};
|
dialog.AddChidren(frame);
|
|
Button btnTipIcon = new Button()
|
{
|
Gravity = Gravity.CenterHorizontal,
|
Y = Application.GetRealHeight(15),
|
Width = Application.GetRealWidth(32),
|
Height = Application.GetRealWidth(32),
|
UnSelectedImagePath = "Public/MsgIcon/LoadingIcon.png",
|
};
|
frame.AddChidren(btnTipIcon);
|
|
Button btnTipMsg = new Button()
|
{
|
Y = Application.GetRealHeight(47),
|
Height = Application.GetRealHeight(50),
|
TextAlignment = TextAlignment.Center,
|
TextSize = CSS_FontSize.TextFontSize,
|
TextColor = CSS_Color.MainBackgroundColor,
|
Text = msg,
|
};
|
frame.AddChidren(btnTipMsg);
|
|
//new System.Threading.Thread(() =>{
|
//});
|
|
dialog.Show();
|
return new Action(() => {
|
dialog.Close();
|
});
|
}
|
|
}
|
}
|