From fcde8ea5ceb4c208f9a6e7a972666d0045850e3f Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期五, 26 三月 2021 17:36:05 +0800
Subject: [PATCH] 2021-03-26 1.更新

---
 Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs    |    4 
 Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs |  161 ++++++++++++++++++++++++++++++++++++++++
 Crabtree/SmartHome/HDL/Common/Constant.cs                             |    5 +
 Crabtree/.vs/SmartHome/xs/UserPrefs.xml                               |   33 ++++++--
 4 files changed, 192 insertions(+), 11 deletions(-)

diff --git a/Crabtree/.vs/SmartHome/xs/UserPrefs.xml b/Crabtree/.vs/SmartHome/xs/UserPrefs.xml
index f96c20d..218f043 100644
--- a/Crabtree/.vs/SmartHome/xs/UserPrefs.xml
+++ b/Crabtree/.vs/SmartHome/xs/UserPrefs.xml
@@ -1,31 +1,48 @@
 锘�<Properties StartupConfiguration="{1D83BF28-BA88-4152-BA41-D7EFE90A5437}|Default">
   <MonoDevelop.Ide.ItemProperties.ON.Droid PreferredExecutionTarget="Android.Android_Accelerated_Oreo" />
-  <MonoDevelop.Ide.Workbench ActiveDocument="SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs">
+  <MonoDevelop.Ide.Workbench ActiveDocument="SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs">
     <Files>
-      <File FileName="SmartHome/UI/SimpleControl/Phone/Scene/UserDeviceToScene.cs" Line="22" Column="19" />
-      <File FileName="SmartHome/UI/SimpleControl/Phone/Schedule/AddSchedule.cs" Line="52" Column="33" />
-      <File FileName="SmartHome/HDL/Operation/ResponseEntity/Timer.cs" Line="45" Column="23" />
+      <File FileName="SmartHome/HDL/Common/Constant.cs" Line="60" Column="31" />
+      <File FileName="SmartHome/HDL/Common/HttpUtil/HttpServerRequest.cs" Line="716" Column="10" />
       <File FileName="SmartHome/UI/SimpleControl/Phone/Scene/SceneMethod.cs" Line="1" Column="1" />
-      <File FileName="SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs" Line="58" Column="33" />
+      <File FileName="SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs" Line="344" Column="33" />
     </Files>
     <Pads>
       <Pad Id="ProjectPad">
         <State name="__root__">
           <Node name="SmartHome" expanded="True">
             <Node name="Shared" expanded="True">
+              <Node name="DLL" expanded="True" />
               <Node name="HDL" expanded="True">
+                <Node name="Common" expanded="True">
+                  <Node name="HttpUtil" expanded="True" />
+                </Node>
                 <Node name="Operation" expanded="True">
                   <Node name="ResponseEntity" expanded="True" />
                 </Node>
               </Node>
+              <Node name="IO" expanded="True" />
+              <Node name="Net" expanded="True" />
               <Node name="UI" expanded="True">
                 <Node name="SimpleControl" expanded="True">
                   <Node name="Phone" expanded="True">
+                    <Node name="FoolHeat" expanded="True" />
+                    <Node name="FresAir" expanded="True" />
+                    <Node name="Guide" expanded="True" />
                     <Node name="Light" expanded="True" />
-                    <Node name="Scene" expanded="True">
-                      <Node name="UserAddSceneDevice.cs" selected="True" />
+                    <Node name="Register" expanded="True" />
+                    <Node name="Room" expanded="True" />
+                    <Node name="Scene" expanded="True" />
+                    <Node name="Schedule" expanded="True">
+                      <Node name="UserSchedule.cs" selected="True" />
                     </Node>
-                    <Node name="Schedule" expanded="True" />
+                    <Node name="Security" expanded="True" />
+                    <Node name="Sensor" expanded="True" />
+                    <Node name="System" expanded="True" />
+                    <Node name="TV" expanded="True" />
+                    <Node name="UniversalDevice" expanded="True" />
+                    <Node name="User" expanded="True" />
+                    <Node name="Warning" expanded="True" />
                   </Node>
                 </Node>
               </Node>
