JLChen
2021-08-21 af9c3e0b3b1eb370e966b3ca9db3f62848d4189b
HDL_ON/UI/UI2/4-PersonalCenter/AddDevice/SenesorEnvironment/AddSensorEnvironmentPage.cs
New file
@@ -0,0 +1,203 @@
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.Stan;
using Shared;
using System;
namespace HDL_ON.UI
{
    /// <summary>
    /// 添加环境传感器步骤1界面
    /// </summary>
    public class AddSensorEnvironmentPage : EditorCommonForm
    {
        #region ■ 变量声明___________________________
        /// <summary>
        /// 添加设备完成之后的回调事件
        /// </summary>
        public Action<Function> AddDeviceEvent = null;
        IntegratedBrandDevice integratedDevice = null;
        #endregion
        #region ■ 初始化_____________________________
        /// <summary>
        /// 画面显示(底层会固定调用此方法,借以完成画面创建)
        /// </summary>
        public void ShowForm(IntegratedBrandDevice device)
        {
            integratedDevice = device;
            if (Language.CurrentLanguage == "Chinese")
            {
                //设置头部信息
                base.SetTitleText(Language.StringByID(StringId.Add) + device.productName);
            }
            else
            {
                base.SetTitleText(Language.StringByID(StringId.Add) + " " + device.productName);
            }
            //这个界面的背景需要白色
            bodyFrameLayout.BackgroundColor = UI.CSS.CSS_Color.MainBackgroundColor;
            //初始化中部信息
            this.InitMiddleFrame();
        }
        /// <summary>
        /// 初始化中部信息
        /// </summary>
        private void InitMiddleFrame()
        {
            //图片
            var btnPic = new PicViewControl(132, 132);
            btnPic.Y = Application.GetRealHeight(69);
            btnPic.Gravity = Gravity.CenterHorizontal;
            if (integratedDevice.spk == SPK.SensorEnvironment3)
            {
                btnPic.UnSelectedImagePath = "PersonalCenter/AddDevice/EnvirSensorQingpingLitebg.png";
            }
            else if (integratedDevice.spk == SPK.SensorEnvironment2)
            {
                btnPic.UnSelectedImagePath = "PersonalCenter/AddDevice/EnvirSensorQingpingCGS1bg.png";
            }
            else
            {
                btnPic.UnSelectedImagePath = "PersonalCenter/AddDevice/EnvironmentalSensorbg.png";
            }
            bodyFrameLayout.AddChidren(btnPic);
            //请输入设备机上的sn码
            var textView = new FrameLayout()
            {
                Y = Application.GetRealHeight(309 - 64),
                Gravity = Gravity.CenterHorizontal,
                Width = Application.GetRealWidth(319),
                Height = Application.GetRealHeight(44),
            };
            bodyFrameLayout.AddChidren(textView);
            textView.AddChidren(new Button() { Y = Application.GetRealHeight(43), Height = 1, BackgroundColor = CSS.CSS_Color.DividingLineColor });
            EditText editText = new EditText()
            {
                TextAlignment = TextAlignment.Center,
                TextColor = CSS.CSS_Color.FirstLevelTitleColor,
                PlaceholderText = Language.StringByID(StringId.PlsEntrySNCode),
                PlaceholderTextColor = CSS.CSS_Color.PromptingColor1,
                TextSize = CSS.CSS_FontSize.TextFontSize,
            };
            textView.AddChidren(editText);
            if (integratedDevice.spk == SPK.SensorEnvironment2 || integratedDevice.spk == SPK.SensorEnvironment3)
            {
                editText.PlaceholderText = Language.StringByID(StringId.PlsEntryMacCode);
            }
            if (integratedDevice.spk == SPK.SensorEnvironment)
            {
                Button btnScan = new Button()
                {
                    Width = Application.GetRealWidth(32),
                    Height = Application.GetRealWidth(32),
                    Gravity = Gravity.CenterVertical,
                    X = Application.GetRealWidth(275),
                    UnSelectedImagePath = "Public/Scan.png"
                };
                textView.AddChidren(btnScan);
                btnScan.MouseUpEventHandler = (sender, e) =>
                {
                    Scan.OpenScan((scanString) =>
                    {
                        editText.Text = scanString;
                    });
                };
            }
            //下一步
            var btnNext = this.AddBottomClickButton(Language.StringByID(StringId.Next));
            btnNext.ButtonClickEvent += (sender, e) =>
            {
                var snCode = editText.Text.Trim();
                if (string.IsNullOrEmpty(snCode))
                {
                    editText.PlaceholderTextColor = CSS.CSS_Color.WarningColor;
                }
                else
                {
                    var waitPage = new Loading();
                    waitPage.Start();
                    new System.Threading.Thread(() => {
                        try
                        {
                            var pm = new HttpServerRequest();
                            var pack = pm.IndependentRegister3TyDevcie(integratedDevice.spk, snCode, Language.StringByID(StringId.SensorEnvironment));
                            if (pack.Code == StateCode.SUCCESS)
                            {
                                //var revData = Newtonsoft.Json.JsonConvert.DeserializeObject<List<IntegratedBrandDevice>>(pack.Data.ToString());
                                Application.RunOnMainThread(() =>
                                {
                                    waitPage.Hide();
                                    var tipDialog = new OperationResultDisPalyPage();
                                    tipDialog.LoadPage(true, Language.StringByID(StringId.AddSuccess), "", Language.StringByID(StringId.CanStartUsingEnvironmentalSensor), Language.StringByID(StringId.Next));
                                    tipDialog.Show();
                                    AddDeviceEvent?.Invoke(new Function());
                                    this.CloseForm();
                                });
                            }
                            else if (pack.Code == "10801" || pack.Code == "9")
                            {
                                var mes = "";
                                if (Language.CurrentLanguage == "Chinese")
                                {
                                    mes = "该设备已经被添加。";
                                }
                                else
                                {
                                    mes = "This device has been added.";
                                }
                                Application.RunOnMainThread(() =>
                                {
                                    var tip = new Tip()
                                    {
                                        Text = mes,
                                        CloseTime = 2,
                                        Direction = AMPopTipDirection.None
                                    };
                                    tip.Show(MainPage.BaseView);
                                });
                            }
                            else
                            {
                                IMessageCommon.Current.ShowErrorInfoAlter(pack.Code);
                            }
                        }
                        catch (Exception ex)
                        {
                            MainPage.Log("2--::" + ex.Message);
                        }
                        finally
                        {
                            Application.RunOnMainThread(() => { waitPage.Hide(); });
                        }
                    })
                    { IsBackground = true }.Start();
                }
            };
        }
        #endregion
        #region ■ 关闭界面___________________________
        /// <summary>
        /// 关闭界面
        /// </summary>
        public override void CloseFormBefore()
        {
            this.AddDeviceEvent = null;
            base.CloseFormBefore();
        }
        #endregion
    }
}