-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathMain.cs
More file actions
151 lines (145 loc) · 6.97 KB
/
Copy pathMain.cs
File metadata and controls
151 lines (145 loc) · 6.97 KB
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
151
using System.Collections.Generic;
using SiteServer.Plugin;
using SS.GovInteract.Core;
using SS.GovInteract.Core.Parser;
using SS.GovInteract.Core.Provider;
using SS.GovInteract.Core.Utils;
using Menu = SiteServer.Plugin.Menu;
namespace SS.GovInteract
{
public class Main : PluginBase
{
public static DataRepository DataRepository { get; private set; }
public static CategoryRepository CategoryRepository { get; private set; }
public static DepartmentRepository DepartmentRepository { get; private set; }
public static FileRepository FileRepository { get; private set; }
public static LogRepository LogRepository { get; private set; }
public override void Startup(IService service)
{
DataRepository = new DataRepository();
CategoryRepository = new CategoryRepository();
DepartmentRepository = new DepartmentRepository();
FileRepository = new FileRepository();
LogRepository = new LogRepository();
service
.AddSiteMenu(siteId =>
{
var request = Context.AuthenticatedRequest;
if (!request.AdminPermissions.IsSiteAdmin(siteId))
{
var userDepartmentIdList = DepartmentManager.GetDepartmentIdList(siteId, request.AdminName);
if (userDepartmentIdList.Count == 0) return null;
var acceptCount = DataRepository.GetUserCount(siteId, new List<DataState>
{
DataState.New
}, string.Empty, 0, userDepartmentIdList);
var replyCount = DataRepository.GetUserCount(siteId, new List<DataState>
{
DataState.Accepted,
DataState.Redo
}, string.Empty, 0, userDepartmentIdList);
return new Menu
{
Text = "互动交流",
IconClass = "fa fa-envelope",
Menus = new List<Menu>
{
new Menu
{
Text = $"待受理信件 ({acceptCount})",
Href = $"pages/contents.html?pageType={ApplicationUtils.PageTypeAccept}"
},
new Menu
{
Text = $"待办理信件 ({replyCount})",
Href = $"pages/contents.html?pageType={ApplicationUtils.PageTypeReply}"
},
new Menu
{
Text = "新增信件",
Href = "pages/add.html"
}
}
};
}
else
{
var acceptCount = DataCountManager.GetCount(siteId, new List<DataState>
{
DataState.New
});
var replyCount = DataCountManager.GetCount(siteId, new List<DataState>
{
DataState.Accepted,
DataState.Redo
});
var checkCount = DataCountManager.GetCount(siteId, new List<DataState>
{
DataState.Replied
});
var totalCount = DataCountManager.GetTotalCount(siteId);
return new Menu
{
Text = "互动交流",
IconClass = "fa fa-envelope",
Menus = new List<Menu>
{
new Menu
{
Text = $"待受理信件 ({acceptCount})",
Href = $"pages/contents.html?pageType={ApplicationUtils.PageTypeAccept}"
},
new Menu
{
Text = $"待办理信件 ({replyCount})",
Href = $"pages/contents.html?pageType={ApplicationUtils.PageTypeReply}"
},
new Menu
{
Text = $"待审核信件 ({checkCount})",
Href = $"pages/contents.html?pageType={ApplicationUtils.PageTypeCheck}"
},
new Menu
{
Text = $"所有信件 ({totalCount})",
Href = "pages/contents.html"
},
new Menu
{
Text = "新增信件",
Href = "pages/add.html"
},
new Menu
{
Text = "分类设置",
Href = "pages/categories.html"
},
new Menu
{
Text = "部门设置",
Href = "pages/departments.html"
},
new Menu
{
Text = "互动交流设置",
Href = "pages/settings.html"
},
new Menu
{
Text = "互动交流模板",
Href = "pages/templates.html"
}
}
};
}
})
.AddDatabaseTable(DataRepository.TableName, DataRepository.TableColumns)
.AddDatabaseTable(CategoryRepository.TableName, CategoryRepository.TableColumns)
.AddDatabaseTable(DepartmentRepository.TableName, DepartmentRepository.TableColumns)
.AddDatabaseTable(LogRepository.TableName, LogRepository.TableColumns)
.AddDatabaseTable(FileRepository.TableName, FileRepository.TableColumns)
.AddStlElementParser(StlGovInteract.ElementName, StlGovInteract.Parse)
;
}
}
}