diff --git a/Crabtree/SmartHome/HDL/Common/Constant.cs b/Crabtree/SmartHome/HDL/Common/Constant.cs
index 33bc993..5b69e04 100644
--- a/Crabtree/SmartHome/HDL/Common/Constant.cs
+++ b/Crabtree/SmartHome/HDL/Common/Constant.cs
@@ -7,7 +7,10 @@
     /// </summary>
     public class Constant
     {
-
+        /// <summary>
+        /// 
+        /// </summary>
+        public const string Equipment = "Equipment";
 
         /// <summary>
         /// 瑁佸壀鍥剧墖鐨勯珮澶у皬
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs
index c725d7f..2d2121b 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Scene/UserAddSceneDevice.cs
@@ -145,6 +145,13 @@
                 if (null == common) {
                     continue;
                 }
+
+                var newName = CheckIfNameChanged (deviceFilePath, common.Type.ToString(), common.Name);
+                if (!string.IsNullOrEmpty (newName)) {
+                    Utlis.WriteLine (common.Name + " 鍦烘櫙璁惧鏂板娉細" + newName);
+                    common.Name = newName;
+                }
+
                 string iconPath = "";
 
                 if (common.Type == DeviceType.UniversalDevice) {
@@ -2536,5 +2543,159 @@
                 }
             }
         }
