陈嘉乐
2020-01-08 bbc74a6dae2e90a811b2507c5896fe89aa29ccc0
Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs
@@ -100,14 +100,17 @@
            MainPage.Loading.Start ("Please wait...");
            System.Threading.Tasks.Task.Run (() => {
                try {
                    var requestObj = new Timer () { RegionID = UserConfig.Instance.CurrentRegion.RegionID };
                    var requestObj = new Timer () { RegionID = UserConfig.Instance.CurrentRegion.Id };
                    var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj);
                    var revertObj = MainPage.RequestHttps ("GetTimerList", requestJson);
                    if (revertObj.StateCode == "SUCCESS") {
                    var revertObj = MainPage.RequestHttps (API.GetTimerList, requestJson, true);
                    if (revertObj.StateCode.ToUpper() == "SUCCESS") {
                        timers = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Timer>> (revertObj.ResponseData.ToString ());
                        foreach (var schedule in timers) {
                            initSchedule (schedule);
                        }
                    } else {
                        //提示错误
                        ShowGetTimerListErrorInfo (revertObj.StateCode);
                    }
                } catch (Exception ex) {
                    Console.WriteLine (ex.Message);
@@ -118,6 +121,35 @@
                }
            });
        }
        /// <summary>
        //(1)Success 则调用此接口成功
        //(2)NoRecord 住宅未绑定网关!
        //(3)NoExist 住宅不存在!
        /// </summary>
        void ShowGetTimerListErrorInfo (string stateCodeStr)
        {
            string mes = "";
            if (stateCodeStr == "NoRecord") {
                // 住宅未绑定网关!
                mes = ErrorCode.HomeNoRecord;
            } else if (stateCodeStr == "NoExist") {
                //住宅不存在!
                mes = ErrorCode.HomeNoExist;
            } 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 ();
                });
            }
        }
        void reinitSchedule(Timer schedule)
        {
@@ -277,8 +309,8 @@
                        try {
                            var switchObj = new Timer () { Guid = (sdd as Button).Tag.ToString () };
                            var switchRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (switchObj);
                            var switchRevertObj = MainPage.RequestHttps ("IsEnableTimer", switchRequestJson);
                            if (switchRevertObj.StateCode != "SUCCESS") {
                            var switchRevertObj = MainPage.RequestHttps (API.IsEnableTimer, switchRequestJson, true);
                            if (switchRevertObj.StateCode.ToUpper()  != "SUCCESS") {
                                Application.RunOnMainThread (() => {
                                    tempSiwtch.IsSelected = !tempSiwtch.IsSelected;
                                });
@@ -300,13 +332,14 @@
                };
                rowView.AddRightView (btnDel);
                btnDel.MouseUpEventHandler += (sender, er) => {
                    var delObj = new Timer () { Guid = (sender as Button).Tag.ToString () };
                    var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
                    var delRevertObj = MainPage.RequestHttps ("DeleteTimer", delRequestJson);
                    if (delRevertObj.StateCode == "SUCCESS") {
                        rowView.RemoveFromParent ();
                        timers.Remove (timers.Find((obj) => obj.Guid == delObj.Guid));
                    }
                    DeleteTimerAction ((sender as Button).Tag.ToString (), rowView, true);
                    //var delObj = new Timer () { Guid = (sender as Button).Tag.ToString () };
                    //var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
                    //var delRevertObj = MainPage.RequestHttps ("DeleteTimer", delRequestJson);
                    //if (delRevertObj.StateCode.ToUpper() == "SUCCESS") {
                    //    rowView.RemoveFromParent ();
                    //    timers.Remove (timers.Find((obj) => obj.Guid == delObj.Guid));
                    //}
                };
                #region goSchedule
@@ -335,12 +368,7 @@
                    alert.Show ();
                    alert.ResultEventHandler += (sender2, e2) => {
                        if (e2) {
                            var delObj = new Timer () { Guid = (sender as Button).GetTagByKey ("guid").ToString () };
                            var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
                            var delRevertObj = MainPage.RequestHttps ("DeleteTimer", delRequestJson);
                            if (delRevertObj.StateCode == "SUCCESS") {
                                rowView.RemoveFromParent ();
                            }
                            DeleteTimerAction ((sender as Button).GetTagByKey ("guid").ToString (), rowView);
                        }
                    };
                };
@@ -352,12 +380,7 @@
                    alert.Show ();
                    alert.ResultEventHandler += (sender2, e2) => {
                        if (e2) {
                            var delObj = new Timer () { Guid = (sender as Button).GetTagByKey ("guid").ToString () };
                            var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
                            var delRevertObj = MainPage.RequestHttps ("DeleteTimer", delRequestJson);
                            if (delRevertObj.StateCode == "SUCCESS") {
                                rowView.RemoveFromParent ();
                            }
                            DeleteTimerAction ((sender as Button).GetTagByKey ("guid").ToString (), rowView);
                        }
                    };
                };
@@ -369,12 +392,7 @@
                    alert.Show ();
                    alert.ResultEventHandler += (sender2, e2) => {
                        if (e2) {
                            var delObj = new Timer () { Guid = (sender as Button).GetTagByKey ("guid").ToString () };
                            var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
                            var delRevertObj = MainPage.RequestHttps ("DeleteTimer", delRequestJson);
                            if (delRevertObj.StateCode == "SUCCESS") {
                                rowView.RemoveFromParent ();
                            }
                            DeleteTimerAction ((sender as Button).GetTagByKey ("guid").ToString (), rowView);
                        }
                    };
                };
@@ -383,5 +401,29 @@
            });
        }
        /// <summary>
        /// 删除定时器
        /// </summary>
        /// <param name="GUID"></param>
        /// <param name="rowView"></param>
        /// <param name="bTimersRemove"></param>
        void DeleteTimerAction (string GUID, View rowView, bool bTimersRemove = false)
        {
            var delObj = new Timer () { Guid = GUID };
            var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj);
            var delRevertObj = MainPage.RequestHttps (API.DeleteTimer, delRequestJson, true);
            if (delRevertObj.StateCode.ToUpper () == "SUCCESS") {
                rowView.RemoveFromParent ();
                if (bTimersRemove) {
                    timers.Remove (timers.Find ((obj) => obj.Guid == delObj.Guid));
                }
            } else {
                //删除失败
                Application.RunOnMainThread (() => {
                    new Alert ("", ErrorCode.FailedDelete, Language.StringByID (R.MyInternationalizationString.Close)).Show ();
                });
            }
        }
    }
}