From 09dfbfd9b77ec887c17b10f15799a1d3f56e4e17 Mon Sep 17 00:00:00 2001
From: 陈嘉乐 <cjl@hdlchina.com.cn>
Date: 星期二, 15 十二月 2020 12:04:42 +0800
Subject: [PATCH] 2020-12-15-1

---
 HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs |  178 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 121 insertions(+), 57 deletions(-)

diff --git a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
index 63fdbd6..cb146e7 100644
--- a/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
+++ b/HDL_ON/UI/UI2/3-Intelligence/Scene/SceneEditPage.cs
@@ -3,6 +3,8 @@
 using Shared;
 using HDL_ON.Entity;
 using System.Collections.Generic;
+using System.Threading;
+using HDL_ON.DAL.Server;
 
 namespace HDL_ON.UI
 {
@@ -136,9 +138,13 @@
                 Gravity = Gravity.CenterHorizontal,
                 Height = Application.GetRealWidth(184),
                 Radius = (uint)Application.GetRealWidth(12),
-                ImagePath = scene.ImagePath
+                //ImagePath = scene.ImagePath
             };
             sceneBgView.AddChidren(addSceneImageView);
+
+            //2020-12-03 淇敼鍥剧墖鍔犺浇鏂规硶
+            ImageUtlis.Current.LoadLocalOrNetworkImages(scene.ImagePath, addSceneImageView);
+
 
             #region 鍦烘櫙鍚嶇Оrow
             sceneNameView = new FrameLayout()
@@ -239,7 +245,7 @@
             #endregion
 
             #region 鍦烘櫙寤舵椂row
