JLChen
2020-01-12 ac2ee45fadc64fe840bbba6264df3ca4622adb15
Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs
@@ -25,7 +25,7 @@
        public void ShowPage (Timer timerTemp, List<Timer> listTimer, bool isEdit = false)
        {
            UserMiddle.SettingPageView.ScrollEnabled = false;
            timerTemp.RegionID = UserConfig.Instance.CurrentRegion.RegionID;
            timerTemp.RegionID = UserConfig.Instance.CurrentRegion.Id;
            #region topview
            var topView = new RowLayout () {
                Y = Application.GetRealHeight (36),
@@ -431,11 +431,16 @@
                timerTemp.RoomName = roomNameList [0];
            }
            btnRoomChoose.Text = timerTemp.RoomName;
            #endregion
            #region Devices
            timerControlDeviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<DeviceInfo>> (timerTemp.ControlDeviceData);//devicesControlDataList
            try {
                timerControlDeviceList = Newtonsoft.Json.JsonConvert.DeserializeObject<List<DeviceInfo>> (timerTemp.ControlDeviceData);//devicesControlDataList
            } catch {
                timerControlDeviceList = null;
            }
            if (timerControlDeviceList == null)
                timerControlDeviceList = new List<DeviceInfo> ();
@@ -572,7 +577,10 @@
                    //new Alert ("", "请填写定时器名称!", "Close").Show ();
                    new Alert ("", "Please set name for the timer!", "Close").Show ();
                    return;
                } else if (listTimer.Find ((obj) => obj.TimerName == timerTemp.TimerName) != null && !isEdit) {
                } else if (listTimer.Find ((obj) => obj.TimerName == timerTemp.TimerName) != null && !isEdit) {//2020-01-09 编辑的时候也提示重复名字
                    //if (isEdit) {
                    //}
                    new Alert ("", "The timer name already exists. Please change it before saving it.", "Close").Show ();
                    return;
                }
@@ -617,8 +625,8 @@
                    timerTemp.Periodicity = timerTemp.Periodicity.Remove (timerTemp.Periodicity.Length - 1, 1);
                }
                timerTemp.IsStart = true;
                if (string.IsNullOrEmpty (timerTemp.Guid)) {
                    timerTemp.Guid = Guid.NewGuid ().ToString ();
                if (string.IsNullOrEmpty (timerTemp.Id)) {
                    timerTemp.Id = Guid.NewGuid ().ToString ();
                }
                timerTemp.ControlDeviceData = Newtonsoft.Json.JsonConvert.SerializeObject (timerControlDeviceList);
                MainPage.Loading.Start ("Saving...");
@@ -630,17 +638,19 @@
                        var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (timerTemp);
                        ResponsePack revertObj = null;
                        if (isEdit) {
                            revertObj = MainPage.RequestHttps ("EditTimer", requestJson);
                        } else {
                            revertObj = MainPage.RequestHttps ("AddTimer", requestJson);
                            revertObj = MainPage.RequestHttps (API.EditTimer, requestJson);
                        } else {
                            revertObj = MainPage.RequestHttps (API.AddTimer, requestJson);
                        }
                        Application.RunOnMainThread (() => {
                            if (revertObj == null) {
                                new Alert ("", "Unable to save data, please check the network.", "Close").Show ();
                            } else if (revertObj.StateCode == "SUCCESS") {
                            } else if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                                this.RemoveFromParent ();
                                action (timerTemp);
                            } else {
                                ShowErrorInfo (revertObj.StateCode);
                            }
                        });
                    } catch (Exception ex) {
@@ -655,6 +665,38 @@
        }
        /// <summary>
        //(1)Success 则调用此接口成功
        //(2)NoRecord 住宅未绑定网关!
        //(3)NoExist 住宅不存在!
        //(4)Exist 生成的Guid已存在!
        /// </summary>
        void ShowErrorInfo (string stateCodeStr)
        {
            string mes = "";
            if (stateCodeStr == "NoRecord") {
                // 住宅未绑定网关!
                mes = ErrorCode.HomeNoRecord;
            } else if (stateCodeStr == "NoExist") {
                //住宅不存在!
                mes = ErrorCode.HomeNoExist;
            } else if (stateCodeStr == "Exist") {
                //生成的Guid已存在!
                mes = ErrorCode.GuidExist;
            }  else if (stateCodeStr == ErrorCode.NetworkError) {
                mes = ErrorCode.NetworkError;
            } else {
                mes = ErrorCode.OperationFailed + ErrorCode.Reason + stateCodeStr;
            }
            if (!string.IsNullOrEmpty (mes)) {
                //Application.RunOnMainThread (() => {
                new Alert ("", mes, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                //});
            }
        }
        private static void InitDeviceListView (List<Common> roomDeviceList, List<DeviceInfo> timerControlDeviceList, FrameLayout devicesListView)
        {
            devicesListView.RemoveAll ();