using System;
|
using System.Collections.Generic;
|
|
namespace Shared.SimpleControl.Phone
|
{
|
/// <summary>
|
/// 调试人员管理页面
|
/// </summary>
|
public class DebuggerManagementView : FrameLayout
|
{
|
|
/// <summary>
|
///
|
/// </summary>
|
VerticalScrolViewLayout bodyView;
|
/// <summary>
|
/// 当前住宅
|
/// </summary>
|
RegionInfoResNew currentHome;
|
/// <summary>
|
///
|
/// </summary>
|
/// <param name="SubaccountList"></param>
|
public DebuggerManagementView (RegionInfoResNew home)
|
{
|
BackgroundColor = SkinStyle.Current.MainColor;
|
this.currentHome = home;
|
}
|
|
/// <summary>
|
///
|
/// </summary>
|
public void ShowDebuggerManagementView ()
|
{
|
|
#region ---TopView---
|
FrameLayout topView = new FrameLayout () {
|
Height = Application.GetRealHeight (126),
|
BackgroundColor = SkinStyle.Current.MainColor,
|
};
|
AddChidren (topView);
|
|
var back = new Button () {
|
Y = Application.GetRealHeight (30),
|
Height = Application.GetRealHeight (90),
|
Width = Application.GetRealWidth (85),
|
UnSelectedImagePath = "Item/Back.png",
|
SelectedImagePath = "Item/BackSelected.png",
|
};
|
topView.AddChidren (back);
|
back.MouseUpEventHandler += (sender, e) => {
|
(Parent as PageLayout).PageIndex -= 1;
|
};
|
|
Button NameButton = new Button () {
|
Width = Application.GetRealWidth (400),
|
Height = Application.GetMinReal (90),
|
Text = "Debugger Management",
|
TextColor = SkinStyle.Current.TextColor1,
|
Gravity = Gravity.CenterHorizontal,
|
TextAlignment = TextAlignment.Center,
|
Y = Application.GetRealHeight (30),
|
TextSize = 20,
|
};
|
topView.AddChidren (NameButton);
|
|
Button ItemButton = new Button () {
|
Width = Application.GetRealWidth (55),
|
Height = Application.GetRealHeight (55),
|
UnSelectedImagePath = "Item/+.png",
|
SelectedImagePath = "Item/+.png",
|
Y = Application.GetRealHeight (50),
|
X = Application.GetRealWidth (Application.DesignWidth - 80),
|
};
|
topView.AddChidren (ItemButton);
|
#endregion
|
|
//2020-07-01
|
if (UserConfig.Instance.CurrentRegion != null && !string.IsNullOrEmpty (UserConfig.Instance.CurrentRegion.Name)) {
|
NameButton.Text = UserConfig.Instance.CurrentRegion.Name;
|
}
|
|
EventHandler<MouseEventArgs> addSubaccountHandler = (sender, e) => {
|
showAddDebugger ();
|
};
|
ItemButton.MouseUpEventHandler += addSubaccountHandler;
|
|
FrameLayout topUserMsgView = new FrameLayout () {
|
Y = Application.GetRealHeight (126),
|
Height = Application.GetRealHeight (175),
|
BackgroundColor = SkinStyle.Current.ViewColor
|
};
|
AddChidren (topUserMsgView);
|
|
Button btnUserIcon = new Button () {
|
X = Application.GetRealWidth (27),
|
Width = Application.GetRealWidth (96),
|
Height = Application.GetRealWidth (96),
|
Gravity = Gravity.CenterVertical,
|
Radius = 5,
|
BorderColor = SkinStyle.Current.Transparent,
|
BorderWidth = 0,
|
UnSelectedImagePath = "AccountSettings/UserIcon.png",
|
};
|
topUserMsgView.AddChidren (btnUserIcon);
|
|
Button btnUserName = new Button () {
|
X = btnUserIcon.Right + Application.GetRealWidth (20),
|
Y = Application.GetRealHeight (40),
|
Width = Application.GetRealWidth (400),
|
Height = Application.GetRealHeight (50),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor1,
|
Text = MainPage.LoginUser.Name == "" ? Language.StringByID (R.MyInternationalizationString.Account) : MainPage.LoginUser.Name,
|
};
|
topUserMsgView.AddChidren (btnUserName);
|
|
Button btnUserAccount = new Button () {
|
X = btnUserName.X,
|
Y = btnUserName.Bottom,
|
Width = btnUserName.Width,
|
Height = btnUserName.Height,
|
TextAlignment = TextAlignment.CenterLeft,
|
Text = "",
|
TextColor = SkinStyle.Current.TextColor1
|
};
|
topUserMsgView.AddChidren (btnUserAccount);
|
if (MainPage.LoginUser != null) {
|
btnUserAccount.Text += MainPage.LoginUser.AccountString;
|
}
|
|
VerticalScrolViewLayout contentView = new VerticalScrolViewLayout () {
|
Y = topUserMsgView.Bottom,
|
Height = Application.GetRealHeight (1136 - 80) - topUserMsgView.Bottom,
|
BackgroundColor = SkinStyle.Current.ViewColor,
|
ScrollEnabled = false,
|
};
|
AddChidren (contentView);
|
|
|
|
FrameLayout subaccountView = new FrameLayout () {
|
Height = Application.GetRealHeight (50),
|
BackgroundColor = SkinStyle.Current.MainColor
|
};
|
contentView.AddChidren (subaccountView);
|
|
Button btnSubaccountText = new Button () {
|
X = Application.GetRealWidth (40),
|
Width = Application.GetRealWidth (600),
|
//TextID = R.MyInternationalizationString.Subaccount,
|
Text = "Debugger permissions",
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor1,
|
};
|
subaccountView.AddChidren (btnSubaccountText);
|
|
Button btnSubaccountLine = new Button () {
|
Y = Application.GetRealHeight (105),
|
Height = Application.GetRealHeight (10),
|
BackgroundColor = SkinStyle.Current.MainColor,
|
};
|
subaccountView.AddChidren (btnSubaccountLine);
|
|
bodyView = new VerticalScrolViewLayout () {
|
Height = Application.GetRealHeight (660),
|
};
|
contentView.AddChidren (bodyView);
|
|
//addTipView ();
|
//刷新调试人员管理菜单
|
RefreshListView ();
|
}
|
|
void addTipView ()
|
{
|
var TipView = new Button () {
|
Width = LayoutParams.MatchParent,
|
Y = Application.GetRealHeight (Application.DesignHeight - 80),
|
Height = Application.GetRealHeight (80),
|
BackgroundColor = 0xFFFFFFE0,
|
TextSize = 11,
|
TextColor = 0xFF1F1F1F,
|
TextAlignment = TextAlignment.Center,
|
IsMoreLines = true,
|
Text = "Debugger permissions \n Tips: Management staff remotely access your gateway.",
|
|
};
|
AddChidren (TipView);
|
}
|
|
/// <summary>
|
/// 刷新调试人员管理菜单
|
/// </summary>
|
void RefreshListView ()
|
{
|
bodyView.RemoveAll ();
|
|
if (!string.IsNullOrEmpty (currentHome.debugStaffUserId) && currentHome.debugStaffUserId != "-1") {
|
RowLayout subaccountRowView = new RowLayout () {
|
Height = Application.GetRealHeight (110),
|
};
|
bodyView.AddChidren (subaccountRowView);
|
|
Button btnDebugTitle = new Button () {
|
X = Application.GetRealWidth (40),
|
//Y = btnSubaccountReamrk.Bottom,
|
//Height = Application.GetRealHeight(50),
|
Text = "Debugger",
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor1,
|
};
|
subaccountRowView.AddChidren (btnDebugTitle);
|
|
Button tipBtn = new Button {
|
X = Application.GetRealWidth (40),
|
Y = Application.GetRealHeight (80),
|
Height = Application.GetRealHeight (20),
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor1,
|
TextSize = 11,
|
Text = "Allows debuggers remote access to your gateway"
|
};
|
subaccountRowView.AddChidren (tipBtn);
|
|
Button btnRowLine = new Button () {
|
Y = Application.GetRealHeight (105),
|
Height = Application.GetRealHeight (5),
|
BackgroundColor = SkinStyle.Current.MainColor,
|
};
|
subaccountRowView.AddChidren (btnRowLine);
|
|
Button btnDel = new Button () {
|
TextID = R.MyInternationalizationString.Del,
|
BackgroundColor = SkinStyle.Current.DelColor
|
};
|
subaccountRowView.AddRightView (btnDel);
|
btnDel.MouseUpEventHandler += (sender2, e2) => {
|
showDeleteDebuggerAlert ();
|
};
|
|
var tempSwitch = new Button () {
|
Width = Application.GetMinRealAverage (90),
|
Height = Application.GetMinRealAverage (53),
|
X = Application.GetRealWidth (Application.DesignWidth - 90 - 20),
|
Gravity = Gravity.CenterVertical,
|
UnSelectedImagePath = "Item/SwitchClose.png",
|
SelectedImagePath = "Item/SwitchOpen.png",
|
};
|
subaccountRowView.AddChidren (tempSwitch);
|
|
tempSwitch.IsSelected = currentHome.debugPerm;
|
tempSwitch.MouseUpEventHandler += (sender3, e3) => {
|
updateDebugger (tempSwitch);
|
};
|
}
|
|
|
|
}
|
|
|
|
/// <summary>
|
/// 添加调试人员
|
/// </summary>
|
void showAddDebugger ()
|
{
|
|
Dialog dialog = new Dialog ();
|
FrameLayout subaccountDialogView = new FrameLayout () {
|
Width = Application.GetRealWidth (500),
|
//Height = Application.GetRealHeight (650 - 100),
|
Height = Application.GetRealHeight (390),
|
BackgroundColor = SkinStyle.Current.DialogColor,
|
Radius = 5,
|
BorderColor = SkinStyle.Current.Transparent,
|
BorderWidth = 0,
|
Gravity = Gravity.Center,
|
};
|
dialog.AddChidren (subaccountDialogView);
|
|
Button btnTitle = new Button () {
|
Height = Application.GetRealHeight (80),
|
BackgroundColor = SkinStyle.Current.DialogTitle,
|
TextAlignment = TextAlignment.Center,
|
//TextID = R.MyInternationalizationString.AddSubaccount,
|
Text = "Add debugger",
|
TextColor = SkinStyle.Current.DialogTextColor,
|
};
|
subaccountDialogView.AddChidren (btnTitle);
|
|
bool isChange = false;
|
if (!string.IsNullOrEmpty (currentHome.debugStaffUserId) && currentHome.debugStaffUserId != "-1") {
|
isChange = true;
|
btnTitle.Text = "Change debugger";
|
}
|
|
Button btnEmail = new Button () {
|
X = Application.GetRealWidth (40),
|
Y = btnTitle.Bottom + Application.GetRealHeight (30),
|
Width = Application.GetRealWidth (420),
|
Height = Application.GetRealHeight (40),
|
Text = "Account",
|
TextAlignment = TextAlignment.CenterLeft,
|
TextColor = SkinStyle.Current.TextColor,
|
};
|
subaccountDialogView.AddChidren (btnEmail);
|
|
EditText etEmail = new EditText () {
|
X = Application.GetRealWidth (40),
|
Y = btnEmail.Bottom,
|
Width = Application.GetRealWidth (420),
|
Height = Application.GetRealHeight (80),
|
TextColor = SkinStyle.Current.TextColor,
|
Radius = 5,
|
BorderColor = SkinStyle.Current.DialogTitle,
|
BorderWidth = 2,
|
TextAlignment = TextAlignment.Center,
|
};
|
subaccountDialogView.AddChidren (etEmail);
|
|
|
|
FrameLayout bottomView = new FrameLayout () {
|
Y = subaccountDialogView.Height - Application.GetRealHeight (90),
|
Height = Application.GetRealHeight (90),
|
BackgroundColor = SkinStyle.Current.DialogTitle,
|
};
|
subaccountDialogView.AddChidren (bottomView);
|
|
Button btnCancel = new Button () {
|
Width = Application.GetRealWidth (249),
|
TextAlignment = TextAlignment.Center,
|
TextColor = SkinStyle.Current.DialogTextColor,
|
TextID = R.MyInternationalizationString.cancel,
|
};
|
bottomView.AddChidren (btnCancel);
|
btnCancel.MouseUpEventHandler += (sender3, e3) => {
|
dialog.Close ();
|
};
|
|
Button btnBottomLine = new Button () {
|
X = btnCancel.Right,
|
Width = Application.GetRealWidth (2),
|
BackgroundColor = SkinStyle.Current.White20Transparent,
|
};
|
bottomView.AddChidren (btnBottomLine);
|
|
Button btnSaveSubaccount = new Button () {
|
X = btnBottomLine.Right,
|
Width = Application.GetRealWidth (248),
|
TextID = R.MyInternationalizationString.SAVE,
|
TextColor = SkinStyle.Current.DialogTextColor,
|
TextAlignment = TextAlignment.Center,
|
};
|
bottomView.AddChidren (btnSaveSubaccount);
|
|
btnSaveSubaccount.MouseUpEventHandler += (sender3, e3) => {
|
string addSubaccount = etEmail.Text.Trim ();
|
if (string.IsNullOrEmpty (addSubaccount)) {
|
new Tip () { MaxWidth = 250, Text = Language.StringByID (R.MyInternationalizationString.TipEntrySubaccount), Direction = AMPopTipDirection.Down, CloseTime = 3 }.Show (etEmail);
|
return;
|
}
|
MainPage.Loading.Start ("Please wait...");
|
|
System.Threading.Tasks.Task.Run (() => {
|
try {
|
|
//添加调试人员
|
var revertObj = HttpServerRequest.Current.AddDebugStaff (addSubaccount);
|
if (revertObj.Code == StateCode.SUCCESS) {
|
currentHome.debugPerm = true;
|
currentHome.debugStaffUserId = addSubaccount;
|
Application.RunOnMainThread (() => {
|
if (isChange) {
|
new Alert ("", "Changed successfully",
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
} else {
|
new Alert ("", Language.StringByID (R.MyInternationalizationString.AddedSuccessfully),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
}
|
|
dialog.Close ();
|
RefreshListView ();
|
});
|
} else {
|
//BindSubAccount错误提示
|
IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
|
}
|
|
} catch (Exception ex) {
|
Application.RunOnMainThread (() => {
|
new Alert ("", Language.StringByID (R.MyInternationalizationString.FailureToServer),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
});
|
Utlis.WriteLine (ex.ToString ());
|
} finally {
|
Application.RunOnMainThread (() => {
|
MainPage.Loading.Hide ();
|
});
|
}
|
});
|
};
|
|
dialog.Show ();
|
}
|
|
/// <summary>
|
/// 删除调试人员
|
/// </summary>
|
void showDeleteDebuggerAlert ()
|
{
|
Alert delSubaccount = new Alert ("", "Do you want to delete the debugger?",
|
Language.StringByID (R.MyInternationalizationString.cancel),
|
Language.StringByID (R.MyInternationalizationString.confirm));
|
delSubaccount.Show ();
|
delSubaccount.ResultEventHandler += (sender, e) => {
|
if (e) {
|
MainPage.Loading.Start ("Please wait...");
|
System.Threading.Tasks.Task.Run (() => {
|
try {
|
var revertObj = HttpServerRequest.Current.DelDebugStaff ();
|
if (revertObj.Code == StateCode.SUCCESS) {
|
currentHome.debugPerm = false;
|
currentHome.debugStaffUserId = "-1";
|
Application.RunOnMainThread (() => {
|
bodyView.RemoveAll ();
|
});
|
} else {
|
//错误提示
|
IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
|
}
|
} catch {
|
MainPage.FailureToServer ();
|
} finally {
|
Application.RunOnMainThread (() => {
|
MainPage.Loading.Hide ();
|
});
|
}
|
});
|
}
|
};
|
}
|
|
/// <summary>
|
/// 更新调试人员调试权限
|
/// </summary>
|
/// <param name="tempSwitch"></param>
|
void updateDebugger (Button tempSwitch)
|
{
|
bool isSelected = !tempSwitch.IsSelected;
|
MainPage.Loading.Start ("Please wait...");
|
System.Threading.Tasks.Task.Run (() => {
|
try {
|
var revertObj = HttpServerRequest.Current.UpdateDebugPerm (isSelected);
|
if (revertObj.Code == StateCode.SUCCESS) {
|
Application.RunOnMainThread (() => {
|
tempSwitch.IsSelected = isSelected;
|
currentHome.debugPerm = isSelected;
|
});
|
} else {
|
//错误提示
|
IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code);
|
}
|
} catch {
|
MainPage.FailureToServer ();
|
} finally {
|
Application.RunOnMainThread (() => {
|
MainPage.Loading.Hide ();
|
});
|
}
|
});
|
|
}
|
}
|
}
|