using System;
|
using service.hdlcontrol.com_WebServiceBackup;
|
|
namespace Shared.SimpleControl.Pad
|
{
|
public class Databackup : Dialog
|
{
|
WebServiceBackup service_backup = new WebServiceBackup ();//获取服务器对象
|
|
VerticalScrolViewLayout VerticalScrolViewMiddle;
|
EditText etBackup;//文件目录名称输入框
|
|
/// <summary>
|
/// 构造函数
|
/// </summary>
|
public Databackup ()
|
{
|
DatabackupShow ();
|
}
|
|
void DatabackupShow ()
|
{
|
if (MainPage.LoginUser == null) {
|
//提示还没有登陆
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.PleaseLoginSystem),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
this.Close ();
|
return;
|
}
|
FrameLayout MianDialogView = new FrameLayout ();
|
AddChidren (MianDialogView);
|
MianDialogView.MouseUpEventHandler += (sender, e) => {
|
this.Close ();
|
};
|
|
FrameLayout MianView = new FrameLayout () {
|
Gravity = Gravity.Center,
|
Width = Application.GetRealWidth (700),
|
Height = Application.GetRealHeight (800),
|
BackgroundColor = 0xFF333333,
|
Radius = 5,
|
BorderWidth = 1,
|
BorderColor = SkinStyle.Current.Transparent
|
};
|
MianDialogView.AddChidren (MianView);
|
|
Button topButton = new Button () {
|
Height = Application.GetRealHeight (120),
|
TextAlignment = TextAlignment.Center,
|
BackgroundColor = SkinStyle.Current.MainColor,
|
Text = Language.StringByID (R.MyInternationalizationString.DataBackup),
|
TextSize = 20,
|
};
|
MianView.AddChidren (topButton);
|
|
FrameLayout FrameLayoutView = new FrameLayout () {
|
Y = topButton.Bottom,
|
Height = Application.GetRealHeight (680),
|
};
|
MianView.AddChidren (FrameLayoutView);
|
|
FrameLayout BackUpView = new FrameLayout () {
|
Height = Application.GetRealHeight (110),
|
};
|
FrameLayoutView.AddChidren (BackUpView);
|
|
etBackup = new EditText () {
|
Width = Application.GetRealWidth (400),
|
Height = Application.GetRealHeight (70),
|
X = Application.GetRealWidth (60),
|
Gravity = Gravity.CenterVertical,
|
PlaceholderText = Language.StringByID (R.MyInternationalizationString.InputNewBakeUpFilesName),
|
PlaceholderTextColor = 0xFF333333,
|
TextAlignment = TextAlignment.Center,
|
Radius = (uint)Application.GetRealHeight (5),
|
BorderColor = SkinStyle.Current.Transparent,
|
BorderWidth = 1,
|
BackgroundColor = 0xFFDBDDDF
|
};
|
BackUpView.AddChidren (etBackup);
|
|
Button btnBackupAdd = new Button () {
|
Width = Application.GetRealWidth (153),
|
X = etBackup.Right + Application.GetRealWidth (40),
|
TextID = R.MyInternationalizationString.Backup,
|
TextAlignment = TextAlignment.CenterLeft,
|
TextSize = 14,
|
};
|
BackUpView.AddChidren (btnBackupAdd);
|
|
Button btnLineTop = new Button () {
|
Height = 1,
|
BackgroundColor = 0xFF333333,
|
Y = Application.GetRealHeight (110) - 1,
|
};
|
FrameLayoutView.AddChidren (btnLineTop);
|
Button btnLineBottom = new Button () {
|
Height = 1,
|
BackgroundColor = 0xFB757575,
|
Y = Application.GetRealHeight (110) - 2,
|
};
|
FrameLayoutView.AddChidren (btnLineBottom);
|
|
EventHandler<MouseEventArgs> AddEvent = (sender, e) => {
|
if (etBackup.Text.Trim () == "") {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.InputNewBakeUpFilesName),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
return;
|
}
|
MainPage.LoginUser = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInfo> (System.Text.Encoding.UTF8.GetString (Shared.IO.FileUtils.ReadFile (UserInfo.GlobalRegisterFile)));
|
if (MainPage.LoginUser == null) {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.PleaseLoginSystem),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
return;
|
}
|
userBakeupFile (etBackup.Text.Trim ());
|
etBackup.Text = "";
|
};
|
btnBackupAdd.MouseUpEventHandler += AddEvent;
|
|
VerticalScrolViewMiddle = new VerticalScrolViewLayout () {
|
Height = Application.GetRealHeight (680 - 110),
|
Y = BackUpView.Bottom
|
};
|
FrameLayoutView.AddChidren (VerticalScrolViewMiddle);
|
|
try {
|
UserBackup [] groupNames = service_backup.GetUserGroup (MainPage.LoginUser.ID, 0);
|
foreach (UserBackup groupName in groupNames) {
|
addRow (groupName.UserGroup);
|
}
|
} catch {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.CheckInternet),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
}
|
}
|
|
void addRow (string groupName)
|
{
|
RowLayout frameLayout = new RowLayout () {
|
Height = Application.GetRealHeight (100),
|
};
|
VerticalScrolViewMiddle.AddChidren (frameLayout);
|
|
var btnDelFile = new Button () {
|
TextID = R.MyInternationalizationString.Del,
|
BackgroundColor = SkinStyle.Current.DelColor
|
};
|
btnDelFile.MouseUpEventHandler += (sender, e) => {
|
Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.AreYouSureToDeleteFile), Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim));
|
alert.ResultEventHandler += (object sender2, bool e2) => {
|
if (e2) {
|
var result1 = service_backup.UserBackupDelUserGroup (MainPage.LoginUser.ID, groupName, 0);
|
/// <summary>
|
/// 0:成功
|
/// 1:失败
|
/// </summary>
|
if (result1 == 1) {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.FailedToDeleteFile),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
} else {
|
//提示一下
|
frameLayout.RemoveFromParent ();
|
DatabackupShow ();
|
}
|
}
|
};
|
alert.Show ();
|
};
|
frameLayout.AddRightView (btnDelFile);
|
|
var btnPoint = new Button () {
|
Width = Application.GetRealWidth (10),
|
Height = Application.GetRealHeight (10),
|
X = Application.GetRealWidth (60),
|
Gravity = Gravity.CenterVertical,
|
BackgroundColor = 0xFFDBDDDF,
|
Radius = (uint)Application.GetMinRealAverage (5),
|
BorderWidth = 0,
|
};
|
frameLayout.AddChidren (btnPoint);
|
|
var btnName = new Button () {
|
Width = Application.GetRealWidth (400),
|
Height = LayoutParams.MatchParent,
|
Text = groupName.Trim (),
|
TextAlignment = TextAlignment.CenterLeft,
|
X = btnPoint.Right + Application.GetRealWidth (30),
|
};
|
frameLayout.AddChidren (btnName);
|
|
var Backup_restores = new Button () {
|
Width = Application.GetRealWidth (56),
|
Height = Application.GetRealHeight (57),
|
X = Application.GetRealWidth (600),
|
UnSelectedImagePath = "Register/Backup_ restores.png",
|
SelectedImagePath = "Register/Backup_ restores_on.png",
|
Gravity = Gravity.CenterVertical,
|
};
|
frameLayout.AddChidren (Backup_restores);
|
Backup_restores.MouseDownEventHandler += (sender, e) => {
|
Backup_restores.IsSelected = true;
|
};
|
Backup_restores.MouseUpEventHandler += (sender, e) => {
|
Backup_restores.IsSelected = false;
|
UserBakeupFileDetailedInformation (groupName);
|
};
|
}
|
|
/// <summary>
|
/// 用户备份文件
|
/// </summary>
|
void userBakeupFile (string groupName)
|
{
|
//确定要备份该文件的数据
|
Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.SureToBackupYourthisFile), Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim));
|
|
alert.ResultEventHandler += (object sender2, bool e2) => {
|
if (e2) {
|
MainPage.Loading.Start ("Upload...");
|
|
System.Threading.Tasks.Task.Run (() => {
|
try {
|
var result = service_backup.AddUserGroup (MainPage.LoginUser.ID, 0, groupName);
|
|
if (result == 0) {
|
var backuplist = IO.FileUtils.ReadFiles ();
|
int index = 0;
|
foreach (var fileName in backuplist) {
|
index++;
|
/// <summary>
|
/// 如果是特殊的注册登陆文件,则不需要备份到服务器
|
/// </summary>
|
if (fileName == UserInfo.GlobalRegisterFile) {
|
continue;
|
}
|
service_backup.UserBackupAdd (MainPage.LoginUser.ID, 0, fileName, groupName, IO.FileUtils.ReadFile (fileName));
|
|
Application.RunOnMainThread (() => {
|
int pro = (int)(index * 1.0 / backuplist.Count * 100);
|
MainPage.Loading.Text = pro.ToString () + "%";
|
});
|
}
|
}
|
|
Shared.Application.RunOnMainThread (() => {
|
/// <summary>
|
/// 0:成功
|
/// 1:失败
|
/// 2:文件名已经存在
|
/// </summary>
|
if (result == 1) {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.FailedToBackupFile),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
} else if (result == 2) {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.FileNamehasExisted),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
} else {
|
//提示备份成功
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.BackupFileIsSuccessful),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
addRow (groupName);
|
}
|
});
|
} catch {
|
Shared.Application.RunOnMainThread (() => {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.CheckInternet),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
});
|
} finally {
|
Shared.Application.RunOnMainThread (() => {
|
MainPage.Loading.Hide ();
|
});
|
}
|
});
|
}
|
};
|
alert.Show ();
|
}
|
|
/// <summary>
|
/// 用户恢复文件
|
/// </summary>
|
public void UserBakeupFileDetailedInformation (string groupName)
|
{
|
//是否确定恢复该文件数据信息
|
Alert alert = new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.SureToRestoreFileInformation), Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim));
|
alert.ResultEventHandler += (object sender2, bool e2) => {
|
if (e2) {
|
MainPage.Loading.Start ("Download..");
|
System.Threading.Tasks.Task.Run (() => {
|
try {
|
var fileNames = IO.FileUtils.ReadFiles ();
|
foreach (var fileName in fileNames) {
|
if (fileName == UserInfo.GlobalRegisterFile) {
|
continue;
|
}
|
IO.FileUtils.DeleteFile (fileName);
|
}
|
//获取所有文件组名
|
var files = service_backup.UserBackupList (MainPage.LoginUser.ID, 0, groupName);
|
int index = 0;
|
foreach (var file in files) {
|
if (file.Name == "null") {
|
continue;
|
}
|
|
file.DetailByte = service_backup.UserBackupDetail (file.Id);
|
IO.FileUtils.WriteFileByBytes (file.Name, file.DetailByte);
|
index++;
|
Application.RunOnMainThread (() => {
|
int pro = (int)(index * 1.0 / files.Length * 100);
|
//MainPage.Loading.Hide ();
|
MainPage.Loading.Text = pro.ToString () + "%";
|
//MainPage.Loading.Text = index +"/"+ files.Length.ToString ();
|
});
|
}
|
Shared.Application.RunOnMainThread (() => {
|
// tip success
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.RestoreFileIsSuccessfull),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
Close ();
|
UserConfig.Instance.RefreshUserConfig ();
|
UserMiddle.DeviceMode ();
|
CommonPage.IsRemote = false;
|
EquipmentPublicClass.CheckLinkRemote (2);
|
});
|
MainPage.LoginUser = Newtonsoft.Json.JsonConvert.DeserializeObject<UserInfo> (System.Text.Encoding.UTF8.GetString (Shared.IO.FileUtils.ReadFile (UserInfo.GlobalRegisterFile)));
|
if (MainPage.LoginUser != null) {
|
MainPage.LoginUser.LastTime = System.DateTime.Now;
|
Shared.IO.FileUtils.WriteFileByBytes (UserInfo.GlobalRegisterFile, System.Text.Encoding.UTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (MainPage.LoginUser)));
|
}
|
} catch {
|
Shared.Application.RunOnMainThread (() => {
|
new Alert (Language.StringByID (R.MyInternationalizationString.Tip), Language.StringByID (R.MyInternationalizationString.CheckInternet),
|
Language.StringByID (R.MyInternationalizationString.Close)).Show ();
|
});
|
} finally {
|
Shared.Application.RunOnMainThread (() => {
|
MainPage.Loading.Hide ();
|
});
|
}
|
});
|
}
|
};
|
alert.Show ();
|
}
|
}
|
}
|