コード例 #1
0
        /// <summary>
        /// Параметризированный конструктор
        /// Выполняет до-загрузку данных о подчиненных подразделениях, если
        /// это требуется в соответствии с заданными параметрами конфигурации
        /// </summary>
        /// <param name="xmlList_ExceptedDepsList">
        /// Перечень элемментов itws:department из секции itws:excepted-departments.
        /// Может быть null или пустым.
        /// </param>
        public ExpensesProcessPrarms(XmlNodeList xmlList_ExceptedDepsList)
        {
            StringBuilder sbExceptedDepsList           = new StringBuilder();
            StringBuilder sbExceptedDepsWithNestedList = new StringBuilder();

            if (null != xmlList_ExceptedDepsList && 0 != xmlList_ExceptedDepsList.Count)
            {
                // Перебор всех элементов конфигурации; формируется две строки -
                // перечень идентификаторов подразделений "как есть" и перечень
                // идентификаторов подразделений, для которых еще надо определить
                // подчиненных:
                foreach (XmlElement xmlExceptedDep in xmlList_ExceptedDepsList)
                {
                    if (null == xmlExceptedDep)
                    {
                        continue;
                    }
                    string sDepID = xmlExceptedDep.GetAttribute("id");
                    ObjectOperationHelper.ValidateRequiredArgumentAsID(sDepID, "Идентификатор подразделения (" + sDepID + ")");

                    if (String.Empty == xmlExceptedDep.GetAttribute("include-nested"))
                    {
                        sbExceptedDepsList.Append(sDepID).Append(",");
                    }
                    else
                    {
                        sbExceptedDepsWithNestedList.Append(sDepID).Append(",");
                    }
                }

                // Если есть такие, для которых надо определить подчиненных, то
                // выполняем действия по дозагрузке: получение данных с сервера:
                if (sbExceptedDepsWithNestedList.Length > 0)
                {
                    XParamsCollection dsParams = new XParamsCollection();
                    sbExceptedDepsWithNestedList.Length -= 1;
                    dsParams.Add("SrcList", sbExceptedDepsWithNestedList.ToString());

                    object oResult = ObjectOperationHelper.ExecAppDataSourceScalar("CommonService-INIT-ExpandDepsIDsWithNested", dsParams);
                    if (null != oResult && DBNull.Value != oResult)
                    {
                        sbExceptedDepsList.Append(oResult.ToString()).Append(",");
                    }
                }
            }

            // Итоговый список
            if (sbExceptedDepsList.Length > 0)
            {
                sbExceptedDepsList.Length -= 1;
            }
            m_sEmpExpenses_ExceptedDepsList = sbExceptedDepsList.ToString();
        }