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; } } }