Exemplo n.º 1
0
	/*----------------------------------------------------*/

	public cDataObject Get_BudgetItemExpense(String aCategoryID, bool aCreateNew, int aTaskID) 
	{
		cXMLDoc aXmlDoc;
		XmlNode aDataObjectNode, aFiltersNode, aArgNode;
		cDataObjectList		aDataObjectList;
		cDataObject aBudgetItem;
        
		aXmlDoc = this.DataObjectFactory.CreateDataObjectNode("BudgetItemExpense", out aDataObjectNode, out aFiltersNode);
		aArgNode = aFiltersNode.AppendChild(this.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data",
			"BudgetItemID", Get_BudgetItem(aCategoryID, true).GetPropertyString("BudgetItemID")));
		aArgNode = aFiltersNode.AppendChild(this.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data",
			"TaskID", aTaskID.ToString(), "And"));
		
		aDataObjectList = DataObjectFactory.GetDataObjectList(aDataObjectNode);
		
		if (aDataObjectList != null && aDataObjectList.Count > 0)
			return aDataObjectList[0];
		else 
		{
			//new BudgetItem
			if (!aCreateNew) return null;
			
			aBudgetItem = DataObjectFactory.CreateNewDataObjectFromKey("BudgetItemExpense");
			aBudgetItem["BudgetItemID"] = Get_BudgetItem(aCategoryID, true).GetPropertyString("BudgetItemID");
			aBudgetItem["TaskID"] = aTaskID;
			return aBudgetItem;
		}
	}
Exemplo n.º 2
0
        public override void ProcessEvent(string aFilterName, string aFilterID)
        {
            string[] aFilterNames = { aFilterName };
            string[] aFilterIDs   = { aFilterID };
            string   aFilterName1 = "UserID";
            string   aFilterID1   = DataObjectFactory.User.UserID.ToString();

            string[]        aFilterNames1    = { aFilterName, aFilterName1 };
            string[]        aFilterIDs1      = { aFilterID, aFilterID1 };
            cDataObjectList aProcessEventDOL = null;

            if (DataObjectFactory.CreateNewDataObjectFromKey(DefinitionKey).HasProperty("UserID"))
            {
                aProcessEventDOL = DataObjectFactory.GetDataObjectListWithFilter(DefinitionKey, aFilterNames1, aFilterIDs1);
            }
            else
            {
                aProcessEventDOL = DataObjectFactory.GetDataObjectListWithFilter(DefinitionKey, aFilterNames, aFilterIDs);
            }
            if (aProcessEventDOL != null && aProcessEventDOL.Count > 0)
            {
                cDataObject aProcessEventDO = aProcessEventDOL[0];
                SetMemberVariables(aProcessEventDO);
            }
        }
Exemplo n.º 3
0
/*----------------------------------------------------*/

	public cBudgetItem Get_BudgetItem(String aCategoryID, bool aCreateNew) {
		cXMLDoc aXmlDoc;
		XmlNode aDataObjectNode, aFiltersNode, aArgNode;
		cDataObjectList		aDataObjectList;
        cBudgetItem aBudgetItem;
        
		aXmlDoc = this.DataObjectFactory.CreateDataObjectNode("BudgetItem", out aDataObjectNode, out aFiltersNode);
		aArgNode = aFiltersNode.AppendChild(this.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data",
												"BudgetPeriodID", BudgetPeriodID.ToString()));
        aArgNode = aFiltersNode.AppendChild(this.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data",
												"BudgetCategoryID", aCategoryID, "And"));
		
		aDataObjectList = DataObjectFactory.GetDataObjectList(aDataObjectNode);
		
		if (aDataObjectList != null && aDataObjectList.Count > 0)
			return (cBudgetItem)aDataObjectList[0];
		else {
			//new BudgetItem
			if (!aCreateNew) return null;
			
			aBudgetItem = (cBudgetItem)DataObjectFactory.CreateNewDataObjectFromKey("BudgetItem");
			aBudgetItem["BudgetCategoryID"] = aCategoryID;
			return aBudgetItem;
		}
	}
