using System;
using System.Collections.Generic;
using System.IO;
using System.Threading;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using Newtonsoft.Json.Linq;
using Shared;
namespace HDL_ON.UI
{
public partial class MemberManagementPage
{
void LoadEventList()
{
}
///
/// 加载获取住宅子账号信息线程
///
Thread LoadThread_GetResidenceMemberAccount()
{
var thread = new Thread(() =>
{
try
{
residenceMemberInfos.Clear();
//
var loginResult = LoadMethod_GetResidenceMemberAccount();
if (loginResult)
{
Application.RunOnMainThread(() =>
{
LoadMemberRow();
});
}
}
catch (Exception ex)
{
MainPage.Log($"LoadThread_GetResidenceMemberAccount : {ex.Message}");
}
finally
{
Application.RunOnMainThread(() =>
{
if (waitPage != null)
{
waitPage.RemoveFromParent();
waitPage = null;
}
});
}
})
{ IsBackground = true };
return thread;
}
///
/// 调用获取住宅子账号信息
///
bool LoadMethod_GetResidenceMemberAccount()
{
var result = false;
ResponsePack responePack = new HttpServerRequest().GetResidenceMemberAccount();
if (responePack.StateCode.ToUpper() == "SUCCESS")
{
var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject>(responePack.ResponseData.ToString());
foreach (var mInfo in responeObj)
{
ResponsePack memberInfoResponePack = new HttpServerRequest().GetResidenceMemberAccountInfo(mInfo.Account);
var dataStr = JObject.FromObject(memberInfoResponePack.ResponseData);
FileStream fs = null;
try
{
var headImageString = dataStr.GetValue("HeadImage").ToString();
if (!string.IsNullOrEmpty(headImageString))
{
var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(headImageString);
var headImageBytes = Newtonsoft.Json.JsonConvert.DeserializeObject(jsonString);
var filePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal) + "/", mInfo.DistributedMark + ".png");
fs = new FileStream(filePath, FileMode.Create, FileAccess.Write);
fs.Write(headImageBytes, 0, headImageBytes.Length);
fs.Flush();
mInfo.headImagePagePath = filePath;
}
if(string.IsNullOrEmpty(mInfo.Nickname))
{
mInfo.Nickname = mInfo.UserName;
}
}
catch (Exception ex)
{
MainPage.Log($"download headImage error : {ex.Message}");
}
finally
{
if (fs != null)
{
fs.Close();
}
//-----------获取住宅下子账号的共享数据列表
LoadMethod_GetMemberSharedDataList(mInfo);
}
residenceMemberInfos.Add(mInfo);
}
result = true;
}
//失败
else
{
string tipStr = "Sever erorr";
switch (responePack.StateCode)
{
case "ValidCodeAndPhoneNoEqual":
tipStr = Language.StringByID(StringId.VerificationCodeError);
break;
case "USERNAMEORPWDERROR":
tipStr = Language.StringByID(StringId.LoginFailed_AccountOrPasswordError);
break;
case "ACCOUNTNOEXISTS":
tipStr = Language.StringByID(StringId.ACCOUNTNOEXISTS);
break;
case "NoRecord":
tipStr = Language.StringByID(StringId.PlsGetTheVerificationCode);
break;
case "Self:Net_Error":
tipStr = Language.StringByID(StringId.NetworkAnomaly);
break;
}
//账号或者密码错误
Application.RunOnMainThread(() =>
{
waitPage.Hide();
//提示原因
var tip = new Tip()
{
Text = tipStr,
CloseTime = 1,
Direction = AMPopTipDirection.None
};
tip.Show(bodyView);
});
}
Application.RunOnMainThread(() =>
{
waitPage?.Hide();
});
return result;
}
///
/// 获取住宅下子账号的共享数据列表
///
///
void LoadMethod_GetMemberSharedDataList(ResidenceMemberInfo info)
{
ResponsePack responePack = new HttpServerRequest().GetShareDataByMemberAccount(info.SubAccountDistributedMark);
if (responePack.StateCode.ToUpper() == "SUCCESS")
{
var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject>(responePack.ResponseData.ToString());
info.CurResidenceShareDate = responeObj;
foreach (var sd in info.CurResidenceShareDate)
{
LoadMethod_GetMemberSharedData(sd);
}
}
}
///
/// 获取住宅下子账号的共享数据
///
///
bool LoadMethod_GetMemberSharedData(ShareData sd)
{
ResponsePack responePack = new HttpServerRequest().GetShareData(sd.DistributedMark,sd.HouseDistributedMark);
if (responePack.StateCode.ToUpper() == "SUCCESS")
{
sd.ShareDataBytes = Newtonsoft.Json.JsonConvert.DeserializeObject(responePack.ResponseData.ToString()).ShareDataBytes;
return true;
}
return false;
}
///
/// 修改昵称窗口
///
void LoadView_EidtNickname(Button btn1, Button btn2, ResidenceMemberInfo mInfo)
{
EventHandler eventHandler = (sender, e) =>
{
Action callBack = (str) =>
{
if (string.IsNullOrEmpty(str))
{
new Tip()
{
CloseTime = 1,
Text = Language.StringByID(StringId.NicknameCannotBeEmpty),
Direction = AMPopTipDirection.None,
}.Show(bodyView);
return;
}
var waitPage = new Loading();
waitPage.Start(Language.StringByID(StringId.PleaseWait));
new Thread(() =>
{
try
{
var responsePack = new HttpServerRequest().EditSubAccountNickName(str,mInfo.SubAccountDistributedMark);
if (responsePack.StateCode.ToUpper() == "SUCCESS")
{
Application.RunOnMainThread(() =>
{
btn1.Text = str;
});
mInfo.Nickname = str;
}
else
{
var tipStr = "Server erorr";
switch (responsePack.StateCode)
{
case "NoLogin":
tipStr = Language.StringByID(StringId.InvalidLoginCertificate);
break;
case "ParameterOrEmpty":
break;
}
Application.RunOnMainThread(() =>
{
//提示原因
var tip = new Tip()
{
Text = tipStr,
CloseTime = 1,
Direction = AMPopTipDirection.None
};
tip.Show(bodyView);
});
}
}
catch (Exception ex)
{
MainPage.Log($"update user name error : {ex.Message}");
}
finally
{
Application.RunOnMainThread(() =>
{
waitPage.Hide();
});
}
})
{ IsBackground = true }.Start();
};
new PublicAssmebly().LoadDialog_EditParater(StringId.ModifyMemberNickname, mInfo.Nickname, callBack, StringId.HouseNameCannotBeEmpty, 0, new List());
};
btn1.MouseUpEventHandler = eventHandler;
btn2.MouseUpEventHandler = eventHandler;
}
///
/// 修改创建场景权限
///
void LoadView_ChangeCreateSceneState(Button btn1,Button btn2, ResidenceMemberInfo mInfo)
{
EventHandler eventHandler = (sender, e) =>
{
new Thread(() =>
{
try
{
var responsePack = new HttpServerRequest().ChangeCreateSceneState(DB_ResidenceData.residenceData.residecenInfo.RegionID, mInfo.SubAccountDistributedMark);
if (responsePack.StateCode.ToUpper() == "SUCCESS")
{
Application.RunOnMainThread(() =>
{
btn1.IsSelected = !btn1.IsSelected;
});
}
else
{
var tipStr = "Server erorr";
switch (responsePack.StateCode)
{
case "NoLogin":
tipStr = Language.StringByID(StringId.InvalidLoginCertificate);
break;
case "ParameterOrEmpty":
break;
}
Application.RunOnMainThread(() =>
{
//提示原因
var tip = new Tip()
{
Text = tipStr,
CloseTime = 1,
Direction = AMPopTipDirection.None
};
tip.Show(bodyView);
});
}
}
catch (Exception ex)
{
MainPage.Log($"update user name error : {ex.Message}");
}
finally
{
//Application.RunOnMainThread(() =>
//{
// waitPage.Hide();
//});
}
})
{ IsBackground = true }.Start();
};
btn1.MouseUpEventHandler = eventHandler;
btn2.MouseUpEventHandler = eventHandler;
}
}
}