/// <summary> /// 把指定机构中的所有用户对象加入到新的用户组中 /// </summary> /// <param name="ds"></param> /// <param name="strGroupGuid"></param> private static void AddOrganizationToGroup(DataSet ds, string strGroupGuid) { foreach (DataRow row in ds.Tables[0].Rows) { if (OGUCommonDefine.DBValueToString(row["OBJECTCLASS"]) == "USERS") { string strSql = @" DECLARE @MAX_INNER_SORT NVARCHAR(6); SET @MAX_INNER_SORT = (SELECT MAX(INNER_SORT) FROM GROUP_USERS WHERE GROUP_GUID = {0}); INSERT INTO GROUP_USERS (GROUP_GUID, USER_GUID, USER_PARENT_GUID, INNER_SORT, MODIFY_TIME, CREATE_TIME) VALUES ({0}, {1}, {2}, REPLACE(STR(ISNULL(@MAX_INNER_SORT, -1) + 1, 6), ' ', '0'), GETDATE(), GETDATE()) " ; strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strGroupGuid, true), TSqlBuilder.Instance.CheckQuotationMark(OGUCommonDefine.DBValueToString(row["GUID"]), true), TSqlBuilder.Instance.CheckQuotationMark(OGUCommonDefine.DBValueToString(row["PARENT_GUID"]), true)); try { InnerCommon.ExecuteNonQuery(strSql); } catch (System.Data.SqlClient.SqlException ex) { if (ex.Number != 2627) //数据重复 { throw ex; } } } } }
private void GetUsersInGroupsInPage() { XmlElement root = _XmlRequest.DocumentElement; string strGroupGuid = root.GetAttribute("GUID"); string strAttrs = OGUCommonDefine.CombinateAttr(root.GetAttribute("extAttr")); int iPageNo = Convert.ToInt32(root.GetAttribute("PageNo")); int iPageSize = Convert.ToInt32(root.GetAttribute("PageSize")); string strSortColumn = root.GetAttribute("PageSort"); string strSearchName = root.GetAttribute("SearchName"); DataSet ds = OGUReader.GetUsersInGroups(strGroupGuid, SearchObjectColumn.SEARCH_GUID, strSearchName, strSortColumn, strAttrs, iPageNo, iPageSize); _XmlResult = InnerCommon.GetXmlDocAttr(ds.Tables[0], "OBJECTCLASS"); _XmlResult.DocumentElement.SetAttribute("GetCount", OGUReader.GetUsersInGroups(strGroupGuid, SearchObjectColumn.SEARCH_GUID, strSearchName, strSortColumn, 0, 0).Tables[0].Rows.Count.ToString()); }
/// <summary> /// 把指定用户组(或机构)中的用户对象作为指定领导的秘书 /// </summary> /// <param name="ds"></param> /// <param name="strLeaderGuid"></param> /// <param name="strStartTime"></param> /// <param name="strEndTime"></param> private static void SetOrgOrGroupSecretary(DataSet ds, string strLeaderGuid, string strStartTime, string strEndTime) { foreach (DataRow row in ds.Tables[0].Rows) { if (OGUCommonDefine.DBValueToString(row["OBJECTCLASS"]) == "USERS" && OGUCommonDefine.DBValueToString(row["USER_GUID"]) != strLeaderGuid) { string strSql = @" INSERT INTO SECRETARIES (LEADER_GUID, SECRETARY_GUID, START_TIME, END_TIME) VALUES ({0}, {1}, {2}, {3}) " ; strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strLeaderGuid, true), TSqlBuilder.Instance.CheckQuotationMark(OGUCommonDefine.DBValueToString(row["USER_GUID"]), true), TSqlBuilder.Instance.CheckQuotationMark(strStartTime, true), TSqlBuilder.Instance.CheckQuotationMark(strEndTime, true)); try { InnerCommon.ExecuteNonQuery(strSql); } catch (System.Data.SqlClient.SqlException ex) { if (ex.Number != 2627) //数据重复 { throw ex; } } } } }
/// <summary> /// 获取当前登录用户在当前“机构人员管理系统”中的全部权限 /// </summary> /// <returns></returns> public static string GetOGUPemission() { string strResult = "setNoPermission"; bool IsCustomsAuthentication = AccreditSection.GetConfig().AccreditSettings.CustomsAuthentication; if (IsCustomsAuthentication) { DataSet ds = SecurityCheck.GetUserPermissions(GlobalInfo.UserLogOnInfo.UserLogOnName, AccreditResource.AppCodeName, UserValueType.LogonName, RightMaskType.App, DelegationMaskType.All); strResult = string.Empty; foreach (DataRow row in ds.Tables[0].Rows) { if (strResult.Length > 0) { strResult += ","; } strResult += OGUCommonDefine.DBValueToString(row["CODE_NAME"]); } } return(strResult); }
private void AddSidelineObjects(string strOrgGuid) { string strObjGuid = (string)GetRequestData("objGuid", string.Empty); DataSet ds, orgDs; DataRow row; ds = OGUReader.GetObjectsDetail("USERS", strObjGuid, SearchObjectColumn.SEARCH_USER_GUID, strOrgGuid, SearchObjectColumn.SEARCH_GUID); ExceptionHelper.TrueThrow((ds == null) || (ds.Tables.Count == 0) || (ds.Tables[0].Rows.Count == 0), "对不起,系统中没有找到指定的对象!"); row = ds.Tables[0].Rows[0]; string strSParentGuid = (string)GetRequestData("SParentGuid", string.Empty); orgDs = OGUReader.GetObjectsDetail("ORGANIZATIONS", strSParentGuid, SearchObjectColumn.SEARCH_GUID, string.Empty, SearchObjectColumn.SEARCH_NULL); parentAllPathName.Value = OGUCommonDefine.DBValueToString(orgDs.Tables[0].Rows[0]["ALL_PATH_NAME"]); row["ALL_PATH_NAME"] = parentAllPathName.Value + "\\" + OGUCommonDefine.DBValueToString(row["OBJ_NAME"]); row["SIDELINE"] = 1; row["CREATE_TIME"] = row["END_TIME"] = row["START_TIME"] = row["RANK_NAME"] = DBNull.Value; userData.Value = InnerCommon.GetXmlDoc(ds).OuterXml; }
/// <summary> /// 把数据集合DataSet中的所有数据转换成XML文档对象返回,解决字段中的NULL值在XML文档中不显示问题 /// </summary> /// <param name="dataSet">要被转换的标准DataSet数据</param> /// <param name="bCDataSection">返回时每个字段的值是否由CData括起来</param> /// <returns>符合指定XML格式的XML文档对象</returns> /// <remarks> /// 把数据集合DataSet中的所有数据转换成XML文档对象返回,解决字段中的NULL值在XML文档中不显示问题。 /// 最后返回的XML文档对象中包括了所有DataSet中的所有数据,如果该DataSet中包含有多个DataTable, /// 返回的结果中会把所有这些数据都包括在内。(即允许多个DataTable在其中) /// </remarks> /// <example> /// 返回值: /// <code> /// <![CDATA[ /// <DataSet> /// <Table1> /// <Field1>Value</Field1> /// <Field2>Value</Field2> /// </Table1> /// <Table2> /// <Field1>Value</Field1> /// <Field2>Value</Field2> /// </Table2> /// </DataSet> /// ]]> /// </code> /// </example> public static XmlDocument GetXmlDoc(DataSet dataSet, bool bCDataSection) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml("<DataSet/>"); XmlElement root = xmlDoc.DocumentElement; foreach (DataTable dataTable in dataSet.Tables) { foreach (DataRow dataRow in dataTable.Rows) { XmlNode xmlTableNode = XmlHelper.AppendNode(root, dataTable.TableName); foreach (DataColumn dataColumn in dataTable.Columns) { string strColumnValue = OGUCommonDefine.DBValueToString(dataRow[dataColumn]); if (bCDataSection) { XmlHelper.AppendCDataNode <string>(xmlTableNode, dataColumn.ColumnName, strColumnValue); } else { XmlHelper.AppendNode <string>(xmlTableNode, dataColumn.ColumnName, strColumnValue); } } } } return(xmlDoc); }
private void InsertOrgOrGroups(DataRow oRow, string strObjClass) { string strParent, strSelfAllPathName, strRootGuid, strInnerSort; DataRow row = PrepareForInsert(oRow, out strParent, out strSelfAllPathName, out strRootGuid, out strInnerSort); string strGuid = Guid.NewGuid().ToString(); InsertSqlClauseBuilder ic = new InsertSqlClauseBuilder(); ic.AppendItem("GUID", strGuid); ic.AppendItem("PARENT_GUID", strRootGuid); for (int i = 2; i < oRow.Table.Columns.Count; i++) { string strRealColumnName = _DataColumns[ContainsValue(2, oRow.Table.Columns[i].ColumnName)][0]; if (strRealColumnName == "NAME" && strObjClass == "ORGANIZATIONS") { ic.AppendItem("RANK_CODE", GetRankCode(strObjClass, (string)oRow[i])); } else { if (strRealColumnName == "GUID" || strRealColumnName.IndexOf("GUID") >= 0) { continue; } else { if (CheckXsdExist(strRealColumnName, strObjClass)) { ic.AppendItem(strRealColumnName, oRow[i]); } } } } if (ContainsValue(0, "NAME") < 0 && strObjClass == "ORGANIZATIONS") { ic.AppendItem("RANK_CODE", GetRankCode(strObjClass, string.Empty)); } if (ContainsValue(0, "ALL_PATH_NAME") < 0) { ic.AppendItem("ALL_PATH_NAME", strSelfAllPathName); } ic.AppendItem("INNER_SORT", strInnerSort); ic.AppendItem("GLOBAL_SORT", OGUCommonDefine.DBValueToString(row["GLOBAL_SORT"]) + strInnerSort); ic.AppendItem("ORIGINAL_SORT", OGUCommonDefine.DBValueToString(row["ORIGINAL_SORT"]) + strInnerSort); ic.AppendItem("STATUS", "1"); string strSql = "INSERT INTO " + strObjClass + ic.ToSqlString(TSqlBuilder.Instance) + ";\n"; _StrBuild.Append(strSql); InnerCommon.ExecuteDataset(strSql); if (strObjClass == "ORGANIZATIONS") { _RootHash.Add(strSelfAllPathName, strGuid); } }
private XmlDocument eventContainer_GroupSortObjects(XmlDocument xmlDoc, Dictionary <object, object> context) { XmlDocument result; XmlElement root = xmlDoc.DocumentElement; string strGroupGuid = root.GetAttribute("GUID"); ExceptionHelper.TrueThrow(strGroupGuid == string.Empty, "对不起,没有指定人员组的标识!"); string strSql = @" UPDATE GROUPS SET MODIFY_TIME = GETDATE() WHERE GUID = {0};" ; strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strGroupGuid, true)); int iPageNo = Convert.ToInt32(root.GetAttribute("PageNo")); int iPageSize = Convert.ToInt32(root.GetAttribute("PageSize")); StringBuilder builder = new StringBuilder(1024); for (int iSort = iPageNo * iPageSize; iSort < root.ChildNodes.Count; iSort++) { XmlNode elem = root.ChildNodes[iSort]; string strUserGuid = elem.SelectSingleNode("USER_GUID").InnerText; string strOrgGuid = elem.SelectSingleNode("USER_PARENT_GUID").InnerText; ExceptionHelper.TrueThrow(strUserGuid == string.Empty || strOrgGuid == string.Empty, "对不起,存在未指定的用户身份标志!"); strSql = @" UPDATE GROUP_USERS SET INNER_SORT = {0}, MODIFY_TIME = GETDATE() WHERE GROUP_GUID = {1} AND USER_GUID = {2} AND USER_PARENT_GUID = {3} " ; strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(iSort.ToString(CommonResource.OriginalSortDefault), true), TSqlBuilder.Instance.CheckQuotationMark(strGroupGuid, true), TSqlBuilder.Instance.CheckQuotationMark(strUserGuid, true), TSqlBuilder.Instance.CheckQuotationMark(strOrgGuid, true)); builder.Append(strSql + Environment.NewLine); } InnerCommon.ExecuteNonQuery(strSql); DataSet ds = OGUReader.GetUsersInGroups(strGroupGuid, SearchObjectColumn.SEARCH_GUID, OGUCommonDefine.CombinateAttr(root.GetAttribute("extAttr")), string.Empty, SearchObjectColumn.SEARCH_NULL, string.Empty, (int)ListObjectDelete.COMMON); result = this.GetXmlDocAttr(ds.Tables[0], "OBJECTCLASS"); return(result); }
private void eventContainer_SortObjects(XmlDocument xmlDoc, Dictionary <object, object> context) { XmlElement root = xmlDoc.DocumentElement; string strParentGuid = root.GetAttribute("OrgGuid"); string strSql = @" UPDATE ORGANIZATIONS SET MODIFY_TIME = GETDATE() WHERE GUID = {0}; SELECT GLOBAL_SORT FROM ORGANIZATIONS WHERE GUID = {0}; " ; strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strParentGuid, true)); object obj = InnerCommon.ExecuteScalar(strSql); ExceptionHelper.TrueThrow(obj is DBNull, "对不起,你要排序的父部门不存在!"); string strParentGlobalSort = obj.ToString(); int iSort; for (iSort = 0; iSort < root.ChildNodes.Count; iSort++) { XmlNode elem = root.ChildNodes[iSort]; strSql = SetSortDataSql(elem.LocalName, elem.InnerText, strParentGlobalSort, strParentGuid, iSort); InnerCommon.ExecuteNonQuery(strSql); } strSql = @" SELECT * FROM( (SELECT 'USERS' AS OBJECTCLASS, USER_GUID AS GUID, PARENT_GUID, GLOBAL_SORT FROM OU_USERS WHERE STATUS > 1 AND GLOBAL_SORT LIKE {0} + '______') UNION (SELECT 'GROUPS' AS OBJECTCLASS, GUID, PARENT_GUID, GLOBAL_SORT FROM GROUPS WHERE STATUS > 1 AND GLOBAL_SORT LIKE {0} + '______') UNION (SELECT 'ORGANIZATIONS' AS OBJECTCLASS, GUID, PARENT_GUID, GLOBAL_SORT FROM ORGANIZATIONS WHERE STATUS > 1 AND GLOBAL_SORT LIKE {0} + '______') )TEMPDB ORDER BY GLOBAL_SORT " ; strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strParentGlobalSort, true)); DataSet ds = InnerCommon.ExecuteDataset(strSql); StringBuilder builder = new StringBuilder(1024); foreach (DataRow row in ds.Tables[0].Rows) { strSql = SetSortDataSql(OGUCommonDefine.DBValueToString(row["OBJECTCLASS"]), OGUCommonDefine.DBValueToString(row["GUID"]), strParentGlobalSort, strParentGuid, iSort++, builder.Length == 0); builder.Append(strSql + Environment.NewLine); } if (builder.Length > 0) { InnerCommon.ExecuteNonQuery(builder.ToString()); } }
private void InsertObjects(string strOrgGuid) { DataSet ds = OGUReader.GetObjectsDetail("ORGANIZATIONS", strOrgGuid, SearchObjectColumn.SEARCH_GUID, string.Empty, SearchObjectColumn.SEARCH_NULL); parentAllPathName.Value = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["ALL_PATH_NAME"]); }
/// <summary> /// 根据查询条件获取系统中符合条件的数据对象 /// </summary> /// //2009-05-08 private void QueryOGUByCondition2() { XmlNode root = _XmlRequest.DocumentElement.FirstChild; string strRootOrg = XmlHelper.GetSingleNodeValue <string>(root, "ALL_PATH_NAME", string.Empty); string strLikeName = XmlHelper.GetSingleNodeValue <string>(root, "name", "*"); bool bFirstPerson = (root.SelectSingleNode("firstPerson") != null); string strOrgAccessRankCN = string.Empty; string strUserAccessRankCN = string.Empty; int iQueryType = (int)ListObjectType.GROUPS; if (root.SelectSingleNode("USERS") != null) { iQueryType = (int)(ListObjectType.USERS | ListObjectType.SIDELINE); strUserAccessRankCN = XmlHelper.GetSingleNodeValue <string>(root, "RANK_CODE", string.Empty); } else { if (root.SelectSingleNode("ORGANIZATIONS") != null) { iQueryType = (int)ListObjectType.ORGANIZATIONS; strOrgAccessRankCN = XmlHelper.GetSingleNodeValue <string>(root, "RANK_CODE", string.Empty); } } string strAttr = OGUCommonDefine.CombinateAttr(string.Empty); using (DbContext context = DbContext.GetContext(AccreditResource.ConnAlias)) { string strOrgGuid = string.Empty; string strSql = string.Empty; if (strRootOrg.Length > 0) { strSql = "SELECT GUID FROM ORGANIZATIONS WHERE ALL_PATH_NAME = " + TSqlBuilder.Instance.CheckQuotationMark(strRootOrg, true); Database database = DatabaseFactory.Create(context); object obj = database.ExecuteScalar(CommandType.Text, strSql); ExceptionHelper.TrueThrow(obj == null, "系统中没有找到指定的根对象(“" + strRootOrg + "”)!"); strOrgGuid = obj.ToString(); } else { strOrgGuid = OGUCommonDefine.DBValueToString(OGUReader.GetRootDSE().Tables[0].Rows[0]["GUID"]); } DataSet ds = OGUReader.QueryOGUByCondition2(strOrgGuid, SearchObjectColumn.SEARCH_GUID, strLikeName, true, strAttr, iQueryType, ListObjectDelete.COMMON, 0, string.Empty, -1); _XmlResult = InnerCommon.GetXmlDocAttr(ds.Tables[0], "OBJECTCLASS"); Debug.WriteLine(_XmlResult.OuterXml, "Result"); } }
protected void Page_Load(object sender, System.EventArgs e) { string strXSDPath = Server.MapPath(Request.ApplicationPath) + @"/xsd/"; XmlDocument sqlXml = GetXMLDocument("GetDBSchema"); using (DbContext context = DbContext.GetContext(AccreditResource.ConnAlias)) { string strSqlTable = sqlXml.DocumentElement.SelectSingleNode("QueryTable").InnerText; string strSqlColumn = sqlXml.DocumentElement.SelectSingleNode("QueryColumns").InnerText; DataSet dsTables = InnerCommon.ExecuteDataset(strSqlTable); foreach (DataRow row in dsTables.Tables[0].Rows) //each table { if (row["opk_id"] is DBNull) { continue; } string strSql = "SELECT TOP 1 * FROM [" + TSqlBuilder.Instance.CheckQuotationMark(OGUCommonDefine.DBValueToString(row["name"]), false) + "]"; DataSet ds = InnerCommon.ExecuteDataset(strSql); XmlDocument xmlDoc = XmlHelper.CreateDomDocument(ds.GetXmlSchema()); strSql = string.Format(strSqlColumn, TSqlBuilder.Instance.CheckQuotationMark(OGUCommonDefine.DBValueToString(row["opk_id"]), true), TSqlBuilder.Instance.CheckQuotationMark(OGUCommonDefine.DBValueToString(row["id"]), true)); DataSet tableInfo = InnerCommon.ExecuteDataset(strSql); foreach (DataRow infoRow in tableInfo.Tables[0].Rows) { XmlElement elem = (XmlElement)InnerCommon.GetXSDColumnNode(xmlDoc, OGUCommonDefine.DBValueToString(infoRow["name"])); elem.SetAttribute("size", OGUCommonDefine.DBValueToString(infoRow["prec"])); elem.SetAttribute("caption", OGUCommonDefine.DBValueToString(infoRow["description"])); elem.SetAttribute("allowNull", OGUCommonDefine.DBValueToString(infoRow["isnullable"]) == "0" ? "false" : "true"); elem.SetAttribute("isKey", infoRow["keyno"] is DBNull ? "false" : "true"); elem.SetAttribute("imeMode", OGUCommonDefine.DBValueToString(infoRow["type"]).ToUpper() == "NVARCHAR" ? "active" : "inactive"); } XmlElement root = xmlDoc.DocumentElement; while (root.FirstChild != null && root.GetAttribute("name") != "Table") { root = (XmlElement)root.FirstChild; } if (root.GetAttribute("name") == "Table") { root.SetAttribute("name", OGUCommonDefine.DBValueToString(row["name"])); } xmlDoc.Save(strXSDPath + OGUCommonDefine.DBValueToString(row["name"]) + ".xsd"); } } }
private static DataSet GetRolesByIDs(string[] roleIDs) { InSqlClauseBuilder builder = new InSqlClauseBuilder(); builder.AppendItem(roleIDs); string sql = string.Format("SELECT R.ID, R.APP_ID, R.NAME, R.CODE_NAME, R.DESCRIPTION, R.CLASSIFY, R.SORT_ID, R.ALLOW_DELEGATE, R.INHERITED FROM ROLES R WHERE {0} ORDER BY R.CLASSIFY DESC, R.SORT_ID", builder.Count > 0 ? "ID " + builder.ToSqlStringWithInOperator(TSqlBuilder.Instance) : "1 = 0"); return(OGUCommonDefine.ExecuteDataset(sql)); }
static DoExpParsing() { string sql = "SELECT CODE_NAME, SORT_ID, NAME FROM RANK_DEFINE"; DataTable RankDefineDT = OGUCommonDefine.ExecuteDataset(sql).Tables[0]; foreach (DataRow row in RankDefineDT.Rows) { RankDefineSortHT.Add(row["CODE_NAME"], row["SORT_ID"]); RankDefineNameHT.Add(row["CODE_NAME"], row["NAME"]); } }
/// <summary> /// /// </summary> private void GetSecretariesOfLeaders() { XmlElement root = _XmlRequest.DocumentElement; string strLeaderGuid = root.GetAttribute("GUID"); string strAttrs = OGUCommonDefine.CombinateAttr(root.GetAttribute("extAttr")); DataSet ds = OGUReader.GetSecretariesOfLeaders(strLeaderGuid, SearchObjectColumn.SEARCH_GUID, strAttrs, (int)ListObjectDelete.COMMON); _XmlResult = InnerCommon.GetXmlDocAttr(ds.Tables[0], "OBJECTCLASS"); }
private DataRow PrepareForInsert(DataRow oRow, out string strParent, out string strSelfAllPathName, out string strRootGuid, out string strInnerSort) { strParent = _RootAllPathName; if (ContainsValue(0, "ALL_PATH_NAME") >= 0) { strSelfAllPathName = (string)oRow[_DataColumns[ContainsValue(0, "ALL_PATH_NAME")][2]]; strParent = strSelfAllPathName.Substring(0, strSelfAllPathName.LastIndexOf("\\")); } else { strSelfAllPathName = strParent + "\\" + (string)oRow[_DataColumns[ContainsValue(0, "OBJ_NAME")][2]]; } //strRootGuid = (string)_RootHash[strParent]; // string strSql = @" // UPDATE ORGANIZATIONS // SET CHILDREN_COUNTER = CHILDREN_COUNTER + 1, MODIFY_TIME = GETDATE() // WHERE GUID = {0} ; // // SELECT * // FROM ORGANIZATIONS // WHERE GUID = {0}"; // // strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strRootGuid)); string strSql = @" UPDATE ORGANIZATIONS SET CHILDREN_COUNTER = CHILDREN_COUNTER + 1, MODIFY_TIME = GETDATE() WHERE ALL_PATH_NAME = {0} ; SELECT * FROM ORGANIZATIONS WHERE ALL_PATH_NAME = {0}" ; strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strParent, true)); DataSet ds = InnerCommon.ExecuteDataset(strSql); ExceptionHelper.TrueThrow(((ds == null) || (ds.Tables.Count == 0) || (ds.Tables[0].Rows.Count == 0)), "对不起,系统中没有找到部门对象" + strParent + "!"); DataRow row = ds.Tables[0].Rows[0]; string strChildCounter = OGUCommonDefine.DBValueToString(row["CHILDREN_COUNTER"]); strInnerSort = AccreditResource.OriginalSortDefault.Substring(0, AccreditResource.OriginalSortDefault.Length - strChildCounter.Length) + strChildCounter; strRootGuid = (string)_RootHash[strParent]; if (string.IsNullOrEmpty(strRootGuid)) { _RootHash.Add(strParent, row["GUID"].ToString()); strRootGuid = (string)_RootHash[strParent]; } return(row); }
protected void Page_Load(object sender, System.EventArgs e) { Response.Cache.SetNoStore(); string strParentGuid = (string)GetRequestData("parentGuid", string.Empty).ToString(); string strOPType = (string)GetRequestData("opType", string.Empty); ExceptionHelper.TrueThrow(strOPType == string.Empty, "对不起,系统传输数据缺少“opType”!"); if (false == IsPostBack) { using (DbContext context = DbContext.GetContext(AccreditResource.ConnAlias)) { InitPageObject(); switch (strOPType) { case "Update": string strObjGuid = (string)GetRequestData("objGuid", string.Empty); ExceptionHelper.TrueThrow(string.IsNullOrEmpty(strObjGuid), "对不起,系统传输数据缺少“objGuid”!"); DataSet ds = OGUReader.GetObjectsDetail("ORGANIZATIONS", strObjGuid, SearchObjectColumn.SEARCH_GUID, strParentGuid, SearchObjectColumn.SEARCH_GUID); ExceptionHelper.TrueThrow((ds == null) || (ds.Tables.Count == 0) || (ds.Tables[0].Rows.Count == 0), "对不起,系统中没有找到指定的对象!"); organizationData.Value = InnerCommon.GetXmlDoc(ds).OuterXml; string strAllPathName = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["ALL_PATH_NAME"]); if (strAllPathName.LastIndexOf("\\") >= 0) { parentAllPathName.Value = strAllPathName.Substring(0, strAllPathName.LastIndexOf("\\")); } break; case "Insert": string strSql = "SELECT ALL_PATH_NAME FROM ORGANIZATIONS WHERE GUID = " + TSqlBuilder.Instance.CheckQuotationMark(strParentGuid, true); parentAllPathName.Value = InnerCommon.ExecuteScalar(strSql).ToString(); break; default: ExceptionHelper.TrueThrow(true, "对不起,系统传输数据“opType”不正确!"); break; } } CheckPermission(strOPType); } }
/// <summary> /// /// </summary> private void GetObjectsDetail() { XmlElement root = _XmlRequest.DocumentElement; string strValueType = root.GetAttribute("valueType"); SearchObjectColumn soc = OGUCommonDefine.GetSearchObjectColumn(strValueType); string strValue = root.GetAttribute("oValues"); string strExtAttr = root.GetAttribute("extAttrs"); DataSet ds = OGUReader.GetObjectsDetail(string.Empty, strValue, soc, string.Empty, SearchObjectColumn.SEARCH_NULL, strExtAttr); _XmlResult = InnerCommon.GetXmlDocAttr(ds.Tables[0], "OBJECTCLASS"); #if DEBUG Debug.WriteLine(_XmlResult.OuterXml, "Result"); #endif }
/// <summary> /// 得到某个应用的所有表达式 /// </summary> /// <param name="appCodeName"></param> /// <param name="rightMask"></param> /// <returns></returns> private static DataTable GetAllExpressionsInApp(string appCodeName, RightMaskType rightMask) { string sql = string.Format("SELECT E.* FROM APPLICATIONS APP INNER JOIN ROLES R ON APP.ID = R.APP_ID INNER JOIN EXPRESSIONS E ON R.ID = E.ROLE_ID WHERE APP.CODE_NAME = '{0}'", appCodeName); switch (rightMask) { case RightMaskType.App: sql += " AND R.CLASSIFY = 'n'"; break; case RightMaskType.Self: sql += " AND R.CLASSIFY = 'y'"; break; } return(OGUCommonDefine.ExecuteDataset(sql).Tables[0]); }
/// <summary> /// 把table中各个对象的字段设置送入XML对应的属性数据中 /// </summary> /// <param name="table">包含所有数据对象的数据表</param> /// <param name="strNameCol">对象的类型对应字段名成(对应节点的指定的对应名称的字段)</param> /// <returns>把table中各个对象的字段设置送入XML对应的属性数据中</returns> private XmlDocument GetXmlDocAttr(DataTable table, string strNameCol) { XmlDocument xmlDoc = new XmlDocument(); xmlDoc.LoadXml("<DataTable />"); XmlNode root = xmlDoc.DocumentElement; foreach (DataRow row in table.Rows) { XmlElement rowElem = (XmlElement)XmlHelper.AppendNode(root, OGUCommonDefine.DBValueToString(row[strNameCol])); foreach (DataColumn col in table.Columns) { rowElem.SetAttribute(col.ColumnName, OGUCommonDefine.DBValueToString(row[col.ColumnName])); } } return(xmlDoc); }
/// <summary> /// 对象数据移动以后要求发生的XML数据更新(提供给XMLHTTP返回使用) /// </summary> /// <param name="ds"></param> /// <param name="root"></param> /// <param name="strOrgGuid"></param> private static void SetMoveDataToXml(DataSet ds, XmlElement root, string strOrgGuid) { ExceptionHelper.TrueThrow(ds.Tables[0].Rows.Count == 0, "对不起,系统对于移动对象"" + root.GetAttribute("ALL_PATH_NAME") + ""操作没有成功!"); root.SetAttribute("OLD_ORIGINAL_SORT", root.GetAttribute("ORIGINAL_SORT")); root.SetAttribute("ORIGINAL_SORT", OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["ORIGINAL_SORT"])); root.SetAttribute("OLD_GLOBAL_SORT", root.GetAttribute("GLOBAL_SORT")); root.SetAttribute("GLOBAL_SORT", OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["GLOBAL_SORT"])); root.SetAttribute("OLD_INNER_SORT", root.GetAttribute("INNER_SORT")); root.SetAttribute("INNER_SORT", OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["INNER_SORT"])); root.SetAttribute("OLD_ALL_PATH_NAME", root.GetAttribute("ALL_PATH_NAME")); root.SetAttribute("ALL_PATH_NAME", OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["ALL_PATH_NAME"])); root.SetAttribute("PARENT_GUID", strOrgGuid); }
protected void Page_Load(object sender, System.EventArgs e) { Response.Cache.SetNoStore(); string strGroupGuid = (string)GetRequestData("Guid", string.Empty); ExceptionHelper.TrueThrow(strGroupGuid == string.Empty, "对不起,没有确定的人员组标识!"); LeaderGuid.Value = strGroupGuid; DataSet ds = OGUReader.GetObjectsDetail("USERS", strGroupGuid, SearchObjectColumn.SEARCH_USER_GUID, string.Empty, SearchObjectColumn.SEARCH_NULL); LeaderDisplayName.Text = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["DISPLAY_NAME"]); userPermission.Value = classLib.OGUUserPermission.GetOGUPemission(); }
private void UpdateObjects(string strOrgGuid) { string strObjGuid = (string)GetRequestData("objGuid", string.Empty); DataSet ds = OGUReader.GetObjectsDetail("USERS", strObjGuid, SearchObjectColumn.SEARCH_USER_GUID, strOrgGuid, SearchObjectColumn.SEARCH_GUID); ExceptionHelper.TrueThrow((ds == null) || (ds.Tables.Count == 0) || (ds.Tables[0].Rows.Count == 0), "对不起,系统中没有找到指定的对象!"); userData.Value = InnerCommon.GetXmlDoc(ds).OuterXml; string strAllPathName = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["ALL_PATH_NAME"]); if (strAllPathName.LastIndexOf("\\") >= 0) { parentAllPathName.Value = strAllPathName.Substring(0, strAllPathName.LastIndexOf("\\")); } }
private static void PrepareInsertOrgORGroups(XmlDocument xmlDoc, XmlDocument xsdDoc, Dictionary <object, object> context) { XmlNode nodeSet = xmlDoc.DocumentElement.SelectSingleNode(".//SET"); CheckAllPathNameInSystem(nodeSet.SelectSingleNode(".//ALL_PATH_NAME").InnerText); string strSql = @" UPDATE ORGANIZATIONS SET CHILDREN_COUNTER = CHILDREN_COUNTER + 1, MODIFY_TIME = GETDATE() WHERE GUID = {0} ; SELECT * FROM ORGANIZATIONS WHERE GUID = {0}" ; strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(nodeSet.SelectSingleNode("PARENT_GUID").InnerText, true)); DataSet ds = InnerCommon.ExecuteDataset(strSql); ExceptionHelper.TrueThrow((ds == null) || (ds.Tables.Count == 0) || (ds.Tables[0].Rows.Count == 0), "对不起,系统中没有找到父部门对象!"); DataRow row = ds.Tables[0].Rows[0]; string strChildCounter = OGUCommonDefine.DBValueToString(row["CHILDREN_COUNTER"]); string strInnerSort = CommonResource.OriginalSortDefault.Substring(0, CommonResource.OriginalSortDefault.Length - strChildCounter.Length) + strChildCounter; XmlHelper.AppendNode(nodeSet, "INNER_SORT", strInnerSort); XmlHelper.AppendNode(nodeSet, "GLOBAL_SORT", OGUCommonDefine.DBValueToString(row["GLOBAL_SORT"]) + strInnerSort); XmlHelper.AppendNode(nodeSet, "ORIGINAL_SORT", OGUCommonDefine.DBValueToString(row["ORIGINAL_SORT"]) + strInnerSort); XmlHelper.AppendNode(nodeSet, "GUID", Guid.NewGuid().ToString()); XmlHelper.AppendNode(nodeSet, "STATUS", "1"); DataExtraCheck(xmlDoc, nodeSet.ParentNode.LocalName);//附加的数据检查 strSql = InnerCommon.GetInsertSqlStr(xmlDoc, xsdDoc); context.Add("Sql", strSql); }
private static string GetObjInfo(string strType, string strObjId, string strParentId) { string strResult = string.Empty; string strSql = string.Empty; switch (strType.ToUpper()) { case "USERS": strSql = "SELECT ALL_PATH_NAME FROM OU_USERS WHERE USER_GUID = {0} AND PARENT_GUID = {1}"; break; case "ORGANIZATIONS": strSql = "SELECT ALL_PATH_NAME FROM ORGANIZATIONS WHERE GUID = {0} AND PARENT_GUID = {1}"; break; case "GROUPS": strSql = "SELECT ALL_PATH_NAME FROM GROUPS WHERE GUID = {0} AND PARENT_GUID = {1}"; break; } if (strSql != string.Empty) { strSql = string.Format(strSql, TSqlBuilder.Instance.CheckQuotationMark(strObjId, true), TSqlBuilder.Instance.CheckQuotationMark(strParentId, true)); object obj = OGUCommonDefine.ExecuteScalar(strSql); if (obj != null) { strResult = obj.ToString(); } } if (strResult == string.Empty) { strResult = string.Format("没有找到{0}信息:\nobjId:{1}\nparentId:{2}\n", strType, strObjId, strParentId); } return(strResult); }
private bool IsObjectIsIncludeInObjects(string strObjType, string strObjValue, SearchObjectColumn soc, DataSet objsDs) { DataSet oDs = OGUReader.GetObjectsDetail(strObjType, strObjValue, soc, string.Empty, SearchObjectColumn.SEARCH_NULL); foreach (DataRow oRow in oDs.Tables[0].Rows) { string strObjAllPathName = OGUCommonDefine.DBValueToString(oRow["ALL_PATH_NAME"]); foreach (DataRow sRow in objsDs.Tables[0].Rows) { string[] strArry = OGUCommonDefine.DBValueToString(sRow["DESCRIPTION"]).Split(',', ';', ' '); foreach (string strValue in strArry) { if (strValue.Length <= strObjAllPathName.Length && strValue.Length >= 0 && strObjAllPathName.Substring(0, strValue.Length) == strValue) { return(true); } } } } return(false); }
/// <summary> /// 因为更新了机构的对象名称,要求同步修改其子孙的ALL_PATH_NAME /// </summary> /// <param name="xmlDoc"></param> /// <returns></returns> private static string UpdataOrganizationsChildrens(XmlDocument xmlDoc) { string strResult = string.Empty; XmlNode root = xmlDoc.DocumentElement.FirstChild; if (root.SelectSingleNode("SET/OBJ_NAME") != null) { string strNewOrgAPN = root.SelectSingleNode("SET/ALL_PATH_NAME").InnerText; string strGuid = root.SelectSingleNode("WHERE/GUID").InnerText; ExceptionHelper.TrueThrow(strGuid.Length == 0, "对不起,没有找到确定修改的目标!"); string strSql = "SELECT * FROM ORGANIZATIONS WHERE GUID = " + TSqlBuilder.Instance.CheckQuotationMark(strGuid, true); DataSet ds = InnerCommon.ExecuteDataset(strSql); ExceptionHelper.TrueThrow(ds.Tables[0].Rows.Count == 0, "对不起,没有找到确定修改的目标!"); string strOldOrgAPN = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["ALL_PATH_NAME"]); string strOrgOS = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["ORIGINAL_SORT"]); strResult = @" UPDATE ORGANIZATIONS SET ALL_PATH_NAME = {0} + SUBSTRING(ALL_PATH_NAME, LEN({2}) + 1, LEN(ALL_PATH_NAME) - LEN({2})) WHERE ORIGINAL_SORT LIKE {1} + '_%'; UPDATE GROUPS SET ALL_PATH_NAME = {0} + SUBSTRING(ALL_PATH_NAME, LEN({2}) + 1, LEN(ALL_PATH_NAME) - LEN({2})) WHERE ORIGINAL_SORT LIKE {1} + '_%'; UPDATE OU_USERS SET ALL_PATH_NAME = {0} + SUBSTRING(ALL_PATH_NAME, LEN({2}) + 1, LEN(ALL_PATH_NAME) - LEN({2})) WHERE ORIGINAL_SORT LIKE {1} + '_%';" ; strResult = string.Format(strResult, TSqlBuilder.Instance.CheckQuotationMark(strNewOrgAPN, true), TSqlBuilder.Instance.CheckQuotationMark(strOrgOS, true), TSqlBuilder.Instance.CheckQuotationMark(strOldOrgAPN, true)); } return(strResult); }
/// <summary> /// 执行数据获取【入库】 /// </summary> /// <param name="originalSql">原始数据</param> private void InitDatabase(string originalSql) { string sql = @" IF EXISTS(SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME=N'WEB_READ_LOG') DROP TABLE dbo.WEB_READ_LOG CREATE TABLE dbo.WEB_READ_LOG ( GUID uniqueidentifier NOT NULL PRIMARY KEY NONCLUSTERED, WEB_METHOD_NAME nvarchar(128) NOT NULL, INPUT_STREAM ntext NULL, OUTPUT_STREAM ntext NULL, START_DATE datetime NOT NULL, END_DATE datetime NOT NULL, HOST_IP nvarchar(16) NOT NULL ) ON [PRIMARY] CREATE CLUSTERED INDEX IX_WEB_READ_LOG_START_DATE ON dbo.WEB_READ_LOG (START_DATE) ON [PRIMARY] " + originalSql; OGUCommonDefine.ExecuteNonQuery(sql); }
protected void Page_Load(object sender, System.EventArgs e) { Response.Cache.SetNoStore(); string strGroupGuid = (string)GetRequestData("Guid", string.Empty); ExceptionHelper.TrueThrow(strGroupGuid == string.Empty, "对不起,没有确定的人员组标识!"); groupGuid.Value = strGroupGuid; using (DbContext context = DbContext.GetContext(AccreditResource.ConnAlias)) { DataSet ds = OGUReader.GetObjectsDetail("GROUPS", strGroupGuid, SearchObjectColumn.SEARCH_GUID, string.Empty, SearchObjectColumn.SEARCH_NULL); GroupDisplayName.Text = OGUCommonDefine.DBValueToString(ds.Tables[0].Rows[0]["DISPLAY_NAME"]); userPermission.Value = classLib.OGUUserPermission.GetOGUPemission(); } txtPageSize.Value = AccreditSection.GetConfig().AccreditSettings.GroupUsersPageSize.ToString(); }
private void WriteOutputStream(SoapMessage message) { this.newStream.Position = 0; Copy(this.newStream, this.oldStream); if (AccreditSection.GetConfig().AccreditSettings.SoapRecord & message is SoapServerMessage) { if (AccreditSection.GetConfig().AccreditSettings.SoapRecordOutput) { this.newStream.Position = 0; TextReader reader = new StreamReader(this.newStream); this.soapRecorder.OutputStream = reader.ReadToEnd(); } this.soapRecorder.EndDate = DateTime.Now; if (HttpContext.Current != null) { this.soapRecorder.HostIP = HttpContext.Current.Request.UserHostAddress; } string sql = ORMapping.GetInsertSql <SoapRecorder>(this.soapRecorder, TSqlBuilder.Instance); try { OGUCommonDefine.ExecuteNonQuery(sql); } catch (DbException ex) { if (ex.Message.IndexOf("WEB_READ_LOG") > 0) { InitDatabase(sql); } //else // throw ex; } } }