/// <summary> /// 获取不区分项目来源的html /// </summary> /// <param name="shownoproject">是否展示不区分来源</param> /// <param name="outdichtml">对应json字典输出</param> /// <returns></returns> protected string GetProjectSourceHtml(bool shownoproject, ref string outdichtml, ProjectSourceTypeOptions type = ProjectSourceTypeOptions.Domestic) { StringBuilder sb = new StringBuilder(); StringBuilder sb2 = new StringBuilder(); var projectSources = AvailableProjectSources.Where(a => a.ProjectSourceType == type || a.ProjectSourceType == ProjectSourceTypeOptions.None).ToList(); List <int> lst = UtilityHelp.GetDefaultProjectSources(this.Context, projectSources); var projectid = lst.Count <= 0 ? -1 : lst[0]; bool isContainedInCookie = projectSources.Select(p => p.ProjectSourceID).Contains(projectid); for (int i = 0; i < projectSources.Count(); i++) { if (!shownoproject && projectSources[i].ProjectSourceID == 0) { continue; } if (isContainedInCookie) { sb.AppendFormat("<option value='{0}' {2}>{1}</option>", projectSources[i].ProjectSourceID, projectSources[i].Name, projectid == projectSources[i].ProjectSourceID ? "selected=\"selected\"" : ""); } else { sb.AppendFormat("<option value='{0}' {2}>{1}</option>", projectSources[i].ProjectSourceID, projectSources[i].Name, i == 0 ? "selected=\"selected\"" : ""); } sb2.AppendFormat("\"{0}\":\"{1}\",", projectSources[i].ProjectSourceID, projectSources[i].Name); } outdichtml = "{" + sb2.ToString().TrimEnd(',') + "}"; return(sb.ToString()); }
/// <summary> /// 检查权限(检查项目来源权限) /// </summary> /// <param name="softid"></param> /// <param name="url"></param> protected bool CheckHasRightForProject(int project, string url) { if (!AvailableProjectSources.Exists(a => a.ProjectSourceID == project) || !loginService.CheckUrlRight(url)) { return(false); } return(true); }
/// <summary> /// 检查是否有项目权限 /// </summary> /// <param name="projectsource"></param> /// <param name="projSrcType"></param> /// <returns></returns> protected bool CheckProject(string projectsource) { if (string.IsNullOrEmpty(projectsource)) { return(false); } var projects = projectsource.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Select(p => Convert.ToInt32(p)).ToList(); var result = from a in AvailableProjectSources.Select(a => a.ProjectSourceID).Distinct() join b in projects on a equals b select a; return(result.Count() == projects.Count()); }