Exemplo n.º 4
0
/*----------------------------------------------------*/

        public cBudget Get_Budget(bool aCreateNew)
        {
            cXMLDoc         aXmlDoc;
            XmlNode         aDataObjectNode, aFiltersNode, aArgNode;
            cDataObjectList aDataObjectList;
            cBudget         aBudget;

            aXmlDoc  = this.DataObjectFactory.CreateDataObjectNode("Budget", out aDataObjectNode, out aFiltersNode);
            aArgNode = aFiltersNode.AppendChild(this.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data",
                                                                                          "GranteeProjectID", GetPropertyString("GranteeProjectID")));

            aDataObjectList = DataObjectFactory.GetDataObjectList(aDataObjectNode);

            if (aDataObjectList != null && aDataObjectList.Count > 0)
            {
                return((cBudget)aDataObjectList[0]);
            }
            else
            {
                //new BudgetItem
                if (!aCreateNew)
                {
                    return(null);
                }

                aBudget = (cBudget)DataObjectFactory.CreateNewDataObjectFromKey("Budget");
                aBudget["GranteeProjectID"] = GetPropertyString("GranteeProjectID");
                return(aBudget);
            }
        }
Exemplo n.º 5
0
/*----------------------------------------------------*/
        public void GenerateAssignments_AllToAll(cDataObjectList aReviewerList, cDataObjectList aGranteeProjList)
        {
            cDataObject aWFTA;
            int         aAssignmentOrdinal;

            foreach (cGranteeProject aGranteeProject in aGranteeProjList)
            {
                aAssignmentOrdinal = 0;
                foreach (cReviewCommitteeMember aReviewer in aReviewerList)
                {
                    aWFTA                      = DataObjectFactory.CreateNewDataObjectFromKey("WfTaskAssignment");
                    aWFTA["WfTaskID"]          = this.GetRelatedPropertyInt("WfProjectTask.WfTaskID");
                    aWFTA["PersonID"]          = aReviewer["PersonID"];
                    aWFTA["WfTaskRoleID"]      = 7;
                    aWFTA["GranteeProjectID"]  = aGranteeProject["GranteeProjectID"];
                    aWFTA["WfTaskStatusID"]    = 1;                  //incomplete
                    aWFTA["AssignmentOrdinal"] = aAssignmentOrdinal; //used to identify primary, secondary reviewer
                    aWFTA.SaveData();
                    aAssignmentOrdinal += 1;
                }
            }
            //Create GranteeProjectReviewStage data objects for this stage
            foreach (cGranteeProject aGranteeProject in aGranteeProjList)
            {
                aGranteeProject.GetGranteeProjectReviewStageDO(this.GetPropertyInt("WfProjectTaskID"));
            }
        }
Exemplo n.º 6
0
		/*====================================================*/

		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;
		}
Exemplo n.º 7
0
		/*----------------------------------------------------*/
		protected cDataObject WfTaskOutcome_CreateTARelatedDataObject(cDataObject aNewWfTaskAssgDataObject, XmlNode aRelatedDONode) {
			//Get related data object if it already exists.
			String aDODefKey = cXMLDoc.AttributeToString(aRelatedDONode, "DataObjectDefinitionKey");
			XmlNodeList aFilterArgsList = aRelatedDONode.SelectNodes("Filters/Argument");
			foreach (XmlNode aArgNode in aFilterArgsList) {
				WfTaskOutcome_SetRelatedDataObjectArgValues(aNewWfTaskAssgDataObject, aArgNode);
			}
			cDataObject aDataObject = DataObjectFactory.GetDataObject(aRelatedDONode);
			//If not, create a new one.
			if (aDataObject == null)
				aDataObject = DataObjectFactory.CreateNewDataObjectFromKey(aDODefKey);
			//Populate properties and save.
			XmlNodeList aPropertyArgsList = aRelatedDONode.SelectNodes("DataObjectProperties/Argument");
			foreach (XmlNode aArgNode in aPropertyArgsList) {
				WfTaskOutcome_SetRelatedDataObjectArgValues(aNewWfTaskAssgDataObject, aArgNode);
				String aPropertyKey = cXMLDoc.AttributeToString(aArgNode, "PropertyKey");
				aDataObject[aPropertyKey] = cXMLDoc.AttributeToString(aArgNode, "Value");
			}

			int aUserID;
			aUserID = ((cPerson) this.GetRelatedPropertyDataObject("Person")).Get_EG_User();
			aDataObject.DataObjectList.UserID = aUserID;

			aDataObject.SaveData();
			if (cXMLDoc.AttributeToString(aRelatedDONode, "Key") != "") {
				RelatedDataObjectCollection.Add(cXMLDoc.AttributeToString(aRelatedDONode, "Key"), aDataObject);
			}
			return aDataObject;
		}