+
+
+
+        /// <summary>
+        /// 2021-03-26
+        /// 妫�娴嬪垽鏂娉ㄥ悕鏄惁淇敼杩囷紝淇敼杩囧垯鏇存柊涓�娆�
+        /// 淇娴嬭瘯鍙嶉BUG锛堣澶囧娉ㄤ慨鏀瑰悗锛屽満鏅噷闈㈢殑璁惧澶囨敞娌℃湁鍚屾锛岄渶鍒犻櫎鍘熸潵璁惧閲嶆柊娣诲姞锛屽娉ㄦ墠鏇存柊銆傦級
+        /// </summary>
+        /// <param name="deviceFilePath"></param>
+        /// <param name="deviceType"></param>
+        /// <param name="deviceName"></param>
+        string CheckIfNameChanged (string deviceFilePath, string deviceType, string deviceName)
+        {
+            try {
+                string [] str = deviceFilePath.Split (Constant.Equipment);
+                if (str == null || str.Length != 2) return "";
+                //1.鎵惧嚭鏈湴鐪熷疄鐨勮澶�
+                string trueDeviceFilePath = Constant.Equipment + str [1];
+                Common common = Newtonsoft.Json.JsonConvert.DeserializeObject<Common> (CommonPage.MyEncodingUTF8.GetString (IO.FileUtils.ReadFile (trueDeviceFilePath)));
+                if (null == common) {
+                    return "";
+                }
+                //2.鏈湴瀛樺湪鐪熷疄璁惧锛屽垽鏂娉ㄦ槸鍚︿竴鑷�
+                if (deviceName.Equals (common.Name) || deviceName == common.Name) return "";
+                //3.涓嶄竴鑷存洿鏂板娉ㄤ繚瀛樺埌鏈湴
+                string newName = common.Name;
+                //4.杩欓噷娉ㄦ剰锛氳浆鎹㈡垚褰撳墠璁惧绫诲瀷鐨勫璞★紝涓嶈兘杞崲鎴怌ommon锛屼笉鐒朵繚瀛樺悗浼氫涪澶辫缃殑鎺у埗鐘舵�佸�兼暟鎹��
+                if (deviceType == DeviceType.LightSwitch.ToString () || deviceType == DeviceType.LightEnergySocket.ToString () || deviceType == DeviceType.LightEnergySwitch.ToString () || deviceType == DeviceType.LightSwitchSocket.ToString ()) {
+                    LightSwitch lightSwitch = Newtonsoft.Json.JsonConvert.DeserializeObject<LightSwitch> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                    if (null == lightSwitch) {
+                        return "";
+                    }
+                    lightSwitch.Name = newName;
+                    IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (lightSwitch)));
+
+                } else if (deviceType == DeviceType.LightMixSwitch.ToString ()) {
+                    LightMixSwitch lightSwitch = Newtonsoft.Json.JsonConvert.DeserializeObject<LightMixSwitch> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                    if (null == lightSwitch) {
+                        return "";
+                    }
+                    lightSwitch.Name = newName;
+                    IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (lightSwitch)));
+
+                } else if (deviceType == DeviceType.LightDimming.ToString ()) {
+                    LightDimming lightDimming = Newtonsoft.Json.JsonConvert.DeserializeObject<LightDimming> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                    if (null == lightDimming) {
+                        return "";
+                    }
+                    lightDimming.Name = newName;
+                    IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (lightDimming)));
+
+
+                } else if (deviceType == DeviceType.LightMixDimming.ToString ()) {
+                    LightMixDimming lightDimming = Newtonsoft.Json.JsonConvert.DeserializeObject<LightMixDimming> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                    if (null == lightDimming) {
+                        return "";
+                    }
+                    lightDimming.Name = newName;
+                    IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (lightDimming)));
+
+
+                } else if (deviceType == DeviceType.LightRGB.ToString ()) {
+                    LightLogic lightRGB = Newtonsoft.Json.JsonConvert.DeserializeObject<LightLogic> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                    if (null == lightRGB) {
+                        return "";
+                    }
+
+                    lightRGB.Name = newName;
+                    IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (lightRGB)));
+
+                } else if (deviceType == DeviceType.CurtainModel.ToString () || deviceType == DeviceType.CurtainTrietex.ToString () || deviceType == DeviceType.CurtainRoller.ToString ()) {
+                    if (deviceType == DeviceType.CurtainModel.ToString ()) {
+                        #region CurtainModelView
+                        CurtainModel curtainmodel = Newtonsoft.Json.JsonConvert.DeserializeObject<CurtainModel> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                        if (curtainmodel == null) {
+                            return "";
+                        }
+                        curtainmodel.Name = newName;
+                        IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (curtainmodel)));
+
+                        #endregion
+                    } else if (deviceType == DeviceType.CurtainTrietex.ToString ()) {
+                        #region CurtainTrietexlView
+                        CurtainTrietex curtaintretex = Newtonsoft.Json.JsonConvert.DeserializeObject<CurtainTrietex> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                        if (curtaintretex == null) {
+                            return "";
+                        }
+                        curtaintretex.Name = newName;
+                        IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (curtaintretex)));
+
+                        #endregion
+                    } else if (deviceType == DeviceType.CurtainRoller.ToString ()) {
+                        #region CurtainRollerlView
+                        CurtainRoller curtainroller = Newtonsoft.Json.JsonConvert.DeserializeObject<CurtainRoller> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                        if (curtainroller == null) {
+                            return "";
+                        };
+                        curtainroller.Name = newName;
+                        IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (curtainroller)));
+
+
+                    } else {
+                        return "";
+                    }
+                    #endregion
+                } else if (deviceType == DeviceType.HVAC.ToString () || deviceType == DeviceType.ACInfrared.ToString () || deviceType == DeviceType.ACPanel.ToString ()) {
+                    AC ac = Newtonsoft.Json.JsonConvert.DeserializeObject<AC> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                    if (ac == null) {
+                        return "";
+                    }
+                    ac.Name = newName;
+                    IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (ac)));
+
+                } else if (deviceType == DeviceType.FoolHeat.ToString () || deviceType == DeviceType.FoolHeatPanel.ToString ()) {
+                    FoolHeat fh = Newtonsoft.Json.JsonConvert.DeserializeObject<FoolHeat> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                    if (fh == null)
+                        return "";
+
+                    fh.Name = newName;
+                    IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (fh)));
+
+                } else if (deviceType == DeviceType.DryContact.ToString ()) {
+
+                } else if (deviceType == DeviceType.MusicModel.ToString ()) {
+
+                } else if (deviceType == DeviceType.FanModule.ToString ()) {
+                    #region FanModuleView
+                    FanModule fanModule = Newtonsoft.Json.JsonConvert.DeserializeObject<FanModule> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                    if (fanModule == null) {
+                        return "";
+                    }
+                    fanModule.Name = newName;
+                    IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (fanModule)));
+
+                    #endregion
+                } else if (deviceType == DeviceType.UniversalDevice.ToString ()) {
+                    #region UniversalDevice
+                    UniversalDevice udDevice = Newtonsoft.Json.JsonConvert.DeserializeObject<UniversalDevice> (System.Text.Encoding.UTF8.GetString (IO.FileUtils.ReadFile (deviceFilePath)));
+                    if (udDevice == null) {
+                        return "";
+                    }
+                    udDevice.Name = newName;
+                    IO.FileUtils.WriteFileByBytes (deviceFilePath, CommonPage.MyEncodingUTF8.GetBytes (Newtonsoft.Json.JsonConvert.SerializeObject (udDevice)));
+                    #endregion
+                } else {
+                    return "";
+                }
+
+
+                return newName;
+            } catch {
+                return "";
+            }
+        }
     }
 }
\ No newline at end of file
diff --git a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs
index b898334..218722e 100644
--- a/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs
+++ b/Crabtree/SmartHome/UI/SimpleControl/Phone/Schedule/UserSchedule.cs
@@ -362,10 +362,10 @@
                             Timer timer = new Timer ();
                             var jay = jArray [a];
                             timer.id = jay ["id"].ToString ();
-                            timer.timerName =jay ["timerName"].ToString ();
+                            timer.timerName = jay ["timerName"].ToString ();
                             timer.userId = jay ["userId"].ToString ();
                             timer.isEnable = Boolean.Parse (jay ["isEnable"].ToString ());
-                            timer.executeUtcTime =SmartHome.Method.GetLocalUtcTime(jay ["executeUtcTime"].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);

--
Gitblit v1.8.0