陈嘉乐
2020-04-27 18b93d511dc764b469d7c4a7e755f7274f89cdb4
ZigbeeApp/Shared/Phone/UserCenter/Device/DeviceAddSuccessForm.cs
@@ -20,6 +20,10 @@
        /// </summary>
        private VerticalListControl listview = null;
        /// <summary>
        /// 设备备注控件
        /// </summary>
        private FrameCaptionInputControl btnNote = null;
        /// <summary>
        /// 保存默认名字(主要针对没有修改名字的时候,必须要给一个默认名字给网关)
        /// </summary>
        private string saveDefultName = string.Empty;
@@ -49,6 +53,8 @@
            //设置全部回路的默认名字
            this.SetAllEpointName();
            // 设置网关所在的时区的时间给门锁时间
            this.SetDoorTime();
        }
        /// <summary>
@@ -95,7 +101,7 @@
            //设备备注
            string caption = Language.StringByID(R.MyInternationalizationString.uDeviceNote);
            string deviceName = Common.LocalDevice.Current.GetDeviceMacName(listNewDevice[0]);
            var btnNote = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2);
            this.btnNote = new FrameCaptionInputControl(caption, deviceName, listview.rowSpace / 2);
            listview.AddChidren(btnNote);
            btnNote.InitControl();
            //划线
@@ -121,22 +127,31 @@
            //划线
            btnType.AddBottomLine();
            //所属区域
            //安装位置
            var rowBeloneArea = new BelongAreaControl(listview.rowSpace / 2);
            listview.AddChidren(rowBeloneArea);
            rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uBelongArea), this.listNewDevice);
            rowBeloneArea.InitControl(Language.StringByID(R.MyInternationalizationString.uInstallationLocation), this.listNewDevice);
            //底线
            rowBeloneArea.AddBottomLine();
            var listCheck = new List<string>();
            rowBeloneArea.SelectRoomEvent += (roomKeys) =>
            {
                //选择未分配时,清空
                if (roomKeys == string.Empty) { listCheck = new List<string>(); }
                foreach (var device in this.listNewDevice)
                {
                    if (device is OTADevice)
                    {
                        continue;
                    }
                    if (roomKeys == string.Empty)
                    {
                        //如果选择的是未分配,则它的全部回路无条件全部清空房间
                        HdlRoomLogic.Current.ChangedRoom(device, roomKeys);
                        continue;
                    }
                    var room = HdlRoomLogic.Current.GetRoomByDevice(device);
                    string mainKeys = Common.LocalDevice.Current.GetDeviceMainKeys(device);
                    if (room == null)
@@ -164,6 +179,11 @@
            btnHelp.Text = Language.StringByID(R.MyInternationalizationString.uMoreSettion);
            btnHelp.ButtonClickEvent += (sender, e) =>
            {
                //更改过一次之后,则界面关闭后不再更改
                this.saveDefultName = string.Empty;
                //改名字
                btnNote.txtInput.FinishInputEvent();
                var form = new DeviceMacInfoEditorForm();
                form.AddForm(this.listNewDevice[0].DeviceAddr);
            };
@@ -217,6 +237,10 @@
            detailBackFrame.AddChidren(btnFinish);
            btnFinish.MouseUpEventHandler += (sender, e) =>
            {
                //更改过一次之后,则界面关闭后不再更改
                this.saveDefultName = string.Empty;
                //改名字
                btnNote.txtInput.FinishInputEvent();
                //关闭自身
                this.CloseForm();
            };
@@ -262,6 +286,24 @@
            }
        }
        /// <summary>
        /// 设置网关所在的时区的时间给门锁时间
        /// </summary>
        private async void SetDoorTime()
        {
            //如果是门锁
            if (this.listNewDevice[0].Type == DeviceType.DoorLock)
            {
                var doorLock = this.listNewDevice[0] as ZigBee.Device.DoorLock;
                //1、入网后先获取门锁在网关中的时区时间
                var curDateTime = DoorLock.DoorLockCommonInfo.GetDoorLockZoneTime();
                //2、将时间设置到网关中
                var dateTime = new DateTime(curDateTime.Year, curDateTime.Month, curDateTime.Day, curDateTime.Hour, curDateTime.Minute, curDateTime.Second);
                var setTimestamp = DoorLock.DoorLockCommonInfo.GetUnixTimeStamp(dateTime);
                await doorLock.RectifyDoorLockTimeAsync(int.Parse(setTimestamp));
            }
        }
        #endregion
        #region ■ 画面关闭___________________________