-            if (DB_ResidenceData.residenceData.GatewayType == 1)
+            if (DB_ResidenceData.Instance.GatewayType == 1)
             {
                 FrameLayout sceneDelayRow = new FrameLayout()
                 {
@@ -483,7 +489,7 @@
                 row.AddRightView(btnDelSceneFunction);
                 btnDelSceneFunction.MouseUpEventHandler = (sender, e) => {
                     scene.functions.Remove(scenefunction);
-                    scene.SaveSceneData();
+                    scene.SaveSceneData(true);
                     row.RemoveFromParent();
                     functionListView.Height = Application.GetRealWidth(65 * scene.functions.Count);
                     //LoadFunctionRow(functionListView);
@@ -518,14 +524,14 @@
             {
                 case FunctionType.AC:
                     sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
-                    sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").curValue.ToString() +
-                         sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").uintString;
+                    sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() +
+                         sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString;
                     sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "fan").GetCurValueText();
                     break;
                 case FunctionType.FloorHeating:
                     sceneFunctionInfo += sceneFunction.localFunction.attributes.Find((obj) => obj.key == "mode").GetCurValueText();
-                    sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").curValue.ToString() +
-                         sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temperature").uintString;
+                    sceneFunctionInfo += " " + sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").curValue.ToString() +
+                         sceneFunction.localFunction.attributes.Find((obj) => obj.key == "set_temp").uintString;
                     break;
                 case FunctionType.Dimmer:
                     perTrait = sceneFunction.localFunction.attributes.Find((obj) => obj.key == "brightness");
@@ -752,11 +758,12 @@
                 //}, pid.ToString(), 4, 3);
 
 
-                //var imageName = Guid.NewGuid().ToString();
-                var imageName = scene.sid;
+                var imageName = Guid.NewGuid().ToString();
+                //var imageName = scene.sid;
                 CropImage.TakePicture((imagePath) =>
                 {
-                    CropImageCallBack(imagePath, imageName);
+                    CropImageCallBack(imagePath);
+
                 }, imageName, 4, 3);
 
                 //if (pageTitleId == StringId.EditScene)
@@ -784,11 +791,11 @@
                 //}, pid.ToString(), 4, 3);
 
                 //浠庣浉鍐岄�夋嫨鍥剧墖瑁佸壀
-                //var imageName = Guid.NewGuid().ToString();
-                var imageName = scene.sid;
+                var imageName = Guid.NewGuid().ToString();
+                //var imageName = scene.sid;
                 CropImage.SelectPicture((imagePath) =>
                 {
-                    CropImageCallBack(imagePath, imageName);
+                    CropImageCallBack(imagePath);
                 }, imageName, 4, 3);
 
 
@@ -806,7 +813,7 @@
                     addSceneImageView.ImagePath = scene.ImagePath;
                     if (pageTitleId == StringId.EditScene)
                     {
-                        scene.SaveSceneData();
+                        scene.SaveSceneData(true);
                     }
                 };
 
@@ -823,51 +830,25 @@
         /// </summary>
         /// <param name="imagePath">瑁佸壀鍚庣殑鐪熷疄璺緞</param>
         /// <param name="imageName">鑷畾涔夌殑鍥剧墖鍚嶇О</param>
-        void CropImageCallBack(string imagePath, string imageName)
+        void CropImageCallBack(string selectImagePath)
         {
-            if (string.IsNullOrEmpty(imagePath) == true)
+            if (string.IsNullOrEmpty(selectImagePath) == true)
             {
                 return;
             }
 
-            try
+            //涓婁紶鎴愬姛鍒板洖璋�
+            Action<string> uploadSuccessAction = (imageUrl) =>
             {
-                var mPath = imagePath;
-                MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + imagePath);
-
-#if __IOS__
-
-
-#else
-                //1.浣跨敤鏂板悕瀛楋紝瑙e喅鐩稿悓璺緞涓嶅埛鏂板浘鐗囬棶棰�
-                imageName = Guid.NewGuid().ToString() + ".png";
-                //1.2濡傛灉鏄嚜瀹氫箟鍥剧墖鍒犻櫎涔嬪墠鐨�
-                if (!addSceneImageView.ImagePath.Contains("Gallery/scenebg"))
-                {
-                    Utlis.WriteLine("鍒犻櫎: " + addSceneImageView.ImagePath);
-                    System.IO.File.Delete(addSceneImageView.ImagePath);
-                }
-                //1.3濡傛灉鏄畨鍗撻渶瑕佹嫹璐濆洖鏉PP鏍圭洰褰�
-                FileUtils.FileCopyToRootPath(imagePath, imageName);
-                System.IO.File.Delete(imagePath);
-                MainPage.Log("SelectPicture 鏈�缁堣矾寰�: " + imageName);
-                mPath = imageName;
-#endif
-                //娓呯┖鍘熸潵鍥剧墖
-                addSceneImageView.ImagePath = "NULL";
-                addSceneImageView.ImagePath = mPath;
-                scene.ImagePath = mPath;
-
+                    //2020-12-03 闇�瑕佽鏈�鏂扮殑鍥剧墖璺緞鍚屾鍒颁簯绔�
+                    scene.ImagePath = imageUrl;
                 if (pageTitleId == StringId.EditScene)
                 {
-                    scene.SaveSceneData();
+                    scene.SaveSceneData(true);
                 }
-            }
-            catch
-            {
-
-            }
-
+            };
+            //涓婁紶鍥剧墖鍒颁簯绔�
+            UploadImage(selectImagePath, addSceneImageView, scene, uploadSuccessAction);
         }
 
         /// <summary>
@@ -889,7 +870,7 @@
                         }.Show(bodyView);
                         return;
                     }
-                    foreach (var tempRoom in DB_ResidenceData.functionList.scenes)
+                    foreach (var tempRoom in FunctionList.List.scenes)
                     {
                         if (scene.name == tempRoom.name)
                         {
@@ -897,8 +878,8 @@
                             return;
                         }
                     }
-                    scene.SaveSceneData();
-                    DB_ResidenceData.functionList.scenes.Add(scene);
+                    scene.SaveSceneData(true);
+                    FunctionList.List.scenes.Add(scene);
                     backAction();
                     this.RemoveFromParent();
                 }
@@ -906,11 +887,11 @@
                 {
                     Action action = () =>
                     {
-                        DB_ResidenceData.DelSceneFunction(scene.sid);
+                        FunctionList.List.DeleteScene(scene,true);
                         backAction();
                         this.RemoveFromParent();
                     };
-                    new PublicAssmebly().TipMsg(StringId.Tip, StringId.DeleteSceneTip, action);
+                    new PublicAssmebly().TipOptionMsg(StringId.Tip, StringId.DeleteSceneTip, action);
                 };
             };
         }
