xm
2019-07-16 b910cb79c9b5bcc204022a3cf9e6950f0a64dfbd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
using System;
using System.Collections.Generic;
using System.Text;
using ZigBee.Device;
 
namespace Shared.Phone.UserCenter.Safety
{
    /// <summary>
    /// 添加胁迫联系人
    /// </summary>
    public class AddCoerceContactForm : UserCenterCommonForm
    {
        /// <summary>
        /// 信息提示控件
        /// </summary>
        private ViewNormalControl txtMsg = null;
        /// <summary>
        /// 电话列表
        /// </summary>
        private List<Safeguard.PushTargetInfo> listPhoneData = null;
 
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        /// <param name="listData"></param>
        public void ShowForm(List<Safeguard.PushTargetInfo> listData)
        {
            this.listPhoneData = listData;
 
            //设置头部信息
            base.SetTitleText(Language.StringByID(R.MyInternationalizationString.uAddContactPersion));
 
            //初始化中部信息
            this.InitMiddleFrame();
        }
 
        /// <summary>
        /// 初始化中部信息
        /// </summary>
        private void InitMiddleFrame()
        {
            var row = new RowLayout();
            row.Height = ControlCommonResourse.ListViewRowHeight;
            bodyFrameLayout.AddChidren(row);
 
            //联系电话
            var txtPhone = new PhoneAreaControl();
            txtPhone.Gravity = Gravity.CenterVertical;
            row.AddChidren(txtPhone);
            txtPhone.InitControl(this);
            txtPhone.txtPhone.PlaceholderText = Language.StringByID(R.MyInternationalizationString.uPleaseInputContactWay);
 
            //提示信息
            this.txtMsg = new ViewNormalControl(800, true);
            txtMsg.X = ControlCommonResourse.XXLeft;
            txtMsg.Y = row.Bottom + Application.GetRealHeight(5);
            txtMsg.TextColor = UserCenterColor.Current.Red;
            bodyFrameLayout.AddChidren(txtMsg);
 
            //完成
            var btnfinish = new TopLayoutFinshView();
            topFrameLayout.AddChidren(btnfinish);
            btnfinish.MouseUpEventHandler += (sender, e) =>
            {
                //执行保存手机操作
                this.SavePhoneNumber(txtPhone.AreaCode, txtPhone.PhoneNumber);
            };
        }
 
        /// <summary>
        /// 执行保存手机操作
        /// </summary>
        private void SavePhoneNumber(string areaCode, string phoneNum)
        {
            //手机号检测
            if (this.CheckPhoneNumber(areaCode, phoneNum) == false)
            {
                return;
            }
 
            //变更联系人方式
            this.ChangedCoercePhoneNumber(areaCode, phoneNum);
        }
 
        /// <summary>
        /// 变更联系人方式
        /// </summary>
        /// <param name="areaCode"></param>
        /// <param name="phoneNum"></param>
        private async void ChangedCoercePhoneNumber(string areaCode, string phoneNum)
        {
            Dictionary<string, string> dicPhone = new Dictionary<string, string>();
            dicPhone[phoneNum] = areaCode;
 
            //变更
            var result = await Common.LocalSafeguard.Current.SetCoercePhoneNumber(dicPhone);
            if (result == false)
            {
                return;
            }
 
            Application.RunOnMainThread(() =>
            {
                var data = new ZigBee.Device.Safeguard.PushTargetInfo();
                data.PushNumber = areaCode + "-" + phoneNum;
                this.listPhoneData.Add(data);
 
                //添加明细行
                this.LoadFormMethodByName("CoerceContactSettionForm", "AddPhoneNumRowLayout", data);
 
                //刷新主界面
                this.LoadFormMethodByName("CoercePasswordMainForm", "InitMiddleFrame");
 
                this.CloseForm();
            });
        }
 
        /// <summary>
        /// 检测手机号
        /// </summary>
        /// <param name="areaCode"></param>
        /// <param name="phone"></param>
        private bool CheckPhoneNumber(string areaCode, string phone)
        {
            //输入为空
            if (phone == string.Empty)
            {
                //请输入联系方式
                txtMsg.Text = Language.StringByID(R.MyInternationalizationString.uPleaseInputContactWay);
                return false;
            }
 
            //检测手机号格式
            if (UserCenterLogic.CheckPhoneNumber(phone, areaCode) == false)
            {
                //这不是一个有效的手机号
                txtMsg.Text = Language.StringByID(R.MyInternationalizationString.uThisIsNotPhoneNumberType);
                return false;
            }
            foreach (var data in this.listPhoneData)
            {
                if (data.PushNumber == areaCode + "-" + phone)
                {
                    //联系方式已经存在
                    txtMsg.Text = Language.StringByID(R.MyInternationalizationString.uThePhoneNumIsRepeat);
                    return false;
                }
            }
 
            txtMsg.Text = string.Empty;
 
            return true;
        }
    }
}