From d53e6af2c5f17838fa79659614b15a2a1f383399 Mon Sep 17 00:00:00 2001 From: wxr <464027401@qq.com> Date: 星期五, 31 三月 2023 10:04:58 +0800 Subject: [PATCH] 1 --- Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs | 384 +++++++++++++++++++++++++++--------------------------- 1 files changed, 189 insertions(+), 195 deletions(-) diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs index 535402e..24c5ec1 100644 --- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs +++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs @@ -6,15 +6,26 @@ { public class UserSchedule : FrameLayout { + /// <summary> + /// 涓婁笅婊戝姩鐖舵帶浠� + /// </summary> VerticalScrolViewLayout bodyView; - List<Timer> timers; - - public UserSchedule() + /// <summary> + /// 瀹氭椂鍣ㄥ垪琛� + /// </summary> + List<Timer> timerList; + /// <summary> + /// 瀵硅薄鏋勯�犲嚱鏁� + /// </summary> + /// <param name="act">杩斿洖鍑芥暟</param> + public UserSchedule () { BackgroundColor = SkinStyle.Current.MainColor; - timers = new List<Timer> (); + timerList = new List<Timer> (); } - + /// <summary> + /// 瀵硅薄涓诲叆鍙� + /// </summary> public void ShowPage () { #region 鏍囬 @@ -34,7 +45,7 @@ topView.AddChidren (title); var back = new Button () { - Height = Application.GetRealHeight (100), + Height = Application.GetRealWidth (100), Width = Application.GetRealWidth (85), UnSelectedImagePath = "Item/Back.png", SelectedImagePath = "Item/BackSelected.png", @@ -46,7 +57,7 @@ var ItemButton = new Button () { Width = Application.GetRealWidth (55), - Height = Application.GetRealHeight (55), + Height = Application.GetRealWidth (55), UnSelectedImagePath = "Item/+.png", SelectedImagePath = "Item/+.png", X = Application.GetRealWidth (640 - 80), @@ -64,14 +75,14 @@ try { System.Threading.Thread.Sleep (100); Application.RunOnMainThread (() => { - var tt = new Timer () { TimeZone = Convert.ToInt32 (DateTime.Now.ToString ("%z")), RoomName = "ALL", Periodicity = ((int)DateTime.Now.DayOfWeek).ToString (), TimerType = TimerType.Week, TimerName = "Schedule " + timers.Count.ToString(), ExecutionTime = DateTime.Now.ToString ("HH:mm") }; + var timer = new Timer () { TimeZone = Convert.ToInt32 (DateTime.Now.ToString ("%z")),timerType = TimerType.Week, timerName = "Schedule " + timerList.Count.ToString(), executeUtcTime = DateTime.Now.ToString ("HH:mm") }; Action<Timer> refLoad = (obj) => { - timers.Add (obj); - initSchedule (obj); + timerList.Add (obj); + InitSchedule (obj); }; var scheduleShowView = new AddSchedule (refLoad); UserMiddle.SettingPageView.AddChidren (scheduleShowView); - scheduleShowView.ShowPage (tt,timers,false); + scheduleShowView.ShowPage (timer,timerList,false); UserMiddle.SettingPageView.PageIndex = 2; }); }catch(Exception ex){ @@ -92,121 +103,16 @@ BackgroundColor = SkinStyle.Current.ViewColor }; AddChidren (bodyView); + ///鍔犺浇璁℃暟鍣ㄥ垪琛ㄧ晫闈� InitScheduleView (); } - void InitScheduleView () - { - MainPage.Loading.Start ("Please wait..."); - System.Threading.Tasks.Task.Run (() => { - try { - var requestObj = new Timer () { RegionID = UserConfig.Instance.CurrentRegion.Id }; - var requestJson = Newtonsoft.Json.JsonConvert.SerializeObject (requestObj); - var revertObj = MainPage.RequestHttps (API.GetTimerList, requestJson); - if (revertObj.StateCode.ToUpper() == StateCode.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) { - Utlis.WriteLine (ex.Message); - } finally { - Application.RunOnMainThread (() => { - MainPage.Loading.Hide (); - }); - } - }); - } - + /// <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) - { - for (int i = 0;i< bodyView.ChildrenCount;i++){ - var view = bodyView.GetChildren (i); - if(view.GetType() == typeof(RowLayout)){ - var rowView = view as RowLayout; - if (rowView.GetTagByKey("guid").ToString () == schedule.Id) { - for (int j = 0; j < rowView.ChildrenCount; j++) { - var viewChilren = rowView.GetChildren (j); - if (viewChilren.GetType () == typeof (Button)) { - var btn = viewChilren as Button; - if(btn.Tag!= null){ - switch (btn.Tag.ToString ()) { - case "btnScheduleName": - btn.Text = schedule.TimerName; - break; - case "btnScheduleRoomName": - btn.Text = schedule.RoomName; - break; - case "btnScheduleTime": - btn.Text = schedule.ExecutionTime; - break; - case "btnScheduleDay": - btn.Text = ""; - if (schedule.Periodicity.Contains ("0")) { - btn.Text += "Sun "; - } - if (schedule.Periodicity.Contains ("1")) { - btn.Text += "Mon "; - } - if (schedule.Periodicity.Contains ("2")) { - btn.Text += "Tues "; - } - if (schedule.Periodicity.Contains ("3")) { - btn.Text += "Wed "; - } - if (schedule.Periodicity.Contains ("4")) { - btn.Text += "Thur "; - } - if (schedule.Periodicity.Contains ("5")) { - btn.Text += "Fri "; - } - if (schedule.Periodicity.Contains ("6")) { - btn.Text += "Sat "; - } - break; - } - } - } - } - } - } - } - } - - void initSchedule(Timer schedule) + /// <param name="schedule"></param> + void InitSchedule (Timer schedule) { Application.RunOnMainThread (() => { @@ -214,7 +120,7 @@ Height = Application.GetRealHeight (180), }; bodyView.AddChidren (rowView); - rowView.AddTag ("guid", schedule.Id); + rowView.AddTag ("guid", schedule.id); var btnScheduleName = new Button () { X = Application.GetRealWidth (30), @@ -222,12 +128,12 @@ Width = Application.GetRealWidth (290), TextAlignment = TextAlignment.CenterLeft, TextColor = SkinStyle.Current.TextColor1, - Text = schedule.TimerName, + Text = schedule.timerName, TextSize = 14, Tag = "btnScheduleName", }; rowView.AddChidren (btnScheduleName); - btnScheduleName.AddTag ("guid", schedule.Id); + btnScheduleName.AddTag ("guid", schedule.id); var btnScheduleRoomName = new Button () { X = btnScheduleName.Right, @@ -239,21 +145,21 @@ Tag = "btnScheduleRoomName", }; rowView.AddChidren (btnScheduleRoomName); - btnScheduleRoomName.AddTag ("guid", schedule.Id); + btnScheduleRoomName.AddTag ("guid", schedule.id); var btnScheduleTime = new Button () { X = Application.GetRealWidth (30), Y = Application.GetRealHeight (60), Height = Application.GetRealHeight (60), Width = Application.GetRealWidth (150), - Text = schedule.ExecutionTime, + Text = schedule.executeUtcTime, TextColor = SkinStyle.Current.TextColor1, TextAlignment = TextAlignment.CenterLeft, TextSize = 24, Tag = "btnScheduleTime", }; rowView.AddChidren (btnScheduleTime); - btnScheduleTime.AddTag ("guid", schedule.Id); + btnScheduleTime.AddTag ("guid", schedule.id); var btnScheduleDay = new Button () { X = Application.GetRealWidth (33), @@ -266,51 +172,49 @@ Tag = "btnScheduleDay", }; rowView.AddChidren (btnScheduleDay); - btnScheduleDay.AddTag ("guid", schedule.Id); + btnScheduleDay.AddTag ("guid", schedule.id); - if (schedule.Periodicity.Contains ("0")) { + if (schedule.whichDay.Contains (0)) { btnScheduleDay.Text += "Sun "; } - if (schedule.Periodicity.Contains ("1")) { + if (schedule.whichDay.Contains (1)) { btnScheduleDay.Text += "Mon "; } - if (schedule.Periodicity.Contains ("2")) { + if (schedule.whichDay.Contains (2)) { btnScheduleDay.Text += "Tues "; } - if (schedule.Periodicity.Contains ("3")) { + if (schedule.whichDay.Contains (3)) { btnScheduleDay.Text += "Wed "; } - if (schedule.Periodicity.Contains ("4")) { + if (schedule.whichDay.Contains (4)) { btnScheduleDay.Text += "Thur "; } - if (schedule.Periodicity.Contains ("5")) { + if (schedule.whichDay.Contains (5)) { btnScheduleDay.Text += "Fri "; } - if (schedule.Periodicity.Contains ("6")) { + if (schedule.whichDay.Contains (6)) { btnScheduleDay.Text += "Sat "; } var tempSiwtch = new Button () { - Width = Application.GetMinRealAverage (90), - Height = Application.GetMinRealAverage (53), + Width = Application.GetRealWidth (90), + Height = Application.GetRealWidth (53), X = Application.GetRealWidth (640 - 90 - 20), Y = Application.GetRealHeight (100), UnSelectedImagePath = "Item/SwitchClose.png", SelectedImagePath = "Item/SwitchOpen.png", - IsSelected = schedule.IsStart, - Tag = schedule.Id + IsSelected = schedule.isEnable, + Tag = schedule.id }; rowView.AddChidren (tempSiwtch); tempSiwtch.MouseUpEventHandler += (sdd, ffd) => { - tempSiwtch.IsSelected = !tempSiwtch.IsSelected; MainPage.Loading.Start ("Loading"); System.Threading.Tasks.Task.Run (() => { try { - var switchObj = new Timer () { Id = (sdd as Button).Tag.ToString () }; - var switchRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (switchObj); - var switchRevertObj = MainPage.RequestHttps (API.IsEnableTimer, switchRequestJson); - if (switchRevertObj.StateCode.ToUpper() != StateCode.SUCCESS) { + + var switchRevertObj =SmartHome.Send.SwitchTimer (schedule); + if (switchRevertObj.Code== StateCode.SUCCESS) { Application.RunOnMainThread (() => { tempSiwtch.IsSelected = !tempSiwtch.IsSelected; }); @@ -324,36 +228,27 @@ } }); }; - Button btnDel = new Button () { TextID = R.MyInternationalizationString.Del, BackgroundColor = SkinStyle.Current.DelColor, - Tag = schedule.Id + Tag = schedule.id }; rowView.AddRightView (btnDel); btnDel.MouseUpEventHandler += (sender, er) => { if ((sender as Button).Tag == null) return; - //string uuid = (sender as Button).Tag.ToString (); - 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() == StateCode.SUCCESS) { - // rowView.RemoveFromParent (); - // timers.Remove (timers.Find((obj) => obj.Guid == delObj.Guid)); - //} + }; #region goSchedule EventHandler<MouseEventArgs> eventHandler = (sender, er) => { Action<Timer> refLoad = (obj) => { - reinitSchedule (obj); + ReinitSchedule (obj); }; var scheduleShowView = new AddSchedule (refLoad); UserMiddle.SettingPageView.AddChidren (scheduleShowView); - scheduleShowView.ShowPage (schedule, timers, true); + scheduleShowView.ShowPage (schedule, timerList, true); UserMiddle.SettingPageView.PageIndex = 2; }; @@ -364,8 +259,8 @@ #endregion #region delSchedule - btnScheduleName.MouseLongEventHandler += (sender, e) => { - var alert = new Alert ("",Language.StringByID (R.MyInternationalizationString.SureDelete), + EventHandler<MouseEventArgs> Del = (sender, er) => { + var alert = new Alert ("", Language.StringByID (R.MyInternationalizationString.SureDelete), Language.StringByID (R.MyInternationalizationString.Cancel), Language.StringByID (R.MyInternationalizationString.Confrim)); alert.Show (); @@ -375,39 +270,141 @@ DeleteTimerAction ((sender as Button).GetTagByKey ("guid").ToString (), rowView); } }; - }; - btnScheduleTime.MouseLongEventHandler += (sender, e) => { - var alert = new Alert ("", - Language.StringByID (R.MyInternationalizationString.SureDelete), - Language.StringByID (R.MyInternationalizationString.Cancel), - Language.StringByID (R.MyInternationalizationString.Confrim)); - alert.Show (); - alert.ResultEventHandler += (sender2, e2) => { - if (e2) { - if ((sender as Button).GetTagByKey ("guid") == null) return; - DeleteTimerAction ((sender as Button).GetTagByKey ("guid").ToString (), rowView); - } - }; - }; - btnScheduleDay.MouseLongEventHandler += (sender, e) => { - var alert = new Alert ("", - Language.StringByID (R.MyInternationalizationString.SureDelete), - Language.StringByID (R.MyInternationalizationString.Cancel), - Language.StringByID (R.MyInternationalizationString.Confrim)); - alert.Show (); - alert.ResultEventHandler += (sender2, e2) => { - if (e2) { - if ((sender as Button).GetTagByKey ("guid") == null) return; - DeleteTimerAction ((sender as Button).GetTagByKey ("guid").ToString (), rowView); - } - }; - }; -#endregion + }; + + btnScheduleName.MouseLongEventHandler += Del; + btnScheduleTime.MouseLongEventHandler += Del; + btnScheduleDay.MouseLongEventHandler += Del; + #endregion }); } + /// <summary> + /// 鏇存柊鐨勫畾鏃跺櫒鐘舵�� + /// </summary> + /// <param name="schedule"></param> + void ReinitSchedule (Timer schedule) + { + for (int i = 0; i < bodyView.ChildrenCount; i++) { + var view = bodyView.GetChildren (i); + if (view.GetType () == typeof (RowLayout)) { + var rowView = view as RowLayout; + if (rowView.GetTagByKey ("guid").ToString () == schedule.id.ToString ()) { + for (int j = 0; j < rowView.ChildrenCount; j++) { + var viewChilren = rowView.GetChildren (j); + if (viewChilren.GetType () == typeof (Button)) { + var btn = viewChilren as Button; + if (btn.Tag != null) { + switch (btn.Tag.ToString ()) { + case "btnScheduleName": + btn.Text = schedule.timerName; + break; + case "btnScheduleRoomName": + btn.Text = schedule.RoomName; + break; + case "btnScheduleTime": + btn.Text = schedule.executeUtcTime; + break; + case "btnScheduleDay": + btn.Text = ""; + if (schedule.whichDay.Contains (0)) { + btn.Text += "Sun "; + } + if (schedule.whichDay.Contains (1)) { + btn.Text += "Mon "; + } + if (schedule.whichDay.Contains (2)) { + btn.Text += "Tues "; + } + if (schedule.whichDay.Contains (3)) { + btn.Text += "Wed "; + } + if (schedule.whichDay.Contains (4)) { + btn.Text += "Thur "; + } + if (schedule.whichDay.Contains (5)) { + btn.Text += "Fri "; + } + if (schedule.whichDay.Contains (6)) { + btn.Text += "Sat "; + } + break; + } + } + } + } + } + } + } + } + /// <summary> + /// 璇诲彇瀹氭椂鍣ㄥ垪琛� + /// </summary> + void InitScheduleView () + { + SmartHome.Method.GetDeviceList (); + MainPage.Loading.Start ("Please wait..."); + System.Threading.Tasks.Task.Run (() => { + try { + var revertObj = SmartHome.Send.GetTimerList (); + if (revertObj.Code == StateCode.SUCCESS) { + if (revertObj.Data == null) { + return; + } + if (string.IsNullOrEmpty (revertObj.Data.ToString ())) { + return; + } + var jsonDate = Newtonsoft.Json.Linq.JObject.Parse (revertObj.Data.ToString ()); + var array = jsonDate ["list"].ToString (); + var jArray = Newtonsoft.Json.Linq.JArray.Parse (array); + for (int a = 0; a < jArray.Count; a++) { + Timer timer = new Timer (); + var jay = jArray [a]; + timer.id = jay ["id"].ToString (); + timer.timerName =jay ["timerName"].ToString (); + timer.RoomName = jay ["room"].ToString (); + timer.userId = jay ["userId"].ToString (); + timer.isEnable = Boolean.Parse (jay ["isEnable"].ToString ()); + timer.executeUtcTime = SmartHome.Method.GetLocalUtcTime(jay ["executeUtcTime"].ToString ()); + timer.timerType = (TimerType)System.Enum.Parse (typeof (TimerType), jay ["timerType"].ToString ()); + var whichDayJson = jay ["whichDay"].ToString (); + var whichDayAry = Newtonsoft.Json.Linq.JArray.Parse (whichDayJson); + for (int b = 0; b < whichDayAry.Count; b++) { + var days = whichDayAry [b].ToString (); + timer.whichDay.Add (int.Parse (days)); + } + var controlDataStr = jay ["controlData"].ToString (); + var controlDataJosn = Newtonsoft.Json.JsonConvert.DeserializeObject<DeviceDate> (controlDataStr); + if (controlDataJosn != null) { + timer.controlData = controlDataJosn; + } + var timerJosn = timerList.Find ((c) => c.id == timer.id); + if (timerJosn == null && !string.IsNullOrEmpty (timer.id)) { + timerList.Add (timer); + } + } + } else { + //鎻愮ず閿欒 + IMessageCommon.Current.ShowErrorInfoAlter (revertObj.Code); + + //SmartHome.Method method = new SmartHome.Method (); + //method.ShowGetTimerListErrorInfo (revertObj.Data.ToString ()); + } + } catch (Exception ex) { + Utlis.WriteLine (ex.Message); + } finally { + Application.RunOnMainThread (() => { + MainPage.Loading.Hide (); + for (int i = 0; i < timerList.Count; i++) { + var schedule = timerList [i]; + InitSchedule (schedule); + } + }); + } + }); + } /// <summary> /// 鍒犻櫎瀹氭椂鍣� /// </summary> @@ -420,16 +417,11 @@ Application.RunOnMainThread (() => { MainPage.Loading.Start ("Please wait..."); }); - - var delObj = new Timer () { Id = GUID }; - var delRequestJson = Newtonsoft.Json.JsonConvert.SerializeObject (delObj); - var delRevertObj = MainPage.RequestHttps (API.DeleteTimer, delRequestJson); - - - if (delRevertObj.StateCode.ToUpper () == StateCode.SUCCESS) { + var delRevertObj =SmartHome.Send.DelTimer (GUID); + if (delRevertObj.Code == StateCode.SUCCESS) { rowView.RemoveFromParent (); if (bTimersRemove) { - timers.Remove (timers.Find ((obj) => obj.Id == delObj.Id)); + timerList.Remove (timerList.Find ((obj) => obj.id.ToString() == GUID)); } } else { //鍒犻櫎澶辫触 @@ -444,5 +436,7 @@ } + + } } -- Gitblit v1.8.0