@@ -938,13 +919,13 @@
                 scene.name = str;
                 if (pageTitleId == StringId.EditScene)
                 {
-                    scene.SaveSceneData();
+                    scene.SaveSceneData(true);
                 }
             };
             EventHandler<MouseEventArgs> eventHandler = (sender, e) =>
             {
                 List<string> sceneNameList = new List<string>();
-                foreach (var tempScene in DB_ResidenceData.functionList.scenes)
+                foreach (var tempScene in FunctionList.List.scenes)
                 {
                     sceneNameList.Add(tempScene.name);
                 }
@@ -955,6 +936,89 @@
             btnEditSceneNameIcon.MouseUpEventHandler = eventHandler;
         }
 
+        /// <summary>
+        /// 涓婁紶鍥剧墖鏂规硶
+        /// </summary>
+        /// <param name="selectImagePath">瑁佸壀鍚庣殑鍥剧墖璺緞</param>
+        /// <param name="imageView"></param>
+        /// <param name="uploadSuccessAction"></param>
+        void UploadImage(string selectImagePath, ImageView imageView, Scene mScene, Action<string> uploadSuccessAction)
+        {
+            try
+            {
+                //MainPage.Log("SelectPicture 瑁佸壀鍥剧墖杩斿洖璺緞: " + selectImagePath);
+                //1.璇诲彇瑁佸壀鍚庣殑鍥剧墖锛岀劧鍚庡垹闄�
+                var imageBytes = Shared.IO.FileUtils.ReadFile(selectImagePath);
+                System.IO.File.Delete(selectImagePath);
 
+                var waitPage = new Loading();
+                bodyView.AddChidren(waitPage);
+                waitPage.Start(Language.StringByID(StringId.PleaseWait));
+                //寮�濮嬩笂浼�
+                new Thread(() =>
+                {
+                    try
+                    {
+                        var newImageName = mScene.name.Trim() + ".png";
+                        var uploadImageObj = new UploadImageObj()
+                        {
+                            prefix = "Scene" + Utlis.GetTimestamp(),
+                            fileName = newImageName,
+                            uid = mScene.sid,
+                            content = imageBytes,
+                        };
+
+                        var imageUrl = ImageUtlis.Current.UploadImage(uploadImageObj);
+                        if (!string.IsNullOrEmpty(imageUrl) && imageUrl.Contains(newImageName))
+                        {
+                            //涓婁紶鎴愬姛
+                            Application.RunOnMainThread(() =>
+                            {
+                                //Utlis.WriteLine("涓婁紶鎴愬姛锛�" + imageUrl);
+                                //1.2濡傛灉鏄嚜瀹氫箟鍥剧墖鍒犻櫎涔嬪墠鐨�
+                                if (!string.IsNullOrEmpty(imageView.ImagePath) && !imageView.ImagePath.Contains("Classification/Room/Roombg"))
+                                {
+                                    //Utlis.WriteLine("鍒犻櫎: " + imageView.ImagePath);
+                                    System.IO.File.Delete(imageView.ImagePath);
+                                }
+                                //閲嶅懡鍚嶄繚瀛�
+                                ImageUtlis.Current.WriteFileByBytes(imageUrl, imageBytes);
+                                imageView.ImagePath = null;
+                                imageView.ImageBytes = imageBytes;
+                                //涓婁紶鎴愬姛
+                                Utlis.ShowTip(Language.StringByID(StringId.UploadSuccessfully));
+                                uploadSuccessAction?.Invoke(imageUrl);
+                            });
+                        }
+                        else
+                        {
+                            //涓婁紶澶辫触
+                            Application.RunOnMainThread(() =>
+                            {
+                                //涓婁紶澶辫触
+                                Utlis.ShowTip(Language.StringByID(StringId.UploadFailed));
+                            });
+                        }
+
+                    }
+                    catch (Exception ex)
+                    {
+                    }
+                    finally
+                    {
+                        Application.RunOnMainThread(() =>
+                        {
+                            if (waitPage != null)
+                            {
+                                waitPage.RemoveFromParent();
+                                waitPage = null;
+                            }
+                        });
+                    }
+                })
+                { IsBackground = true }.Start();
+            }
+            catch { }
+        }
     }
 }

--
Gitblit v1.8.0