Exemplo n.º 8
0
/*=====================================================*/

	public void SaveData(String aFileName, bool aDeleteFlag) {
		cDataObject		aReportOutputData;
		
		aReportOutputData = GetRelatedPropertyDataObject("ReportOutputData");
		if (aReportOutputData == null) {			
			aReportOutputData = DataObjectFactory.CreateNewDataObjectFromKey("ReportOutputData");
			aReportOutputData["ReportOutputID"] = this["ReportOutputID"];
		}
		
		aReportOutputData.WriteFileToBlob("FileData", aFileName, aDeleteFlag);
		DataObjectFactory.SaveDataObject(aReportOutputData);
	}
Exemplo n.º 9
0
        public override void ProcessEvent(string aPropertyKey, cDataObject aWFTADO)
        {
            cXMLDoc aXmlDoc;
            XmlNode aDataObjectNode, aFiltersNode;

            aXmlDoc = DataObjectFactory.CreateDataObjectNode(DefinitionKey, out aDataObjectNode, out aFiltersNode);
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", aPropertyKey, aWFTADO.GetPropertyString(aPropertyKey)));
            if (DataObjectFactory.CreateNewDataObjectFromKey(DefinitionKey).HasProperty("UserID"))
            {
                aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "UserID", DataObjectFactory.User.UserID.ToString()));
            }
            ProcessEvent(aDataObjectNode);
        }
Exemplo n.º 10
0
/*====================================================*/

        public cDataObject GetGranteeProjectReviewStageDO(int aWfProjectTaskID)
        {
            //Returns the GranteeProjectReviewStage data object for the current GranteeProject in the review stage
            //indicated by the aWfProjectTaskID parameter.
            int         aReviewStageID;
            cXMLDoc     aXMLDoc;
            XmlNode     aDataObjectNode;
            XmlNode     aFiltersNode;
            XmlNode     aArgNode;
            cDataObject aGranteeProjectReviewStageDO;
            cDataObject aReviewStageDO;
            int         aAppWfTaskID;
            cDataObject aAppWFTADO;

            aReviewStageID = cReviewStage.GetReviewStageIDFromWfProjectTaskID(aWfProjectTaskID, DataObjectFactory);
            aXMLDoc        = DataObjectFactory.CreateDataObjectNode("GranteeProjectReviewStage", out aDataObjectNode, out aFiltersNode);
            aArgNode       = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "GranteeProjectID", GetPropertyString("GranteeProjectID"));
            aFiltersNode.AppendChild(aArgNode);
            aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "ReviewStageID", aReviewStageID.ToString());
            aFiltersNode.AppendChild(aArgNode);
            aGranteeProjectReviewStageDO = DataObjectFactory.GetDataObject(aDataObjectNode);
            if (aGranteeProjectReviewStageDO != null)
            {
                return(aGranteeProjectReviewStageDO);
            }
            else
            {
                //Create a new data object.
                //In order to populate this object, we will need the WfTaskAssignmentID of the application. In order
                //to get it, we will need the Application WfTaskID corresponding to this review stage.
                //The WfTaskID of the application WfProjectTask is the same as the parent task of the review stage task.
                aReviewStageDO = DataObjectFactory.GetDataObjectFromPrimaryKey("ReviewStage", aReviewStageID);
            }
            aAppWfTaskID = aReviewStageDO.GetRelatedPropertyInt("WfProjectTask.WfTask.WfParentTaskID");

            //Parent applicant WfTaskAssignmentID, filtering on GranteeProjectID and WfTaskID
            aXMLDoc  = DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode);
            aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "GranteeProjectID", GetPropertyString("GranteeProjectID"));
            aFiltersNode.AppendChild(aArgNode);
            aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfTaskID", aAppWfTaskID.ToString());
            aFiltersNode.AppendChild(aArgNode);
            aAppWFTADO = DataObjectFactory.GetDataObject(aDataObjectNode);

            //Get GranteeProjectReviewStage data object, set values, save and return
            aGranteeProjectReviewStageDO = DataObjectFactory.CreateNewDataObjectFromKey("GranteeProjectReviewStage");
            aGranteeProjectReviewStageDO["ReviewStageID"]         = aReviewStageID;
            aGranteeProjectReviewStageDO["GranteeProjectID"]      = GetPropertyInt("GranteeProjectID");
            aGranteeProjectReviewStageDO["AppWfTaskAssignmentID"] = aAppWFTADO.GetPropertyInt("WfTaskAssignmentID");
            DataObjectFactory.SaveDataObject(aGranteeProjectReviewStageDO);
            return(aGranteeProjectReviewStageDO);
        }
