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 { Id = ApplicationUtils.PageTypeAccept, Text = $"待受理信件 ({acceptCount})", Href = $"pages/contents.html?pageType={ApplicationUtils.PageTypeAccept}" }, new Menu { Id = ApplicationUtils.PageTypeReply, Text = $"待办理信件 ({replyCount})", Href = $"pages/contents.html?pageType={ApplicationUtils.PageTypeReply}" }, new Menu { Id = ApplicationUtils.PageTypeCheck, Text = $"待审核信件 ({checkCount})", Href = $"pages/contents.html?pageType={ApplicationUtils.PageTypeCheck}" }, new Menu { Id = "all", Text = $"所有信件 ({totalCount})", Href = "pages/contents.html" }, new Menu { Id = "add", Text = "新增信件", Href = "pages/add.html" }, new Menu { Id = "categories", Text = "分类设置", Href = "pages/categories.html" }, new Menu { Id = "departments", Text = "部门设置", Href = "pages/departments.html" }, new Menu { Id = "settings", Text = "互动交流设置", Href = "pages/settings.html" }, new Menu { Id = "templates", 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) ; }
public override void Startup(IService service) { DataRepository = new DataRepository(); 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-book", 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-book", 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/departments.html" }, new Menu { Text = "依申请公开设置", Href = "pages/settings.html" }, new Menu { Text = "依申请公开模板", Href = "pages/templates.html" } } }); } }) .AddDatabaseTable(DataRepository.TableName, DataRepository.TableColumns) .AddDatabaseTable(DepartmentRepository.TableName, DepartmentRepository.TableColumns) .AddDatabaseTable(LogRepository.TableName, LogRepository.TableColumns) .AddDatabaseTable(FileRepository.TableName, FileRepository.TableColumns) .AddStlElementParser(StlGovApplication.ElementName, StlGovApplication.Parse) ; }
public IHttpActionResult List() { try { var request = Context.AuthenticatedRequest; var siteId = request.GetQueryInt("siteId"); if (!request.IsAdminLoggin || !request.AdminPermissions.HasSitePermissions(siteId, ApplicationUtils.PluginId)) { return(Unauthorized()); } var pageType = request.GetQueryString("pageType"); var stateList = new List <DataState>(); if (StringUtils.EqualsIgnoreCase(pageType, ApplicationUtils.PageTypeAccept)) { stateList.Add(DataState.New); } else if (StringUtils.EqualsIgnoreCase(pageType, ApplicationUtils.PageTypeReply)) { stateList.Add(DataState.Accepted); stateList.Add(DataState.Redo); } else if (StringUtils.EqualsIgnoreCase(pageType, ApplicationUtils.PageTypeCheck)) { stateList.Add(DataState.Replied); } else { var state = request.GetQueryString("state"); if (!string.IsNullOrEmpty(state)) { stateList.Add(DataState.ToDataState(state)); } } var page = request.GetQueryInt("page", 1); var isSearch = request.GetQueryBool("isSearch"); var keyword = request.GetQueryString("keyword"); var departmentId = request.GetQueryInt("departmentId"); int totalCount; var isSiteAdmin = request.AdminPermissions.IsSiteAdmin(siteId); var userDepartmentIdList = new List <int>(); if (isSiteAdmin) { if (isSearch) { totalCount = Main.DataRepository.GetCount(siteId, stateList, keyword, departmentId); } else { keyword = string.Empty; departmentId = 0; totalCount = DataCountManager.GetCount(siteId, stateList); } } else { userDepartmentIdList = DepartmentManager.GetDepartmentIdList(siteId, request.AdminName); totalCount = Main.DataRepository.GetUserCount(siteId, stateList, keyword, departmentId, userDepartmentIdList); } var pages = Convert.ToInt32(Math.Ceiling((double)totalCount / ApplicationUtils.PageSize)); if (pages == 0) { pages = 1; } if (page > pages) { page = pages; } IList <DataInfo> dataInfoList; if (totalCount == 0) { dataInfoList = new List <DataInfo>(); } else { if (isSiteAdmin) { if (totalCount <= ApplicationUtils.PageSize) { dataInfoList = Main.DataRepository.GetDataInfoList(siteId, stateList, keyword, departmentId, 0, totalCount); } else { if (page == 0) { page = 1; } var offset = (page - 1) * ApplicationUtils.PageSize; var limit = totalCount - offset > ApplicationUtils.PageSize ? ApplicationUtils.PageSize : totalCount - offset; dataInfoList = Main.DataRepository.GetDataInfoList(siteId, stateList, keyword, departmentId, offset, limit); } } else { if (page == 0) { page = 1; } var offset = (page - 1) * ApplicationUtils.PageSize; var limit = totalCount - offset > ApplicationUtils.PageSize ? ApplicationUtils.PageSize : totalCount - offset; dataInfoList = Main.DataRepository.GetUserDataInfoList(siteId, stateList, keyword, departmentId, userDepartmentIdList, offset, limit); } } List <DepartmentInfo> departmentInfoList = null; Dictionary <string, int> countDict = null; Settings settings = null; if (page == 1) { if (isSiteAdmin) { departmentInfoList = DepartmentManager.GetDepartmentInfoList(siteId); } else { departmentInfoList = new List <DepartmentInfo>(); foreach (var userDepartmentId in userDepartmentIdList) { departmentInfoList.Add(DepartmentManager.GetDepartmentInfo(siteId, userDepartmentId)); } } countDict = new Dictionary <string, int> { { "All", DataCountManager.GetTotalCount(siteId) } }; foreach (var state in DataState.AllStates) { countDict.Add(state.Value, DataCountManager.GetCount(siteId, state)); } settings = ApplicationUtils.GetSettings(siteId); } return(Ok(new { Value = dataInfoList, Count = totalCount, Pages = pages, Page = page, DepartmentInfoList = departmentInfoList, CountDict = countDict, Settings = settings })); } catch (Exception ex) { return(InternalServerError(ex)); } }