Example #1
0
        /// <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;
                        }
                    }
                }
            }
        }
Example #2
0
        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;
                        }
                    }
                }
            }
        }
Example #4
0
        /// <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);
        }
Example #5
0
        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;
        }
Example #6
0
        /// <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);
            }
        }
Example #8
0
        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);
        }
Example #9
0
        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());
            }
        }
Example #10
0
        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"]);
        }
Example #11
0
        /// <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");
            }
        }
Example #12
0
        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));
        }
Example #14
0
        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"]);
            }
        }
Example #15
0
        /// <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");
        }
Example #16
0
        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);
        }
Example #17
0
        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);
            }
        }
Example #18
0
        /// <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]);
        }
Example #20
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);
        }
Example #21
0
        /// <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();
        }
Example #23
0
        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("\\"));
            }
        }
Example #24
0
        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);
        }
Example #25
0
        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);
        }
Example #26
0
        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);
        }
Example #27
0
        /// <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);
        }
Example #29
0
        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;
                }
            }
        }