Exemplo n.º 11
0
/*====================================================*/

        public override void SaveData()
        {
            bool aNewObj;
            int  aTaskTypeID;

            aNewObj = this.IsNewDataObject;
            base.SaveData();

            //If this is a new review stage, create the corresponding row in the
            //REVIEW_STAGE table
            aTaskTypeID = GetPropertyInt("WfTaskTypeID");
            if (aNewObj && (aTaskTypeID == 2 || aTaskTypeID == 3))
            {
                cDataObject aReviewStage = DataObjectFactory.CreateNewDataObjectFromKey("ReviewStage");
                aReviewStage["WfTaskID"]         = GetPropertyInt("WfTaskID");
                aReviewStage["IsInterviewStage"] = false;
                aReviewStage.SaveData();
            }
        }
Exemplo n.º 12
0
/*------------------------------------------------------------*/

        //Returns the GranteeProjectReviewStage data object for the current GranteeProject
        //in the review stage indicated by the aReviewCycleStageID, aReviewCycleID and aRevPersonID parameters.
        //This is for the new Review model and uses the following views with the minimum required columns:
        //vApplicantPool: GranteeProjectID, WfTaskAssignmentID
        //vCommitteePool: PersonID, ReviewCycleID, ReviewCommitteeID
        public cDataObject GetGranteeProjectReviewStageDO(int aReviewCycleStageID, int aReviewCycleID, int aRevPersonID)
        {
            cDataObject     aGPRS;
            cDataObjectList aDOList;

            aDOList = DataObjectFactory.GetDataObjectListWithFilter("GranteeProjectReviewStage",
                                                                    "GranteeProjectID", GetPropertyString("GranteeProjectID"),
                                                                    "ReviewCycleStageID", aReviewCycleStageID.ToString());
            if (aDOList.Count >= 1)
            {
                return(aDOList[0]);
            }
            else
            {
                //finds applicant wfta
                aDOList = DataObjectFactory.GetDataObjectListWithFilter("vApplicantPool",
                                                                        "GranteeProjectID", GetPropertyString("GranteeProjectID"));
                int aAppWftaID = 0;
                if (aDOList.Count >= 1)
                {
                    aAppWftaID = aDOList[0].GetPropertyInt("WfTaskAssignmentID");
                }
                //finds review committee
                aDOList = DataObjectFactory.GetDataObjectListWithFilter("vCommitteePool",
                                                                        "PersonID", aRevPersonID.ToString(), "ReviewCycleID", aReviewCycleID.ToString());
                int aReviewCommitteeID = 0;
                if (aDOList.Count >= 1)
                {
                    aReviewCommitteeID = aDOList[0].GetPropertyInt("ReviewCommitteeID");
                }

                aGPRS = DataObjectFactory.CreateNewDataObjectFromKey("GranteeProjectReviewStage");
                aGPRS["GranteeProjectID"]      = GetPropertyInt("GranteeProjectID");
                aGPRS["ReviewCycleStageID"]    = aReviewCycleStageID;
                aGPRS["AppWfTaskAssignmentID"] = aAppWftaID;
                aGPRS["ReviewCommitteeID"]     = aReviewCommitteeID;
                aGPRS.SaveData();
                return(aGPRS);
            }
        }
