public bool UpdateTender(string sTenderID, string sNewFolderID) { // Проверяем параметры Guid uidTenderID = ObjectOperationHelper.ValidateRequiredArgumentAsID(sTenderID, "Идентификатор Тендера (sTenderID)"); Guid uidFolderID = ObjectOperationHelper.ValidateRequiredArgumentAsID(sNewFolderID, "Идентификатор Тендера в ITracker (sNewFolderID)"); // Загрузим объект типа "Тендер" ObjectOperationHelper helper = ObjectOperationHelper.GetInstance("Tender", uidTenderID); bool bExists = helper.SafeLoadObject(null, null); //Если данного тендера в системе СУТ нет,то выходим if (!bExists) { return(false); } ObjectOperationHelper folderHelper = helper.GetInstanceFromPropScalarRef("Folder", false); if (folderHelper == null || folderHelper.ObjectID != uidFolderID) { // Проставляем свойство "Тендер в Трекере" helper.SetPropScalarRef("Folder", "Folder", uidFolderID); helper.DropPropertiesXmlExcept("Folder"); helper.SaveObject(); return(true); } else { return(true); } }
/// <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(); }