/*====================================================*/ protected virtual bool WfTaskOutcome_CreateNewTaskAssignments(XmlNodeList aTaskNodeList) { foreach (XmlNode aTaskNode in aTaskNodeList) { //check if WfTaskAssignment already exists for GranteeProjectID, PersonID, WfTaskID int aNewTaskID = cXMLDoc.AttributeToInt(aTaskNode, "TaskKey", 0); string aUpdateExistingWFTA = cXMLDoc.AttributeToString(aTaskNode, "UpdateExistingWFTA", "True"); String aNewPersonProperty; int aNewPersonID = -1; int aDefaultWorkgroupID = -1; if (!cXMLDoc.AttributeToBool(aTaskNode, "NoPersonID", false)) { aNewPersonProperty = cXMLDoc.AttributeToString(aTaskNode, "PersonID"); if (aNewPersonProperty == "") aNewPersonProperty = "PersonID"; aNewPersonID = this.GetRelatedPropertyInt(aNewPersonProperty, -1); if (aNewPersonID == 0 || aNewPersonID == -1) { aNewPersonID = -1; aDefaultWorkgroupID = cXMLDoc.AttributeToInt(aTaskNode, "DefaultWorkgroupID", -1); } } XmlNode aDataObjectNode; XmlNode aFiltersNode; cXMLDoc aXmlDoc = this.DataObjectList.DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode); aFiltersNode.AppendChild(this.DataObjectList.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "GranteeProjectID", this.GetPropertyString("GranteeProjectID"))); if (aNewPersonID != -1) aFiltersNode.AppendChild(this.DataObjectList.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "PersonID", aNewPersonID.ToString())); aFiltersNode.AppendChild(this.DataObjectList.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "WfTaskID", aNewTaskID.ToString())); aFiltersNode.AppendChild(this.DataObjectList.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "AppWftaID", this.GetPropertyString("WfTaskAssignmentID"))); XmlNodeList aExistingFiltersList = aTaskNode.SelectNodes("ExistingWfTAFilters/Argument"); foreach (XmlNode aExistingFilterNode in aExistingFiltersList) { WfTaskOutcome_SetRelatedDataObjectArgValues(null, aExistingFilterNode); aFiltersNode.InnerXml += aExistingFilterNode.OuterXml; } cWfTaskAssignment aWfTaskAssgDataObject = (cWfTaskAssignment)this.DataObjectList.DataObjectFactory.GetDataObject(aDataObjectNode); if (aWfTaskAssgDataObject == null){ //create new WfTaskAssignment object aWfTaskAssgDataObject = (cWfTaskAssignment)DataObjectFactory.CreateNewDataObjectFromKey("WfTaskAssignment"); aWfTaskAssgDataObject["WfTaskID"] = aNewTaskID; if (aNewPersonID != -1) aWfTaskAssgDataObject["PersonID"] = aNewPersonID; else if (aDefaultWorkgroupID != -1) aWfTaskAssgDataObject["WorkgroupID"] = aDefaultWorkgroupID; WfTaskOutcome_SaveNewTaskAssignment(aWfTaskAssgDataObject, aTaskNode); } else if (aUpdateExistingWFTA == "True") { WfTaskOutcome_SaveNewTaskAssignment(aWfTaskAssgDataObject, aTaskNode); } if (!aWfTaskAssgDataObject.ContinueProcessing) return false; //create related data objects XmlNodeList aRelatedDOList = aTaskNode.SelectNodes("RelatedDataObject"); foreach (XmlNode aRelatedDONode in aRelatedDOList) WfTaskOutcome_CreateTARelatedDataObject(aWfTaskAssgDataObject, aRelatedDONode); } return true; }
public void Notify_DataModified_HHMI(cDataObjectFactory aDataObjectFactory) { cWfTaskAssignment aApplWfTA = this; //find the applicant WfTaskAssignment int aRoleID = this.GetPropertyInt("WfTaskRoleID", 0); if (aRoleID != 1) { cDataObject aGP = this.GetRelatedPropertyDataObject("GranteeProject"); cDataObjectList aDOL; aDOL = aGP.GetRelatedPropertyDataObjectList("ApplWfTaskAssignments"); foreach (cDataObject aDO in aDOL) { if (aDO.GetRelatedPropertyInt("WfTask.WfTaskTypeID", 0) == 1) { aApplWfTA = (cWfTaskAssignment) aDO; break; } } } cDataObjectList aWfProjectPDFList = aApplWfTA.GetRelatedPropertyDataObjectList("GranteeProject.WfProjectPDF"); foreach (cDataObject aWfProjectPDF in aWfProjectPDFList) { if (aWfProjectPDF.GetPropertyInt("PDFGenerationID", 0) == 1) { string aReportOutputDefinitionID = aWfProjectPDF.GetRelatedPropertyString("FinalPDFReportKeyLink.ReportOutputDefinitionID"); cDataObject aReportOutputDO = aDataObjectFactory.GetDataObjectListWithFilter("ReportOutput", "DefinitionID", aReportOutputDefinitionID, "EntityID", aApplWfTA.GetPropertyString("WfTaskAssignmentID"))[0]; if (aReportOutputDO != null) { if (aRoleID != 1 && aWfProjectPDF.GetPropertyInt("ReportOutputDefinitionTypeID", 1) == 1) continue; //skip applicant pdf when make changes to third party data //delete existing pdf aDataObjectFactory.DeleteData(aReportOutputDO); } } } }
/*----------------------------------------------------*/ public static cGranteeProjectOutcomes Create_Outcome(cWfTaskAssignment aWfTA, bool aComplete, bool aCreatePrevious, bool aCreateNext) { cGranteeProjectOutcomes aGranteeProjectOutcomes = null; cDataObjectFactory aDataObjectFactory; aDataObjectFactory = aWfTA.DataObjectFactory; int aOutcomeID = aWfTA.GetPropertyInt("WfTaskOutcomeID", 0); int aGPID = aWfTA.GetPropertyInt("GranteeProjectID", 0); int aWfTaskID = aWfTA.GetPropertyInt("WfTaskID", 0); if (aGPID > 0 && aWfTaskID > 0) { aGranteeProjectOutcomes = cGranteeProjectOutcomes.Create_Outcome(aDataObjectFactory, aGPID, aWfTaskID, aOutcomeID, aComplete, aCreatePrevious, aCreateNext); } return(aGranteeProjectOutcomes); }
/*----------------------------------------------------*/ public static void Validate_For_WfTA_Update(cWfTaskAssignment aWfTA) { cXMLDoc aXMLDoc; XmlNode aDataObjectNode; XmlNode aFiltersNode; XmlNode aArgNode; cDataObject aGranteeProjectOutcomes; cDataObjectFactory aDataObjectFactory; aDataObjectFactory = aWfTA.DataObjectFactory; aXMLDoc = aDataObjectFactory.CreateDataObjectNode("GranteeProjectOutcomes", out aDataObjectNode, out aFiltersNode); aArgNode = aDataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "GranteeProjectID", aWfTA.GetPropertyString("GranteeProjectID")); aFiltersNode.AppendChild(aArgNode); aArgNode = aDataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfTaskID", aWfTA.GetPropertyString("WfTaskID")); aFiltersNode.AppendChild(aArgNode); aGranteeProjectOutcomes = (cGranteeProjectOutcomes)aDataObjectFactory.GetDataObject(aDataObjectNode); if (aGranteeProjectOutcomes != null) { //Update the Outcome if (aWfTA.GetPropertyInt("WfTaskOutcomeID", 0) > 0) { aGranteeProjectOutcomes["OutcomeID"] = aWfTA.GetPropertyInt("WfTaskOutcomeID"); } } else { //Create a new data object. aGranteeProjectOutcomes = aDataObjectFactory.CreateNewDataObjectFromKey("GranteeProjectOutcomes"); aGranteeProjectOutcomes["GranteeProjectID"] = aWfTA.GetPropertyInt("GranteeProjectID"); aGranteeProjectOutcomes["WfTaskID"] = aWfTA.GetPropertyInt("WfTaskID"); if (aWfTA.GetPropertyInt("WfTaskOutcomeID", 0) > 0) { aGranteeProjectOutcomes["OutcomeID"] = aWfTA.GetPropertyInt("WfTaskOutcomeID"); } aGranteeProjectOutcomes["Complete"] = false; } aGranteeProjectOutcomes.SaveData(); }