Exemplo n.º 13
0
/*====================================================*/
	///<summary>
	///gets budget period from ID, if aCreateNew=true creates new period
	///</summary>
	public cBudgetPeriod Get_BudgetPeriod(String aBudgetPeriodID, bool aCreateNew) 
	{
		cXMLDoc aXmlDoc;
		XmlNode aDataObjectNode, aFiltersNode, aArgNode;
		cDataObjectList		aDataObjectList;
        cBudgetPeriod aBudgetPeriod;
        
		aXmlDoc = this.DataObjectFactory.CreateDataObjectNode("BudgetPeriod", out aDataObjectNode, out aFiltersNode);
		aArgNode = aFiltersNode.AppendChild(this.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data",
												"BudgetPeriodID", aBudgetPeriodID));
        
        aDataObjectList = DataObjectFactory.GetDataObjectList(aDataObjectNode);
		
		if (aDataObjectList != null && aDataObjectList.Count > 0)
			return (cBudgetPeriod)aDataObjectList[0];
		else {
			//new BudgetItem
			if (!aCreateNew) return null;
			
			aBudgetPeriod = (cBudgetPeriod)DataObjectFactory.CreateNewDataObjectFromKey("BudgetPeriod");
			aBudgetPeriod["BudgetID"] = this["BudgetID"];
			return aBudgetPeriod;
		}
	}
Exemplo n.º 14
0
/*----------------------------------------------------*/

	public cBudgetItem Get_BudgetItem(String aCategoryID, String aNew) {
		cBudgetItem aBudgetItem;
		aBudgetItem = (cBudgetItem)DataObjectFactory.CreateNewDataObjectFromKey("BudgetItem");
		aBudgetItem["BudgetCategoryID"] = aCategoryID;
		return aBudgetItem;
	}
