wxr
2020-12-07 64dbbfe1d6488635e160189a704afccffc7d34d0
HDL_ON/Entity/Function/Scene.cs
@@ -1,13 +1,31 @@
using 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 
    {
        /// <summary>
        /// 远端唯一ID
        /// 云端唯一ID
        /// </summary>
        public string userSceneId = "";
        /// <summary>
@@ -78,11 +96,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>
        /// 场景功能列表
@@ -157,7 +197,7 @@
            string roomNameList = "";
            foreach (var roomId in roomIds)
            {
                var findRoom = DB_ResidenceData.Rooms.Find(obj => obj.uid == roomId);
                var findRoom = DB_ResidenceData.residenceData.Rooms.Find(obj => obj.uid == roomId);
                if (findRoom == null)
                {
                    continue;
@@ -186,20 +226,72 @@
                return "SceneData_" + sid;
            }
        }
        /// <summary>
        /// 保存功能数据
        /// </summary>
        public void SaveSceneData()
        {
            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}");
            FileUtils.WriteFileByBytes(savePath, ssd);
            MainPage.Log($"Save Scene Data : {savePath}");
            UploadScene();
        }
        /// <summary>
        /// 更新时间
        /// 上传数据到云端
        /// </summary>
        public DateTime refreshTime = DateTime.MinValue;
        void UploadScene()
        {
            var pm = new HttpServerRequest();
            ResponsePackNew revPack;
            if (DeleteSign)
            {
                var resCode = pm.DeleteScene(userSceneId);
            }
            else
            {
                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));
                        FileUtils.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));
                            FileUtils.WriteFileByBytes(savePath, ssd);
                        }
                    }
                }
            }
        }
        /// <summary>
        /// 删除标记
        /// 需要删除数据时,标记为:true
        /// 由云端删除成功之后,返回数据再清除本地数据
        /// </summary>
        public bool DeleteSign = false;
        /// <summary>
        /// 云端数据创建的时间
        /// </summary>
        public string createTime = "";
        /// <summary>
        /// 云端数据修改的最后时间
        /// </summary>
        public string modifyTime = "";
    }
    /// <summary>
    /// 场景功能对象