zhaolei
9 days ago 921de2254ff5712a44ed8575ee8efe34252f6603
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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
using Bootstrap.DataAccess;
using Bootstrap.Security;
using Bootstrap.Security.Mvc;
using Microsoft.AspNetCore.Mvc;
using System;
using System.Collections.Generic;
using System.Linq;
 
namespace Bootstrap.Admin.Models
{
    /// <summary>
    /// 网站设置 Model 实体类
    /// </summary>
    public class SettingsModel : NavigatorBarModel
    {
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="controller"></param>
        public SettingsModel(ControllerBase controller) : base(controller)
        {
            Themes = DictHelper.RetrieveThemes();
            AutoLockScreen = EnableAutoLockScreen;
            DefaultApp = DictHelper.RetrieveDefaultApp();
            IPLocators = DictHelper.RetireveLocators();
            IPLocatorSvr = DictHelper.RetrieveLocaleIPSvr();
            ErrorLogPeriod = DictHelper.RetrieveExceptionsLogPeriod();
            OpLog = DictHelper.RetrieveLogsPeriod();
            LogLog = DictHelper.RetrieveLoginLogsPeriod();
            TraceLog = DictHelper.RetrieveAccessLogPeriod();
            CookiePeriod = DictHelper.RetrieveCookieExpiresPeriod();
            IPCachePeriod = DictHelper.RetrieveLocaleIPSvrCachePeriod();
            EnableDemo = DictHelper.RetrieveSystemModel();
            AdminPathBase = DictHelper.RetrievePathBase();
            EnableHealth = DictHelper.RetrieveHealth();
            Logins = DictHelper.RetrieveLogins();
            var view = DictHelper.RetrieveLoginView();
            var viewName = Logins.FirstOrDefault(d => d.Code == view)?.Name ?? "系统默认";
            LoginView = new KeyValuePair<string, string>(view, viewName);
 
            var dicts = DictHelper.RetrieveDicts();
            Apps = DictHelper.RetrieveApps().Where(d => !d.Key.Equals("BA", StringComparison.OrdinalIgnoreCase)).Select(k =>
            {
                var url = dicts.FirstOrDefault(d => d.Category == "应用首页" && d.Name == k.Key && d.Define == 0)?.Code ?? "未设置";
                return (k.Key, k.Value, url);
            });
 
            // 实际后台网站名称
            WebSiteTitle = DictHelper.RetrieveWebTitle(BootstrapAppContext.AppId);
 
            // 实际后台网站页脚
            WebSiteFooter = DictHelper.RetrieveWebFooter(BootstrapAppContext.AppId);
        }
 
        /// <summary>
        /// 获得 系统配置的所有样式表
        /// </summary>
        public IEnumerable<BootstrapDict> Themes { get; }
 
        /// <summary>
        /// 获得 地理位置信息集合
        /// </summary>
        public IEnumerable<BootstrapDict> IPLocators { get; }
 
        /// <summary>
        /// 获得 数据库中配置的地理位置信息接口
        /// </summary>
        public string IPLocatorSvr { get; }
 
        /// <summary>
        /// 获得 是否开启自动锁屏
        /// </summary>
        public bool AutoLockScreen { get; }
 
        /// <summary>
        /// 获得 是否开启自动锁屏
        /// </summary>
        public bool DefaultApp { get; }
 
        /// <summary>
        /// 程序异常日志保留时长
        /// </summary>
        public int ErrorLogPeriod { get; }
 
        /// <summary>
        /// 操作日志保留时长
        /// </summary>
        public int OpLog { get; }
 
        /// <summary>
        /// 登录日志保留时长
        /// </summary>
        public int LogLog { get; }
 
        /// <summary>
        /// 访问日志保留时长
        /// </summary>
        public int TraceLog { get; }
 
        /// <summary>
        /// Cookie保留时长
        /// </summary>
        public int CookiePeriod { get; }
 
        /// <summary>
        /// IP请求缓存时长
        /// </summary>
        public int IPCachePeriod { get; }
 
        /// <summary>
        /// 获得/设置 是否为演示系统
        /// </summary>
        public bool EnableDemo { get; set; }
 
        /// <summary>
        /// 获得/设置 后台管理网站地址
        /// </summary>
        public string AdminPathBase { get; set; }
 
        /// <summary>
        /// 获得/设置 系统应用程序集合
        /// </summary>
        public IEnumerable<(string Key, string Name, string Url)> Apps { get; set; }
 
        /// <summary>
        /// 获得/设置 是否开启健康检查
        /// </summary>
        public bool EnableHealth { get; set; }
 
        /// <summary>
        /// 获得/设置 字典表中登录首页集合
        /// </summary>
        public IEnumerable<BootstrapDict> Logins { get; set; }
 
        /// <summary>
        /// 获得/设置 登录视图名称 默认是 Login
        /// </summary>
        public KeyValuePair<string, string> LoginView { get; set; }
 
        /// <summary>
        /// 获得/设置 实际 BA 后台网站名称
        /// </summary>
        public string WebSiteTitle { get; set; }
 
        /// <summary>
        /// 获得/设置 实际 BA 后台网站页脚
        /// </summary>
        public string WebSiteFooter { get; set; }
    }
}