黄学彪
2019-11-13 8b9ce384b26c414db32f98e94e088f5334869c2d
ZigbeeApp/Shared/Phone/UserCenter/CommonBase/Logic/HdlSafeguardLogic.cs
@@ -1640,22 +1640,13 @@
        /// </summary>
        public async Task<string> ShowInputUserPasswordForm()
        {
            //获取当前正在激活的画面
            var form = UserCenterLogic.GetNowActionForm();
            if (form == null)
            {
                //这种情况应该不存在
                this.ShowErrorMsg("ERROR:Not Found The ActionForm!");
                return null;
            }
            DialogInputFrameControl Dialogform = null;
            NumberPswInputDialogForm Dialogform = null;
            bool isShowingProgressBar = false;
            string ProgressBarText = string.Empty;
            string pasword = null;
            Application.RunOnMainThread(() =>
            HdlThreadLogic.Current.RunMain(() =>
            {
                isShowingProgressBar = CommonPage.Loading.Visible;
                ProgressBarText = CommonPage.Loading.Text;
@@ -1665,21 +1656,12 @@
                    CommonPage.Loading.Hide();
                }
                Dialogform = new DialogInputFrameControl(form, DialogFrameMode.OnlyPassword);
                //用户密码
                Dialogform.SetTitleText(Language.StringByID(R.MyInternationalizationString.uSafetyPassword));
                //设置提示信息:请输入用户密码
                Dialogform.SetTipText(Language.StringByID(R.MyInternationalizationString.uPleaseInputUserPassword));
                Dialogform = new NumberPswInputDialogForm();
                Dialogform.AddForm(Language.StringByID(R.MyInternationalizationString.uPleaseInputUserPassword), 4);
                //确认按钮
                Dialogform.ComfirmClickEvent += ((textValue) =>
                Dialogform.FinishInputEvent += ((textValue) =>
                {
                    if (textValue == string.Empty)
                    {
                        this.ShowErrorMsg(Language.StringByID(R.MyInternationalizationString.uPleaseInputUserPassword));
                        return;
                    }
                    Dialogform.CloseDialog();
                    Dialogform.CloseForm();
                    //用户密码
                    pasword = textValue;
                    //加密密码
@@ -1874,36 +1856,66 @@
        /// <summary>
        /// 设置胁迫的联系人方式
        /// </summary>
        /// <param name="dicPhone">keys:联系方式 values:地区码</param>
        /// <param name="listPhone">地区码-联系方式</param>
        /// <param name="listNote">联系人备注</param>
        /// <param name="addPhone">是否是新建联系人,false的时候,只改备注</param>
        /// <returns></returns>
        public async Task<bool> SetCoercePhoneNumber(Dictionary<string, string> dicPhone)
        public async Task<bool> SetCoercePhoneNumber(List<string> listPhone, List<string> listNote, bool addPhone = true)
        {
            var Pra = new Safeguard.SetCoercePhoneNumberData();
            var Actonobj = new Safeguard.PushTargetActionObj();
            Actonobj.Type = 2;
            Pra.Actions.Add(Actonobj);
            Pra.LoginToken = this.GetLoginToken();
            foreach (string phoneNum in dicPhone.Keys)
            if (addPhone == true)
            {
                var phoneInfo = new Safeguard.PushTargetInfo();
                Actonobj.PushTarget.Add(phoneInfo);
                //电话号码
                phoneInfo.PushNumber = dicPhone[phoneNum] + "-" + phoneNum;
            }
                var Pra = new Safeguard.SetCoercePhoneNumberData();
                var Actonobj = new Safeguard.PushTargetActionObj();
                Actonobj.Type = 2;
                Pra.Actions.Add(Actonobj);
                Pra.LoginToken = this.GetLoginToken();
            var result = await Safeguard.SetCoercePhoneNumberAsync(Pra);
            if (result == null || result.setCoercePhoneNumberResponseData == null || result.setCoercePhoneNumberResponseData.Result != 0)
                for (int i = 0; i < listPhone.Count; i++)
                {
                    var phoneInfo = new Safeguard.PushTargetInfo();
                    Actonobj.PushTarget.Add(phoneInfo);
                    //电话号码
                    phoneInfo.PushNumber = listPhone[i];
                }
                var result = await Safeguard.SetCoercePhoneNumberAsync(Pra);
                if (result == null || result.setCoercePhoneNumberResponseData == null || result.setCoercePhoneNumberResponseData.Result != 0)
                {
                    //修改胁迫联系方式失败
                    string msg = Language.StringByID(R.MyInternationalizationString.uChangedCoercePhoneNumberFail);
                    //拼接上【网关回复超时】的Msg
                    msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result);
                    this.ShowErrorMsg(msg);
                    return false;
                }
            }
            for (int i = 0; i < listNote.Count; i++)
            {
                //修改胁迫联系方式失败
                string msg = Language.StringByID(R.MyInternationalizationString.uChangedCoercePhoneNumberFail);
                //拼接上【网关回复超时】的Msg
                msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, result);
                this.ShowErrorMsg(msg);
                return false;
                var result = await Safeguard.SetCoercePhoneNumberNoteAsync(listPhone[i], listNote[i]);
                if (result == null)
                {
                    //修改备注信息失败
                    string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationFail);
                    //拼接上【网关回复超时】的Msg
                    msg = UserCenterLogic.CombineGatewayTimeOutMsg(msg, null, "回复超时");
                    this.ShowErrorMsg(msg);
                    return false;
                }
                if (result.Result == -2)
                {
                    //错误:网关对象丢失
                    string msg = Language.StringByID(R.MyInternationalizationString.uErrorGatewayLostMsg);
                    this.ShowErrorMsg(msg);
                    return false;
                }
                if (result.Result != 0)
                {
                    //修改备注信息失败
                    string msg = Language.StringByID(R.MyInternationalizationString.uEditorNoteInformationFail);
                    this.ShowErrorMsg(msg);
                    return false;
                }
            }
            return true;
        }
@@ -1939,6 +1951,29 @@
            }
            return true;
        }
        /// <summary>
        /// 给联系号码添加备注的信息
        /// </summary>
        private class AddPushNumberNoteInfo
        {
            /// <summary>
            /// 固定253
            /// </summary>
            public int ActionType = 253;
            /// <summary>
            /// LoginToken
            /// </summary>
            public string LoginToken = string.Empty;
            /// <summary>
            /// 地区码-联系方式
            /// </summary>
            public string PushNumber = string.Empty;
            /// <summary>
            /// 联系人号码备注,最大63byte
            /// </summary>
            public string PushNumberNote = string.Empty;
        }
        #endregion
@@ -2201,10 +2236,11 @@
        /// 获取登陆者的Token(好像管理员登陆的时候,需要变更Token,所以暂且定义一个函数出来)
        /// </summary>
        /// <returns></returns>
        private string GetLoginToken()
        public string GetLoginToken()
        {
            //获取控制主人账号的Token
            return UserCenterLogic.GetConnectMainToken();
            //return UserCenterLogic.GetConnectMainToken();
            return Config.Instance.Token;
        }
        #endregion