HDL Home App 第二版本 旧平台金堂用 正在使用
黄学彪
2019-10-10 4f92fe4e4397b05bc97d17e8ad02818a689acdb8
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
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
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>
        /// 是否收藏
        /// </summary>
        public bool IsCollected = 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获取场景路径_____________
        /// <summary>
        /// GetSceneFilePathBySceneId
        /// </summary>
        /// <param name="sceneId"></param>
        /// <returns></returns>
        public static string GetSceneFilePathBySceneId(int sceneId)
        {
            return $"Scene_{sceneId}.json";
        }
 
        #endregion
 
        #region ◆ 收藏____________________________
 
        /// <summary>
        /// collect
        /// </summary>
        /// <param name="collected"></param>
        /// <param name="autoBackup"></param>
        public void Collect(bool collected, bool autoBackup = true)
        {
            IsCollected = collected;
            Save(autoBackup);
        }
 
        #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
 
    }
}