陈嘉乐
2020-12-16 f35f1397c980efdc2542dff7aaa23b1a7dbb65e7
HDL_ON/Entity/Function/Scene.cs
@@ -24,6 +24,14 @@
    public class Scene 
    {
        public Scene()
        {
            sid = NewSid();
            if (!DB_ResidenceData.Instance.CheckWhetherGatewayIdIsNull())
            {
                gatewayId = DB_ResidenceData.Instance.HomeGateway.gatewayId;
            }
        }
        /// <summary>
        /// 云端唯一ID
        /// </summary>
@@ -202,7 +210,7 @@
            string roomNameList = "";
            foreach (var roomId in roomIds)
            {
                var findRoom = DB_ResidenceData.residenceData.Rooms.Find(obj => obj.uid == roomId);
                var findRoom = SpatialInfo.CurrentSpatial.RoomList.Find(obj => obj.roomId == roomId);
                if (findRoom == null)
                {
                    continue;
@@ -241,9 +249,47 @@
            {
                UploadScene();
            }
            var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
            FileUtils.WriteFileByBytes(savePath, ssd);
            MainPage.Log($"Save Scene Data : {savePath}");
            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 string UpdateScene()
        {
            var pm = new HttpServerRequest();
            var 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);
                }
            }
            return revPack.Code;
        }
        /// <summary>
        /// 添加场景
        /// </summary>
        public string AddScene()
        {
            var pm = new HttpServerRequest();
            var 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);
            }
            return revPack.Code;
        }
        /// <summary>
@@ -259,7 +305,7 @@
                if (revPack.Code == StateCode.SUCCESS)
                {
                    var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this));
                    FileUtils.WriteFileByBytes(savePath, ssd);
                    Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd);
                }
            }
            else if (!string.IsNullOrEmpty(createTime) && !string.IsNullOrEmpty(modifyTime))
@@ -272,7 +318,7 @@
                    if (tempScene != null)
                    {
                        var ssd = System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(tempScene));
                        FileUtils.WriteFileByBytes(savePath, ssd);
                        Common.FileUtlis.Files.WriteFileByBytes(savePath, ssd);
                    }
                }
            }
@@ -305,10 +351,11 @@
        /// 本地对应的功能
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public Function localFunction {
        public Function localFunction
        {
            get
            {
                if(_localFunction == null)
                if (_localFunction == null)
                {
                    _localFunction = ConvertFunctionObject();
                }
@@ -322,14 +369,10 @@
        /// <returns></returns>
        Function ConvertFunctionObject()
        {
            var localFunction = DB_ResidenceData.functionList.GetAllDeviceFunctionList().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 } });
            }
            var localFunction = FunctionList.List.GetDeviceFunctionList().Find((obj) => obj.sid == sid);
            return localFunction;
        }
    }
    /// <summary>