Exemplo n.º 15
0
/*----------------------------------------------------*/

        public void GenerateAutomaticRequestsConflicts(XmlNodeList aRCTypeNodeList)
        {
            //In this method, the string "RC" within a variable name refers to "Request/Conflict" (e.g., aRCTypeNodeList)
            int aWfTaskID = GetRelatedPropertyDataObject("WfProjectTask").GetPropertyInt("WfTaskID");

            //Delete all existing requests and/or conflicts for this stage
            XmlNode aRCDONode;
            XmlNode aFiltersNode;
            XmlNode aArgumentNode;
            XmlNode aRelatedPropertyNode;

            cXMLDoc aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfTaskAssignmentRequestConflict", out aRCDONode, out aFiltersNode);

            aArgumentNode        = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfTaskID", aWfTaskID.ToString());
            aRelatedPropertyNode = DataObjectFactory.CreateArgumentRelatedPropertyNode(aXMLDoc, "WfTaskAssignment", aArgumentNode);
            aFiltersNode.AppendChild(aArgumentNode);
            aArgumentNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "Automatic", "True");
            aFiltersNode.AppendChild(aArgumentNode);
            cDataObjectList aRCDOList = DataObjectFactory.GetDataObjectList(aRCDONode);

            DataObjectFactory.DeleteData(aRCDOList);

            //Get DOList of all review assignment WFTAs for request/conflict stage
            XmlNode aWFTADONode;

            aXMLDoc       = DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aWFTADONode, out aFiltersNode);
            aArgumentNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfTaskID", aWfTaskID.ToString());
            aFiltersNode.AppendChild(aArgumentNode);
            cDataObjectList aWFTADOList = DataObjectFactory.GetDataObjectList(aWFTADONode);

            int             aIndex;
            String          aRevFullKey;
            String          aRevRelatedKey;
            String          aRevPropertyKey;
            cDataObjectList aRevDOList;
            String          aAppFullKey;
            String          aAppRelatedKey;
            String          aAppPropertyKey;
            cDataObjectList aAppDOList;
            XmlNode         aReviewerNode;
            XmlNodeList     aRevFiltersNodeList;
            XmlNode         aApplicantNode;
            XmlNodeList     aAppFiltersNodeList;
            int             aRCID = 0;
            int             i;

            //foreach(cDataObject aWFTADO in aWFTADOList) {
            for (i = 0; i < aWFTADOList.Count; i++)
            {
                cDataObject aWFTADO = aWFTADOList[i];
                Debug.WriteLine("Checking " + i.ToString() + " of " + aWFTADOList.Count.ToString());
                bool aRC = false;
                foreach (XmlNode aRCTypeNode in aRCTypeNodeList)
                {
                    //Get reviewer property data object list
                    aReviewerNode       = aRCTypeNode.SelectSingleNode("Reviewer");
                    aRevFiltersNodeList = aReviewerNode.SelectNodes("Filters/Argument");
                    aRevFullKey         = cXMLDoc.AttributeToString(aReviewerNode, "PropertyKey");
                    aIndex = aRevFullKey.LastIndexOf(".");
                    if (aIndex == -1)
                    {
                        aRevDOList      = this.DataObjectList;
                        aRevPropertyKey = aRevFullKey;
                    }
                    else
                    {
                        aRevRelatedKey  = aRevFullKey.Substring(0, aIndex);
                        aRevDOList      = aWFTADO.GetRelatedPropertyDataObjectList(aRevRelatedKey);
                        aRevPropertyKey = aRevFullKey.Substring(aIndex + 1);
                    }

                    //Get applicant property data object list
                    aApplicantNode      = aRCTypeNode.SelectSingleNode("Applicant");
                    aAppFiltersNodeList = aApplicantNode.SelectNodes("Filters/Argument");
                    aAppFullKey         = cXMLDoc.AttributeToString(aApplicantNode, "PropertyKey");
                    aIndex = aAppFullKey.LastIndexOf(".");
                    if (aIndex == -1)
                    {
                        aAppDOList      = this.DataObjectList;
                        aAppPropertyKey = aAppFullKey;
                    }
                    else
                    {
                        aAppRelatedKey  = aAppFullKey.Substring(0, aIndex);
                        aAppDOList      = aWFTADO.GetRelatedPropertyDataObjectList(aAppRelatedKey);
                        aAppPropertyKey = aAppFullKey.Substring(aIndex + 1);
                    }

                    //Loop through both lists; return true if any values are equal
                    foreach (cDataObject aRevDO in aRevDOList)
                    {
                        if (aRevDO.MeetsFilterCriteria(aRevFiltersNodeList))
                        {
                            foreach (cDataObject aAppDO in aAppDOList)
                            {
                                if (aAppDO.MeetsFilterCriteria(aAppFiltersNodeList))
                                {
                                    if (aRevDO.GetPropertyString(aRevPropertyKey) == aAppDO.GetPropertyString(aAppPropertyKey))
                                    {
                                        aRC   = true;
                                        aRCID = Convert.ToInt32(cXMLDoc.AttributeToString(aRCTypeNode, "ID"));
                                        break;
                                    }
                                }
                            }                    //foreach(cDataObject aAppDO in aAppDOList)
                        }
                        if (aRC)
                        {
                            break;
                        }
                    }            //foreach(cDataObject aRevDO in aRevDOList)
                    if (aRC)
                    {
                        break;
                    }
                }        //foreach(XmlNode aRCTypeNode in aRCTypeNodeList)
                if (aRC)
                {
                    //Get request/conflict definition to find out whether this is a request or a conflict
                    cDataObject aRCDefDO           = DataObjectFactory.GetDataObjectFromPrimaryKey("Conflict", aRCID.ToString());
                    int         aRequestConflictID = aRCDefDO.GetPropertyInt("RequestConflictID");
                    //Write request/conflict row
                    cDataObject aRCDO;
                    aRCDO = DataObjectFactory.CreateNewDataObjectFromKey("WfTaskAssignmentRequestConflict");
                    aRCDO["ConflictID"]         = aRCID;
                    aRCDO["WfTaskAssignmentID"] = aWFTADO.GetPropertyInt("WfTaskAssignmentID");
                    aRCDO["RequestConflictID"]  = aRequestConflictID;
                    aRCDO["Automatic"]          = true;
                    DataObjectFactory.SaveDataObject(aRCDO);
                }
            }    //foreach(cDataObject aWFTADO in aWFTADOList)
        }