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;
var responePack = new HttpServerRequest().GetResidenceMemberAccount();
if (responePack.Code == StateCode.SUCCESS)
{
var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject>(responePack.Data.ToString());
foreach (var mInfo in responeObj)
{
ResponsePack memberInfoResponePack = new HttpServerRequest().GetResidenceMemberAccountInfo(mInfo.childAccountId);
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.childAccountId + ".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
{
//提示
IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code);
//账号或者密码错误
Application.RunOnMainThread(() =>
{
waitPage.Hide();
});
}
Application.RunOnMainThread(() =>
{
waitPage?.Hide();
});
return result;
}
///
/// 获取住宅下子账号的共享数据列表
///
///
void LoadMethod_GetMemberSharedDataList(ResidenceMemberInfo info)
{
var responePack = new HttpServerRequest().GetShareDataByMemberAccount(info.childAccountId);
if (responePack.Code == StateCode.SUCCESS)
{
var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject>(responePack.Data.ToString());
info.CurResidenceShareDate = responeObj;
foreach (var sd in info.CurResidenceShareDate)
{
LoadMethod_GetMemberSharedData(sd);
}
}
}
///
/// 获取住宅下子账号的共享数据
///
///
bool LoadMethod_GetMemberSharedData(ShareData sd)
{
var shareDataBytes = new HttpServerRequest().GetShareData(sd);
if (shareDataBytes != null)
{
sd.ShareDataBytes = 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.childAccountId);
if (responsePack.Code.ToUpper() == StateCode.SUCCESS)
{
Application.RunOnMainThread(() =>
{
btn1.Text = str;
});
mInfo.nickName = str;
}
else
{
IMessageCommon.Current.ShowErrorInfoAlter(responsePack.Code);
}
}
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
{
bool isAllow = !btn1.IsSelected;
var responsePack = new HttpServerRequest().ChangeCreateSceneState(isAllow, mInfo.childAccountId);
if (responsePack.Code.ToUpper() == StateCode.SUCCESS)
{
Application.RunOnMainThread(() =>
{
btn1.IsSelected = isAllow;
});
}
else
{
IMessageCommon.Current.ShowErrorInfoAlter(responsePack.Code);
}
}
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;
}
}
}