1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
using System;
using System.Collections.Generic;
using Shared.Phone.UserCenter;
 
namespace Shared.Common
{
    /// <summary>
    /// 场景
    /// </summary>
    [System.Serializable]
    public class SceneUI : ZigBee.Device.CommonDevice
    {
        #region ◆ 变量____________________________
        /// <summary>
        /// 场景文件
        /// </summary>
        /// <value>The name of the file.</value>
        [Newtonsoft.Json.JsonIgnore]
        public string FileName
        {
            get
            {
                return $"Scene_{Id}.json";
            }
        }
        /// <summary>
        /// 场景id
        /// </summary>
        public int Id = int.MaxValue;
 
        /// <summary>
        /// 场景名
        /// </summary>
        public string Name = string.Empty;
 
        /// <summary>
        /// 图片路径
        /// </summary>
        public string IconPath = "Scene/SceneDefault.png";
        /// <summary>
        /// 图片来源 0--本地图库 1--拍照 2--系统图库 
        /// </summary>
        public int IconPathType = 0;
 
        /// <summary>
        /// 功能路径列表---备用
        /// </summary>
        public List<string> FunctionFilePathList = new List<string> { };
 
        /// <summary>
        /// 通用标识--备用
        /// </summary>
        public object Tag;
 
        /// <summary>
        /// 延时执行时间--设备延时
        /// </summary>
        public int DelayTime = 0;
 
        /// <summary>
        /// 标识当前场景是否是分享的场景
        /// </summary>
        public bool IsSharedScene = false;
 
        /// <summary>
        /// 延时执行时间--整个场景延时(不是延时场景里面的执行目标)
        /// 不序列化,重新打开APP置。即只对本次编辑场景延时执行有效
        /// </summary>
        [Newtonsoft.Json.JsonIgnore]
        public int SceneDelayTime = 0;
 
        /// <summary>
        /// 场景执行目标
        /// </summary>
        public List<ZigBee.Device.Scene.AddSceneMemberData> AddSceneMemberDataList = new List<ZigBee.Device.Scene.AddSceneMemberData> { };
 
        #endregion
 
        #region ◆ 通过场景id获取场景路径_____________
 
        public static string GetSceneFilePathBySceneId(int sceneId)
        {
            return $"Scene_{sceneId}.json";
        }
 
        #endregion
 
        #region ◆ 保存____________________________
 
        /// <summary>
        /// 保存
        /// </summary>
        /// <param name="autoBackup">是否备份</param>
        public void Save(bool autoBackup = true)
        {
            Global.WriteFileByBytesByHomeId(FileName, System.Text.Encoding.UTF8.GetBytes(Newtonsoft.Json.JsonConvert.SerializeObject(this)));
            if (autoBackup == true)
            {
                HdlAutoBackupLogic.AddOrEditorFile(FileName);
            }
        }
 
        #endregion
 
    }
}