黄学彪
2020-12-17 9f326f4000847e6167d8166fa2f6a66f53cb3734
ZigbeeApp/Shared/Phone/UserCenter/Member/AddMemberInfoForm.cs
@@ -13,7 +13,7 @@
        /// <summary>
        /// 成员信息
        /// </summary>
        private AccountInfoResult memberResult = null;
        private AccountInfoResult AccountResult = null;
        #endregion
@@ -25,7 +25,7 @@
        /// <param name="i_infoResult">成员信息</param>
        public void ShowForm(AccountInfoResult i_infoResult)
        {
            this.memberResult = i_infoResult;
            this.AccountResult = i_infoResult;
            //设置标题信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uMemberInformation));
@@ -48,9 +48,9 @@
            btnUserIcon.Height = this.GetPictrueRealSize(207);
            btnUserIcon.Width = this.GetPictrueRealSize(207);
            btnUserIcon.Radius = (uint)this.GetPictrueRealSize(207) / 2;
            if (memberResult.HeadImage != null)
            if (AccountResult.HeadImage != null)
            {
                btnUserIcon.ImageBytes = memberResult.HeadImage;
                btnUserIcon.ImageBytes = AccountResult.HeadImage;
            }
            else
            {
@@ -65,7 +65,7 @@
            btnUserId.IsBold = true;
            btnUserId.Y = Application.GetRealHeight(472);
            btnUserId.Gravity = Gravity.CenterHorizontal;
            btnUserId.Text = memberResult.Account;
            btnUserId.Text = AccountResult.Account;
            btnUserId.TextAlignment = TextAlignment.Center;
            btnUserId.TextColor = UserCenterColor.Current.TextGrayColor1;
            bodyFrameLayout.AddChidren(btnUserId);
@@ -77,8 +77,7 @@
            btnName.Gravity = Gravity.CenterHorizontal;
            btnName.TextAlignment = TextAlignment.Center;
            btnName.TextSize = 16;
            //如果它本身就没名字的话,把他的ID作为昵称
            btnName.Text = string.IsNullOrEmpty(memberResult.UserName) == true ? memberResult.Account : memberResult.UserName;
            btnName.Text = AccountResult.MemberName;
            bodyFrameLayout.AddChidren(btnName);
            //请确认账号是否正确{0}如正确请点击确认
@@ -106,7 +105,10 @@
            btnOk.ButtonClickEvent += (sender, e) =>
            {
                //添加成员
                this.DoAddMember();
                HdlThreadLogic.Current.RunThread(() =>
                {
                    this.DoAddMember();
                });
            };
        }
@@ -117,94 +119,56 @@
        /// <summary>
        /// 添加成员
        /// </summary>
        private async void DoAddMember()
        private void DoAddMember()
        {
            //开启进度条
            this.ShowProgressBar();
            var pra = new BindSubAccountPra();
            pra.SubAccount = memberResult.Account;
            bool result = await UserCenterLogic.GetResultStatuByRequestHttps("ZigbeeUsers/BindSubAccount", false, pra);
            if (result == false)
            //添加成员
            var memberInfoRes = HdlMemberLogic.Current.AddMember(AccountResult.Account, AccountResult.MemberName);
            if (memberInfoRes == null)
            {
                //关闭进度条
                this.CloseProgressBar();
                return;
            }
            //添加子账号时,接口并不返回这些东西,所以需要手动赋值
            memberInfoRes.ChildNickName = AccountResult.MemberName;
            if (AccountResult.Account.Contains("@") == true)
            {
                memberInfoRes.ChildAccountEmail = AccountResult.Account;
            }
            else
            {
                memberInfoRes.ChildAccountPhone = AccountResult.Account;
            }
            //获取这个成员的SubDistributedMark
            var pra2 = new MemberListInfoPra();
            string resultValue = await UserCenterLogic.GetResponseDataByRequestHttps("ZigbeeUsers/GetSubAccountByDistributedMark", false, pra2);
            string iconPath = System.IO.Path.Combine(HdlFileNameResourse.UserPictrueDirectory, memberInfoRes.ChildAccountId + ".png");
            if (AccountResult.HeadImage != null)
            {
                //写入头像内容
                Shared.IO.FileUtils.WriteFileByBytes(iconPath, AccountResult.HeadImage);
            }
            //关闭进度条
            this.CloseProgressBar();
            if (resultValue == null)
            HdlThreadLogic.Current.RunMain(() =>
            {
                //出现未知错误,数据丢失
                string msg = Language.StringByID(R.MyInternationalizationString.uUnKnownError);
                this.ShowMassage(ShowMsgType.Tip, msg);
                return;
            }
            List<MemberInfoRes> listInfo = Newtonsoft.Json.JsonConvert.DeserializeObject<List<MemberInfoRes>>(resultValue);
            MemberInfoRes memberInfoRes = null;
            foreach (var info in listInfo)
            {
                if (info.Account == memberResult.Account)
                //成员添加成功
                var form = new AddMemberSuccessForm();
                form.AddForm(memberInfoRes);
                form.FormCloseEvent += (() =>
                {
                    memberInfoRes = info;
                    break;
                }
            }
            if (memberInfoRes == null)
            {
                //出现未知错误,数据丢失
                string msg = Language.StringByID(R.MyInternationalizationString.uUnKnownError);
                this.ShowMassage(ShowMsgType.Tip, msg);
                return;
            }
            //添加缓存
            UserCenterResourse.ListMemberInfo.Add(memberInfoRes);
            UserCenterLogic.SaveLocalMemberListInfo();
            string iconPath = System.IO.Path.Combine(UserCenterResourse.AccountOption.UserPictruePath, memberInfoRes.DistributedMark + ".png");
            if (memberResult.HeadImage != null)
            {
                //写入头像内容
                Shared.IO.FileUtils.WriteFileByBytes(iconPath, memberResult.HeadImage);
            }
            //成员添加成功
            var form = new AddMemberSuccessForm();
            form.AddForm(memberInfoRes, memberInfoRes.DistributedMark);
            form.FormCloseEvent += (() =>
            {
                this.CloseForm();
                //关闭手动输入成员ID的画面
                this.CloseFormByFormName("AddMemberByIdForm");
                //添加成员
                this.LoadFormMethodByName("MemberListForm", "AddRowLayoutByOtherForm", memberInfoRes);
                    this.CloseForm();
                    //关闭手动输入成员ID的画面
                    HdlFormLogic.Current.CloseFormByFormName("AddMemberByIdForm");
                    //添加成员
                    this.LoadFormMethodByName("MemberListForm", "AddRowLayoutByOtherForm", memberInfoRes);
                });
            });
        }
        #endregion
        #region ■ 结构体_____________________________
        /// <summary>
        /// 绑定成员ID到住宅的启动参数
        /// </summary>
        private class BindSubAccountPra : IfacePraCommon
        {
            /// <summary>
            /// 子账号ID
            /// </summary>
            public string SubAccount = string.Empty;
            /// <summary>
            /// 住宅ID
            /// </summary>
            public string HouseDistributedMark = Common.Config.Instance.Home.Id;
        }
        #endregion
    }
}