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 ChooseShareMemberTargetListPage
|
{
|
/// <summary>
|
/// 加载获取住宅子账号信息线程
|
/// </summary>
|
Thread LoadThread_GetResidenceMemberAccount()
|
{
|
var thread = new Thread(() =>
|
{
|
try
|
{
|
memberList.Clear();
|
var loginResult = LoadMethod_GetResidenceMemberAccount();
|
if (loginResult)
|
{
|
Application.RunOnMainThread(() =>
|
{
|
LoadMemberRow();
|
});
|
}
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"LoadThread_GetResidenceMemberAccount 2 : {ex.Message}");
|
}
|
finally
|
{
|
Application.RunOnMainThread(() =>
|
{
|
if (waitPage != null)
|
{
|
waitPage.RemoveFromParent();
|
waitPage = null;
|
}
|
});
|
}
|
})
|
{ IsBackground = true };
|
return thread;
|
}
|
|
/// <summary>
|
/// 更改分享成员列表
|
/// </summary>
|
EventHandler<MouseEventArgs> LoadEvent_ChangeSharedList(Button btnChosse, ResidenceMemberInfo info)
|
{
|
EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
|
{
|
btnChosse.IsSelected = !btnChosse.IsSelected;
|
if (btnChosse.IsSelected)
|
{
|
if (!memberList.Contains(info))
|
{
|
memberList.Add(info);
|
}
|
}
|
else
|
{
|
if (memberList.Contains(info))
|
{
|
memberList.Remove(info);
|
}
|
}
|
};
|
return eventHandler;
|
}
|
|
/// <summary>
|
/// 分享数据
|
/// </summary>
|
void LoadEvent_SharedData()
|
{
|
btnOption.MouseUpEventHandler = (sender, e) =>
|
{
|
new Thread(() =>
|
{
|
bool result = false;
|
Action act = () => { };
|
Application.RunOnMainThread(() =>
|
{
|
act = new PublicAssmebly().TipLoadingMsgDialog(Language.StringByID(StringId.SavingPleaseWait));
|
});
|
foreach (var member in memberList)
|
{
|
foreach (var f in addFuns)
|
{
|
var sd = member.CurResidenceShareDate.Find((obj) => obj.ShareName == f.ShareName);
|
//如果该功能已经分享,更新原有的数据
|
if (null != sd)
|
{
|
sd.ShareDataBytes = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(f));
|
result = EditShareData(sd);
|
}
|
else//如果该功能未被分享,则新增分享
|
{
|
f.SubAccountDistributedMark = member.SubAccountDistributedMark;
|
result = LoadMethod_AddShareData(f);
|
}
|
if (!result)
|
{
|
Application.RunOnMainThread(() => {
|
new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingFailed), true);
|
});
|
}
|
}
|
}
|
Application.RunOnMainThread(() =>
|
{
|
act();
|
});
|
if (result)
|
{
|
Application.RunOnMainThread(() => {
|
new PublicAssmebly().TipMsgAutoClose(Language.StringByID(StringId.FunctionSharingSucceeded), true);
|
});
|
Thread.Sleep(1600);
|
Application.RunOnMainThread(() => {
|
for (int i = 0; i < 3; i++)
|
{
|
//MainPage.BasePageView.RemoveAt(MainPage.BasePageView.ChildrenCount - 1);
|
MainPage.BasePageView.GetChildren(MainPage.BasePageView.ChildrenCount - 1).RemoveFromParent();
|
}
|
});
|
}
|
})
|
{ IsBackground = true }.Start();
|
};
|
}
|
|
/// <summary>
|
/// 新增共享数据点击事件
|
/// </summary>
|
bool LoadMethod_AddShareData(ShareData ssdd)
|
{
|
//增加共享数据目录
|
ResponsePack responePack = new HttpServerRequest().AddShareData(ssdd);
|
if (responePack.StateCode.ToUpper() != "SUCCESS")
|
{
|
return false;
|
}
|
else
|
{
|
ssdd.DistributedMark = responePack.ResponseData.ToString();
|
// 更新共享数据
|
return EditShareData(ssdd);
|
}
|
}
|
|
/// <summary>
|
/// 更新共享数据
|
/// </summary>
|
bool EditShareData(ShareData sd)
|
{
|
ResponsePack responePack = new HttpServerRequest().EditShareData(sd);
|
if (responePack.StateCode.ToUpper() == StateCode.SUCCESS)
|
{
|
return true;
|
}
|
else
|
{
|
return false;
|
}
|
}
|
|
/// <summary>
|
/// 获取住宅下子账号的共享数据列表
|
/// </summary>
|
/// <param name="info"></param>
|
void LoadMethod_GetMemberSharedDataList(ResidenceMemberInfo info)
|
{
|
ResponsePack responePack = new HttpServerRequest().GetShareDataByMemberAccount(info.SubAccountDistributedMark);
|
if (responePack.StateCode.ToUpper() == StateCode.SUCCESS)
|
{
|
var responeObj = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ShareData>>(responePack.ResponseData.ToString());
|
info.CurResidenceShareDate = responeObj;
|
}
|
}
|
|
/// <summary>
|
/// 调用获取住宅子账号信息
|
/// </summary>
|
bool LoadMethod_GetResidenceMemberAccount()
|
{
|
var result = false;
|
var responePack = new HttpServerRequest().GetResidenceMemberAccount();
|
if (responePack.Code == StateCode.SUCCESS)
|
{
|
memberList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<ResidenceMemberInfo>>(responePack.Data.ToString());
|
foreach (var mInfo in memberList)
|
{
|
ResponsePack memberInfoResponePack = new HttpServerRequest().GetResidenceMemberAccountInfo(mInfo.Account);
|
var dataStr = JObject.FromObject(memberInfoResponePack.ResponseData);
|
FileStream fs = null;
|
try
|
{
|
var headImageString = dataStr.GetValue("HeadImage").ToString();
|
var jsonString = Newtonsoft.Json.JsonConvert.SerializeObject(headImageString);
|
var headImageBytes = Newtonsoft.Json.JsonConvert.DeserializeObject<byte[]>(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;
|
}
|
catch (Exception ex)
|
{
|
MainPage.Log($"download headImage error : {ex.Message}");
|
}
|
finally
|
{
|
if (fs != null)
|
{
|
fs.Close();
|
}
|
LoadMethod_GetMemberSharedDataList(mInfo);
|
}
|
}
|
result = true;
|
}
|
//失败
|
else
|
{
|
//提示
|
IMessageCommon.Current.ShowErrorInfoAlter(responePack.Code);
|
//账号或者密码错误
|
Application.RunOnMainThread(() =>
|
{
|
waitPage.Hide();
|
});
|
}
|
Application.RunOnMainThread(() =>
|
{
|
waitPage?.Hide();
|
});
|
return result;
|
}
|
|
}
|
}
|