From d4811b7d34b45ff6b21b97f11da128b5572ec526 Mon Sep 17 00:00:00 2001
From: wei <kaede@kaededeMacBook-Air.local>
Date: 星期三, 03 三月 2021 16:03:03 +0800
Subject: [PATCH] 20210303-1

---
 HDL_ON/Entity/Function/Scene.cs |  140 +++++++++++++++++++++++++++-------------------
 1 files changed, 82 insertions(+), 58 deletions(-)

diff --git a/HDL_ON/Entity/Function/Scene.cs b/HDL_ON/Entity/Function/Scene.cs
index 4ac4da6..c974e1e 100644
--- a/HDL_ON/Entity/Function/Scene.cs
+++ b/HDL_ON/Entity/Function/Scene.cs
@@ -1,5 +1,6 @@
 锘縰sing System;
 using System.Collections.Generic;
+using HDL_ON.Common;
 using HDL_ON.DAL.Server;
 using Shared;
 
@@ -35,7 +36,7 @@
         /// <summary>
         /// 浜戠鍞竴ID
         /// </summary>
-        public string userSceneId = "";
+        public string userSceneId = null;
         /// <summary>
         /// 鍦烘櫙sid
         /// </summary>
@@ -56,44 +57,18 @@
         /// 鎵�灞炴埧闂村垪琛�
         /// </summary>
         public List<string> roomIds = new List<string>();
-        /// <summary>
-        /// 鎵�灞炴埧闂村垪琛�
-        /// </summary>
-        public List<string> uids = new List<string>();
+        ///// <summary>
+        ///// 鎵�灞炴埧闂村垪琛�
+        ///// </summary>
+        //public List<string> uids = new List<string>();
         /// <summary>
         /// 寤舵椂
         /// </summary>
         public string delay = "0";
-        ///// <summary>
-        ///// 寤舵椂鏄剧ず鐨勬枃鏈�
-        ///// </summary>
-        //[Newtonsoft.Json.JsonIgnore]
-        //public string delayText
-        //{
-        //    get
-        //    {
-        //        string text = "";
-        //        switch (delay)
-        //        {
-        //            case 0:
-        //                text = Language.StringByID(StringId.NoDelay);
-        //                break;
-        //            case 30:
-        //                text = "30s";
-        //                break;
-        //            case 60:
-        //                text = "1min";
-        //                break;
-        //            case 120:
-        //                text = "2min";
-        //                break;
-        //            case 300:
-        //                text = "5min";
-        //                break;
-        //        }
-        //        return text;
-        //    }
-        //}
+        /// <summary>
+        /// 鍦烘櫙鐨勬渶濂戒竴娆℃墽琛屾椂闂�
+        /// </summary>
+        public string LastExecutionTime = "";
 
         /// <summary>
         /// 鍦烘櫙鍒嗙粍
@@ -223,7 +198,7 @@
             }
             if (roomNameList == "" )
             {
-                roomNameList = Shared.Language.StringByID(StringId.WholeHouseScene);
+                roomNameList = Shared.Language.StringByID(StringId.WholeZone);
             }
             return roomNameList;
         }
@@ -239,40 +214,89 @@
                 return "SceneData_" + sid;
             }
         }
-
         /// <summary>
-        /// 淇濆瓨鍔熻兘鏁版嵁
+        /// 鍦烘櫙鎵ц\鍊掕鏃�
         /// </summary>
-        public void SaveSceneData(bool upServer)
+        /// <param name="btnShowDelay"></param>
+        public void SceneCountDown(Button btnShowDelay)
         {
-            if (upServer)
+            //鍦烘櫙姝e湪鍊掕鏃舵墽琛屼腑
+            if (LastExecutionTime != "" && Convert.ToDouble(LastExecutionTime) + Convert.ToDouble(delay) > Convert.ToDouble(Utlis.GetTimestamp(false)))
             {
-                UploadScene();
-            }
-            else
-            {
-                var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
-                Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd);
-                MainPage.Log($"Save Scene Data : {savePath}");
+                int time = 0;
+                int.TryParse(Convert.ToInt32(
+                    Convert.ToDouble(LastExecutionTime) + Convert.ToDouble(delay) - Convert.ToDouble(Utlis.GetTimestamp(false))
+                    ).ToString(), out time);
+                if (time > 0)
+                {
+                    new System.Threading.Thread(() =>
+                    {
+                        if (time > 0)
+                        {
+                            while (time > 0)
+                            {
+                                Application.RunOnMainThread(() =>
+                                {
+                                    if (time > 60)
+                                    {
+                                        btnShowDelay.Text = (time / 60).ToString() + "min" + time % 60 + "s";
+                                    }
+                                    else
+                                    {
+                                        btnShowDelay.Text = time.ToString() + "s";
+                                    }
+                                });
+                                System.Threading.Thread.Sleep(1000);
+                                time--;
+                            }
+                            Application.RunOnMainThread(() =>
+                            {
+                                btnShowDelay.Text = "";
+                            });
+                        }
+                    })
+                    { IsBackground = true, Priority = System.Threading.ThreadPriority.BelowNormal }.Start();
+                }
             }
         }
+        /// <summary>
+        /// 淇濆瓨鍦烘櫙鏁版嵁鏂囦欢
+        /// </summary>
+        public void SaveSceneFile()
+        {
+            var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
+            FileUtlis.Files.WriteFileByBytes(savePath, ssd);
+            MainPage.Log($"Save Scene Data : {savePath}");
+        }
+
         /// <summary>
         /// 鏀惰棌鍦烘櫙
         /// </summary>
         /// <returns></returns>
-        public string CollectScene()
+        public void CollectScene()
         {
-            var pm = new HttpServerRequest();
-            if (this.collect)
+            var result = StateCode.SUCCESS;
+            new System.Threading.Thread(() =>
             {
-                var revPack = pm.CollectScene(this.userSceneId);
-                return revPack;
-            }
-            else
-            {
-                var revPack = pm.CancelCollectScene(this.userSceneId);
-                return revPack;
-            }
+                if (collect)
+                {
+                    result = ApiUtlis.Ins.HttpRequest.CollectScene(userSceneId);
+                }
+                else
+                {
+                    result = ApiUtlis.Ins.HttpRequest.CancelCollectScene(userSceneId);
+                }
+                //鎻愮ず閿欒
+                if (result != StateCode.SUCCESS)
+                {
+                    Application.RunOnMainThread(() =>
+                    {
+                        collect = !collect;
+                        IMessageCommon.Current.ShowErrorInfoAlter(result);
+                    });
+                }
+            })
+            { IsBackground = true }.Start();
         }
 
         /// <summary>

--
Gitblit v1.8.0