From 0bd4d1702248641f180345a086e5b3f58e6eb04c Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 15 十二月 2020 17:13:23 +0800
Subject: [PATCH] 2020-12-15 1.更新
---
HDL_ON/Entity/Function/Scene.cs | 159 ++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 128 insertions(+), 31 deletions(-)
diff --git a/HDL_ON/Entity/Function/Scene.cs b/HDL_ON/Entity/Function/Scene.cs
index d301fbe..67d0c57 100644
--- a/HDL_ON/Entity/Function/Scene.cs
+++ b/HDL_ON/Entity/Function/Scene.cs
@@ -1,13 +1,39 @@
锘縰sing System;
using System.Collections.Generic;
+using HDL_ON.DAL.Server;
using Shared;
namespace HDL_ON.Entity
{
+ public class SceneApiPack
+ {
+ static SceneApiPack _ScenePack;
+ public static SceneApiPack ScenePack
+ {
+ get
+ {
+ if(_ScenePack == null)
+ {
+ _ScenePack = new SceneApiPack();
+ }
+ return _ScenePack;
+ }
+ }
+
+ }
+
public class Scene
{
+ public Scene()
+ {
+ sid = NewSid();
+ if (!DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
+ {
+ gatewayId = DB_ResidenceData.Instance.HomeGateway.gatewayId;
+ }
+ }
/// <summary>
- /// 杩滅鍞竴ID
+ /// 浜戠鍞竴ID
/// </summary>
public string userSceneId = "";
/// <summary>
@@ -30,6 +56,10 @@
/// 鎵�灞炴埧闂村垪琛�
/// </summary>
public List<string> roomIds = new List<string>();
+ /// <summary>
+ /// 鎵�灞炴埧闂村垪琛�
+ /// </summary>
+ public List<string> uids = new List<string>();
/// <summary>
/// 寤舵椂
/// </summary>
@@ -78,11 +108,33 @@
/// </summary>
public bool collect = false;
+ ///// <summary>
+ ///// 鍦烘櫙鑳屾櫙
+ ///// </summary>
+ //public string ImagePath = "Intelligence/Gallery/scenebg1.png";//"FunctionIcon/Scene/s1.png";
- /// <summary>
- /// 鍦烘櫙鑳屾櫙
- /// </summary>
- public string ImagePath = "Intelligence/Gallery/scenebg1.png";//"FunctionIcon/Scene/s1.png";
+ ///// <summary>
+ ///// 鍦烘櫙鑳屾櫙
+ ///// </summary>
+ public string ImagePath
+ {
+ get
+ {
+ if (string.IsNullOrEmpty(image))
+ {
+ return "Intelligence/Gallery/scenebg1.png";
+ }
+ else
+ {
+ return image;
+ }
+ }
+ set
+ {
+ image = value;
+ }
+ }
+
/// <summary>
/// 鍦烘櫙鍔熻兘鍒楄〃
@@ -94,21 +146,18 @@
public List<ScenePushConfig> pushConfigs = new List<ScenePushConfig>();
/// <summary>
- /// 鐢熸垚鍦烘櫙sid
+ /// 鐢熸垚閫昏緫sid鏂规硶
/// </summary>
- public void NewSid()
+ public string NewSid()
{
- string sSceneid = "";
+ string sceneId = "";
try
{
string sOidBeginsWith = "000101";//鍘傚晢 + 閫氳鏂瑰紡
DateTime dt = DateTime.Now;
-
-
DateTime startTime = TimeZoneInfo.ConvertTimeToUtc(new DateTime(2020, 1, 1));
long m = (long)((dt - startTime).TotalMilliseconds / 10);
string sTimeSpan = "00000000";
-
byte[] arry = new byte[4];
arry[0] = (byte)(m & 0xFF);
@@ -127,25 +176,29 @@
sTimeSpan = "00000000";
}
- sSceneid = sOidBeginsWith + sTimeSpan;
+ sceneId = sOidBeginsWith + sTimeSpan;
- sSceneid += "0A";
- sSceneid += "0A01";
- //0A01 鐗╂ā鍨嬩负鍦烘櫙锛� 0001 琛ㄧず 1 鍙峰満鏅姛鑳�
- int iTopSceneId = 1;
+ sceneId += "0A";
+ sceneId += "0A01";
+ int maxId = 1;
- Random random = new Random();
- iTopSceneId = random.Next(0, 255);
- iTopSceneId += random.Next(0, 255);
- sSceneid += iTopSceneId.ToString("X4");//鍦烘櫙鍙� 涓や釜byte
- sSceneid += "1100";
- sid = sSceneid;
+ for (int i = 0; i < FunctionList.List.scenes.Count; i++)
+ {
+ string s = FunctionList.List.scenes[i].sid.Substring(20, 4);
+ int iThisSceneId = Convert.ToInt16(s, 16);
+ if (iThisSceneId > maxId)
+ maxId = iThisSceneId;
+ }
+
+ sceneId += (maxId + 1).ToString("X4");
+ sceneId += "0000";
}
catch
{
- sid = sSceneid;
+ return sceneId;
}
+ return sceneId;
}
/// <summary>
@@ -157,7 +210,7 @@
string roomNameList = "";
foreach (var roomId in roomIds)
{
- var findRoom = DB_ResidenceData.Rooms.Find(obj => obj.uid == roomId);
+ var findRoom = SpatialInfo.CurrentSpatial.RoomList.Find(obj => obj.roomId == roomId);
if (findRoom == null)
{
continue;
@@ -186,20 +239,64 @@
return "SceneData_" + sid;
}
}
+
/// <summary>
/// 淇濆瓨鍔熻兘鏁版嵁
/// </summary>
- public void SaveSceneData()
+ public void SaveSceneData(bool upServer)
{
- var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
- FileUtils.WriteFileByBytes(savePath + this.sid, ssd);
- MainPage.Log($"Save Scene Data : {this.sid}");
+ if (upServer)
+ {
+ 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}");
+ }
}
/// <summary>
- /// 鏇存柊鏃堕棿
+ /// 涓婁紶鏁版嵁鍒颁簯绔�
/// </summary>
- public DateTime refreshTime = DateTime.MinValue;
+ void UploadScene()
+ {
+ var pm = new HttpServerRequest();
+ ResponsePackNew revPack;
+ if (string.IsNullOrEmpty(createTime) && string.IsNullOrEmpty(modifyTime))
+ {
+ revPack = pm.AddScene(this);
+ if (revPack.Code == StateCode.SUCCESS)
+ {
+ var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
+ Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd);
+ }
+ }
+ else if (!string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime))
+ {
+ revPack = pm.EditScene(this);
+ if (revPack.Code == StateCode.SUCCESS)
+ {
+ var scenes = Newtonsoft.Json.JsonConvert.DeserializeObject<List<Scene>>(revPack.Data.ToString());
+ var tempScene = scenes.Find((obj) => obj.sid == sid);
+ if (tempScene != null)
+ {
+ var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene));
+ Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd);
+ }
+ }
+ }
+ }
+
+ /// <summary>
+ /// 浜戠鏁版嵁鍒涘缓鐨勬椂闂�
+ /// </summary>
+ public string createTime = "";
+ /// <summary>
+ /// 浜戠鏁版嵁淇敼鐨勬渶鍚庢椂闂�
+ /// </summary>
+ public string modifyTime = "";
}
/// <summary>
/// 鍦烘櫙鍔熻兘瀵硅薄
@@ -236,7 +333,7 @@
/// <returns></returns>
Function ConvertFunctionObject()
{
- var localFunction = DB_ResidenceData.functionList.GetAllDeviceFunctionList().Find((obj) => obj.sid == sid);
+ var localFunction = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.sid == sid);
foreach (var s in status)
{
localFunction.attributes.Add(new FunctionAttributes() { key = s.key, curValue = s.value, value = new List<string>() { s.value } });
--
Gitblit v1.8.0