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

        public void RemoveReviewAssignment(int aWfProjectTaskID, int aReviewerPersonID)
        {
            cXMLDoc         aXMLDoc;
            XmlNode         aDataObjectNode;
            XmlNode         aFiltersNode;
            cDataObject     aWfProjectTaskDO;
            cDataObject     aAssignmentDO;
            cDataObjectList aWfTARList;

            //DELETE REVIEW ASSIGNMENT

            //Get review assignment object
            aWfProjectTaskDO = DataObjectFactory.GetDataObjectFromPrimaryKey("WfProjectTask", aWfProjectTaskID.ToString());
            aXMLDoc          = DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode);
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfTaskID", aWfProjectTaskDO.GetPropertyString("WfTaskID")));
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "GranteeProjectID", GetPropertyString("GranteeProjectID")));
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "PersonID", aReviewerPersonID.ToString()));
            aAssignmentDO = DataObjectFactory.GetDataObject(aDataObjectNode);

            //Get and delete related WfTaskAssignmentReview objects
            aWfTARList = DataObjectFactory.GetDataObjectListWithFilter("WfTaskAssignmentReview", "WfTaskAssignmentID", aAssignmentDO.GetPropertyString("WfTaskAssignmentID"));
            DataObjectFactory.DeleteData(aWfTARList);

            //Delete review assignment object
            DataObjectFactory.DeleteData(aAssignmentDO);

            DeleteGPRSIfNecessary(aWfProjectTaskID);
        }
Exemplo n.º 2
0
/*====================================================*/

        public int GetInitialTask()
        {
            int iInitialTaskID = 0;
            //cXMLDoc aXMLDoc;
            //XmlNode aDataObjectNode;
            //XmlNode aFiltersNode;
            //XmlNode aArgNode;

            //cDataObject aWfTaskDO;
            //cDataObjectList aWfProjectTaskList;
            //aWfProjectTaskList = Get_WfProjectTasks_All();
            //foreach(cDataObject aWfProjectTaskDO in aWfProjectTaskList){
            //    aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfTask", out aDataObjectNode, out aFiltersNode);
            //    aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "WfTaskID", aWfProjectTaskDO.GetPropertyString("WfTaskID"));
            //    aFiltersNode.AppendChild(aArgNode);
            //    aWfTaskDO = DataObjectFactory.GetDataObject(aDataObjectNode);
            //    if(aWfTaskDO != null){
            //        if(aWfTaskDO.GetPropertyInt("WfTaskID") == aWfTaskDO.GetPropertyInt("WfParentTaskID", 0)){
            //            iInitialTaskID = aWfTaskDO.GetPropertyInt("WfTaskID");
            //            break;
            //        }
            //    }
            //}
            cDataObject aInitialTaskDO = DataObjectFactory.GetDataObjectListWithFilter("WfProjectTask", "WfProjectID", this.GetPropertyString("WfProjectID"), "InitialProjectTask", "True")[0];

            if (aInitialTaskDO != null)
            {
                iInitialTaskID = aInitialTaskDO.GetRelatedPropertyInt("WfTask.WfTaskID");
            }
            return(iInitialTaskID);
        }
Exemplo n.º 3
0
/*-----------------------------------------------------*/

	public cDataObjectList Person_Updated_WorkgroupTaskList() {
		cXMLDoc aXmlDoc;
		XmlNode aDataObjectNode, aFiltersNode, aArgNode;
		cDataObjectList aWorkGroupList, aWorkGroupTaskListL;
        cDataObjectList aWFTAList = new cDataObjectList(DataObjectFactory);
        
		aXmlDoc = DataObjectFactory.CreateDataObjectNode("WorkGroup", out aDataObjectNode, out aFiltersNode);
		aArgNode = aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data",
												"PersonID", this.GetPropertyString("PersonID")));
        aArgNode = aArgNode.AppendChild(DataObjectFactory.CreateArgumentRelatedPropertyNode(aXmlDoc,
												"WorkGroupMembers"));
		aWorkGroupList = DataObjectFactory.GetDataObjectList(aDataObjectNode);
		
		foreach (cDataObject aWorkGroup in aWorkGroupList) {
			aWorkGroupTaskListL = DataObjectFactory.GetDataObjectListWithFilter("WorkGroupTaskList", "WorkGroupID", aWorkGroup.GetPropertyString("WorkGroupID"));

			foreach (cDataObject aWorkGroupTaskLst in aWorkGroupTaskListL) {
				cDataObjectList		aCurWFTAList;
				
				aCurWFTAList = aWorkGroupTaskLst.GetRelatedPropertyDataObjectList("WfTaskAssignments");
				aWFTAList.AddList(aCurWFTAList);
			}
		}
		
		return aWFTAList;
	}
Exemplo n.º 4
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.º 5
0
/*-----------------------------------------------------*/

	public cEGUser LoginUserFromCredentials(String aLoginID, String aPassword, 
						bool aEnforceUserNameCase, bool aEnforcePasswordCase) {
		cEGUser	aUser;
		cXMLDoc aModuleDoc;
		String startPage="";
		String redirectUrl;
		
		aUser = ValidateLoginCredentials(aLoginID, aPassword, aEnforceUserNameCase, aEnforcePasswordCase, out aModuleDoc);
		if (aUser != null) {			
			//for logging login history
			LogLoginHistory(aUser.UserID);
			//getting the start page for extranet users
			
			cDataObject aUserDO = DataObjectFactory.GetDataObjectListWithFilter("User", "UserID", aUser.UserID.ToString())[0];
			if (CurrentPage.Request["RequestKeyOut"]!="" && CurrentPage.Request["RequestKeyOut"]!= null)
			{
				startPage = CurrentPage.Request["RequestKeyOut"];
			}
			else
			{
				cDataObject aExtranetUser = DataObjectFactory.GetDataObjectListWithFilter("ExtranetGroup", "EasygrantsUserID", aUser.UserID.ToString())[0];
				if (aExtranetUser != null)
				{
					startPage = aExtranetUser.GetRelatedPropertyString("SecurityGroup.StartPage");
				}
			}
			if (CurrentPage.Request["returnurl"] != "" && CurrentPage.Request["returnurl"] != null)
			{
				redirectUrl = WebAppl.Root + WebAppl.Root + "/Gateway/pgGateway.aspx";
				redirectUrl = cWebLib.AddQuerystringParameter(redirectUrl, "Direction", "Out");
				//redirectUrl = cWebLib.AddQuerystringParameter(redirectUrl, "RequestKey", CurrentPage.Request["RequestKeyIn"]);
				redirectUrl = cWebLib.AddQuerystringParameter(redirectUrl, "returnurl", CurrentPage.Request["returnurl"]);
				CurrentPage.Redirect(redirectUrl);
			}
			else if (CurrentPage.Request["RequestKeyIn"]!= "" && CurrentPage.Request["RequestKeyIn"] != null)
			{
				redirectUrl = WebAppl.Root + WebAppl.Root + "/Gateway/pgGateway.aspx";
				redirectUrl = cWebLib.AddQuerystringParameter(redirectUrl, "Direction", "In");
				redirectUrl = cWebLib.AddQuerystringParameter(redirectUrl, "RequestKeyIn", CurrentPage.Request["RequestKeyIn"]);
				//redirectUrl = cWebLib.AddQuerystringParameter(redirectUrl, "TargetUrl", CurrentPage.Request.UrlReferrer.ToString());
				CurrentPage.Redirect(redirectUrl);
			}
			else if (startPage == null || startPage == "" )
			{
				((cModulePage)CurrentPage).ModulePage_RedirectToModule(aModuleDoc);
			}
			else
			{
				redirectUrl = WebAppl.Root + WebAppl.Root + "/Gateway/pgGateway.aspx";
				redirectUrl = cWebLib.AddQuerystringParameter(redirectUrl, "Direction", "Out");
				redirectUrl = cWebLib.AddQuerystringParameter(redirectUrl, "RequestKey", startPage);
				//redirectUrl = cWebLib.AddQuerystringParameter(redirectUrl, "TargetUrl", CurrentPage.Request.UrlReferrer.ToString());
				CurrentPage.Redirect(redirectUrl);
			}
		}
		
		return aUser;
	}
Exemplo n.º 6
0
/*-----------------------------------------------------*/

	public cDataObjectList Person_Updated_WorkgroupTaskList(XmlElement aDataObjectElement) {
		cXMLDoc aXmlDoc;
		XmlNode aDataObjectNode, aFiltersNode, aArgNode;
		cDataObjectList aWorkGroupList, aWorkGroupTaskListL;
		cDataObjectList aWFTAList = DataObjectFactory.CreateDataObjectList(aDataObjectElement); //This is the object that will be returned.

		aXmlDoc = DataObjectFactory.CreateDataObjectNode("WorkGroup", out aDataObjectNode, out aFiltersNode);
		aArgNode = aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data",
												"PersonID", this.GetPropertyString("PersonID")));
        aArgNode = aArgNode.AppendChild(DataObjectFactory.CreateArgumentRelatedPropertyNode(aXmlDoc,
												"WorkGroupMembers"));
		aWorkGroupList = DataObjectFactory.GetDataObjectList(aDataObjectNode);
		
		ArrayList wgArrayL = new ArrayList();
		int wfALIdx = 0;
		foreach (cDataObject aWorkGroup in aWorkGroupList) {
			aWorkGroupTaskListL = DataObjectFactory.GetDataObjectListWithFilter("WorkGroupTaskList", "WorkGroupID", aWorkGroup.GetPropertyString("WorkGroupID"));
			
			if (aWorkGroupTaskListL.Count == 0)
				continue;
				
			foreach (cDataObject aWorkGroupTaskLst in aWorkGroupTaskListL) 
			{
				cDataObjectList		aCurWFTAList;
				
				aCurWFTAList = aWorkGroupTaskLst.GetRelatedPropertyDataObjectList("WfTaskAssignments");
				
				if (aCurWFTAList.Count == 0)
					continue;
				foreach (cDataObject aCurWFTA in aCurWFTAList) {
					wfALIdx = wgArrayL.BinarySearch(aCurWFTA.GetPropertyInt("WfTaskAssignmentID"));
					
					if (wfALIdx >= 0)
						break;
						
					if (aCurWFTA.GetPropertyInt("WfTaskStatusID") == 1 && aCurWFTA.GetPropertyString("PersonID") == "") {
						aWFTAList.Add(aCurWFTA);
						wgArrayL.Insert(~wfALIdx, aCurWFTA.GetPropertyInt("WfTaskAssignmentID"));
						aCurWFTA.DataObjectList = aWFTAList;
					}
				}
			}
		}
		
		XmlElement aSortEl = (XmlElement)aDataObjectElement.SelectSingleNode("Sort");
		if(aSortEl != null) {
			aWFTAList.SortEl = aSortEl;
			aWFTAList.Sort();
		}
		
		return aWFTAList;
	}
Exemplo n.º 7
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.º 8
0
/*----------------------------------------------------*/
        /// <summary>
        /// removes workflow task assignments and deletes GranteeProjectReviewStage objects
        /// </summary>
        public void DeleteAssignments()
        {
            cDataObject     aWfProjectTask;
            cXMLDoc         aXmlDoc;
            XmlNode         aFiltersNode;
            XmlNode         aArgNode;
            XmlNode         aDataObjectNode;
            String          aProjectID;
            String          aTaskID;
            cDataObjectList aWFTARList;

            aWfProjectTask = DataObjectFactory.GetDataObjectFromPrimaryKey("WfProjectTask", GetPropertyInt("WfProjectTaskID"));
            aTaskID        = aWfProjectTask.GetPropertyString("WfTaskID");
            aProjectID     = aWfProjectTask.GetPropertyString("WfProjectID");

            //Get all workflow task assignments for this project task
            aXmlDoc = DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode);
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "WfTaskID", aTaskID.ToString()));
            aArgNode = aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "WfProjectID", aProjectID.ToString()));
            aArgNode.AppendChild(DataObjectFactory.CreateArgumentRelatedPropertyNode(aXmlDoc, "GranteeProject"));
            cDataObjectList aWFTAList = DataObjectFactory.GetDataObjectList(aDataObjectNode);

            //Delete all related WfTaskAssignmentReview objects
            foreach (cDataObject aWFTADO in aWFTAList)
            {
                aWFTARList = DataObjectFactory.GetDataObjectListWithFilter("WfTaskAssignmentReview", "WfTaskAssignmentID", aWFTADO.GetPropertyString("WfTaskAssignmentID"));
                DataObjectFactory.DeleteData(aWFTARList);
            }

            //Delete WfTaskAssignment objects
            DataObjectFactory.DeleteData(aWFTAList);

            //Get and delete all GranteeProjectReviewStage objects for this stage
            aXmlDoc = DataObjectFactory.CreateDataObjectNode("GranteeProjectReviewStage", out aDataObjectNode, out aFiltersNode);
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "ReviewStageID", GetPropertyString("ReviewStageID")));
            cDataObjectList aGPRSList = DataObjectFactory.GetDataObjectList(aDataObjectNode);

            DataObjectFactory.DeleteData(aGPRSList);
        }
Exemplo n.º 9
0
		/*====================================================*/

		public void SetWfTaskOutcome(cXMLDoc aOutcomeConfigDoc, bool aUseEvaluateData, bool aRaiseSingleEvent, bool aRaiseEvents, string aRcptPersonIDPropertyKey) {
			/*This override of the SetWfTaskOutcome method exists so that both the
			old (EvaluateOutcome) and new (EvaluateOutcome_EvaluateData) models of
			outcome configuration file processing can be used at the same time. Existing
			pages that call SetWfTaskOutcome with no parameters will use the old model to
			which they were written. The old model may or may not eventually be done away with.
			Peter Larsen 3/25/04.
			*/
			XmlNodeList aTaskNodeList;
			XmlNodeList aUpdateDataList;
			XmlNodeList aEventNodeList;
			XmlNode aOutcomeNode;
			String aOutcomeID = "";

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

			if (aUseEvaluateData) {
				aOutcomeID = EvaluateOutcome_EvaluateData(aOutcomeConfigDoc);
				aOutcomeNode = cXMLDoc.FindNode(aOutcomeConfigDoc.DocElement.SelectSingleNode("Outcomes"),
											"Outcome", "OutcomeKey", aOutcomeID.ToString());
			} else
				aOutcomeNode = EvaluateOutcome(aOutcomeConfigDoc);


			if (aOutcomeNode == null) {
				aOutcomeID = cXMLDoc.AttributeToString(aOutcomeConfigDoc.DocElement.SelectSingleNode("Outcomes"), "DefaultOutcomeKey");
				if (aOutcomeID != "") {
					this["WfTaskOutcomeID"] = aOutcomeID;
				}
				this.DataObjectList.DataObjectFactory.SaveDataObject(this);
			} else {
				String aOutcomeValue = OutcomeValue_GetArgumentValue(GetOutcomeNode(aOutcomeNode));
				if (aOutcomeValue != "")
					aOutcomeID = aOutcomeValue;
				else
					aOutcomeID = cXMLDoc.AttributeToString(aOutcomeNode, "OutcomeKey");

				if (Convert.ToInt32(aOutcomeID) > 0) {
					this["WfTaskOutcomeID"] = aOutcomeID;
					this.DataObjectList.DataObjectFactory.SaveDataObject(this);
				}
				
				XmlNode aProcessingEventsNode = aOutcomeNode.SelectSingleNode("ProcessingEvents");
				if (ContinueProcessing && aProcessingEventsNode != null)  {
					XmlNodeList aDataObjectNodeList = aProcessingEventsNode.SelectNodes("DataObject");
					if (aDataObjectNodeList != null && aDataObjectNodeList.Count > 0) {
						foreach (XmlNode aDataObjectNode in aDataObjectNodeList) {
							XmlNodeList aFilterArgsList = aDataObjectNode.SelectNodes("Filters/Argument");
							foreach (XmlNode aArgNode in aFilterArgsList) {
								WfTaskOutcome_SetRelatedDataObjectArgValues(null, aArgNode);
							}
							cProcessingEvent aProcessingEvent;
							aProcessingEvent = cProcessingEvent.CreateProcessingEventInstance(cXMLDoc.AttributeToString(aDataObjectNode, "DataObjectDefinitionKey"), this.DataObjectFactory);
							aProcessingEvent.ProcessEvent(aDataObjectNode);
							if (aProcessingEvent.StatusID < 1) {
								ContinueProcessing = false;
								break;
							}
						}
					}
				}

				if (!ContinueProcessing) return; //if the event processing failed, stopping continuing the process of creating the tasks or sending emails

				cDataObjectList aWftaReopenRequestDOL=DataObjectFactory.GetDataObjectListWithFilter("WftaReopenRequest","ReopenWfTaskAssignmentID",this.GetPropertyString("WfTaskAssignmentID"),"Active","True");
				if (aWftaReopenRequestDOL.Count > 0){
					cDataObject aRequestingWfTaskAssignmentDo = aWftaReopenRequestDOL[0].GetRelatedPropertyDataObject("RequestingWfTaskAssignment");
					aRequestingWfTaskAssignmentDo["WfTaskStatusID"] = "1"; //Incomplete
					aRequestingWfTaskAssignmentDo.SaveData();
					aWftaReopenRequestDOL[0]["Active"]="False";
					aWftaReopenRequestDOL[0].SaveData();			
				}
				else {
					XmlNode aTasksNode = aOutcomeNode.SelectSingleNode("Tasks");
						if (aTasksNode != null) {
							IndexNewWfTAs = cXMLDoc.AttributeToBool(aTasksNode, "Index", false);
							aTaskNodeList = aTasksNode.SelectNodes("Task");
							if (aTaskNodeList != null)
								//assign tasks associated with outcome
								ContinueProcessing = WfTaskOutcome_CreateNewTaskAssignments(aTaskNodeList);
						}
				}

				if (!ContinueProcessing) return; //if the pre and post assignment event processing failed, stopping continuing the process of updating and sending emails
				aUpdateDataList = aOutcomeNode.SelectNodes("UpdateData/Argument");
				if (aUpdateDataList != null)
					//update data related to the submitted WfTaskAssignment
					WfTaskOutcome_UpdateData(aUpdateDataList);

				if (aRaiseEvents)
				{
					aEventNodeList = aOutcomeNode.SelectNodes("Events/Event");
					if (aEventNodeList != null) {
						//raise events associated with task outcome
						foreach (XmlNode aEventNode in aEventNodeList) {
							XmlNode aEventDataObjectListNode = aEventNode.SelectSingleNode("EventDataObjectList");
							if (aEventDataObjectListNode == null) {
								if (aRaiseSingleEvent) {
									if (aRcptPersonIDPropertyKey != "") {
										RaiseSingleEvent(cXMLDoc.AttributeToInt(aEventNode, "EventKey"), aUserID, aRcptPersonIDPropertyKey);
									} else {
										RaiseSingleEvent(cXMLDoc.AttributeToInt(aEventNode, "EventKey"), aUserID);
									}
								} else
									RaiseEvent(cXMLDoc.AttributeToInt(aEventNode, "EventKey"), aUserID);
							}
							else {
								//Get the PersonID attribute of the EventDataObjectList node set in case this event is assigned to Grant Primary Staff, etc
								String aPersonPropertyKey = cXMLDoc.AttributeToString(aEventDataObjectListNode, "PersonID", "");
								if (aPersonPropertyKey != "") {
									String aPersonID = "";
									aPersonID = this.GetRelatedPropertyString(aPersonPropertyKey);
									if (aPersonID == "")
										continue;
								}
								XmlNodeList aFilterArgsList = aEventDataObjectListNode.SelectNodes("Filters/Argument");
								foreach (XmlNode aArgNode in aFilterArgsList) {
									WfTaskOutcome_SetRelatedDataObjectArgValues(null, aArgNode);
									//if email is assigned to a grant primary staff person and there is no primary staff person assigned
									//if (cXMLDoc.AttributeToBool(aArgNode, "Null", false) && cXMLDoc.AttributeToString(aArgNode, "TypeKey", "") == "GranteeProject.GranteeProjectPrimaryStaffAffiliation.StaffPersonID" ) {
									if (cXMLDoc.AttributeToBool(aArgNode, "Null", false)) {
										cDataObject aDefaultWorkgroupDO = DataObjectFactory.GetDataObjectListWithFilter("WorkGroup", "IsPrimary", "True")[0];
										if (aDefaultWorkgroupDO != null) {
											aEventDataObjectListNode.Attributes["DataObjectDefinitionKey"].Value = "WorkGroupMember";
											aArgNode.Attributes["TypeKey"].Value = "WorkGroupID";
											aArgNode.Attributes["PropertyKey"].Value = "WorkGroupID";
											aArgNode.Attributes["Value"].Value = aDefaultWorkgroupDO.GetPropertyString("WorkGroupID");
										}
									}
								}
								cDataObjectList aEventDataObjectList = DataObjectFactory.GetDataObjectList(aEventDataObjectListNode);
								if (aRaiseSingleEvent) {
									if (aRcptPersonIDPropertyKey != "") {
										RaiseSingleEvent(cXMLDoc.AttributeToInt(aEventNode, "EventKey"), aUserID, aEventDataObjectList, aRcptPersonIDPropertyKey);
									} else {
										RaiseSingleEvent(cXMLDoc.AttributeToInt(aEventNode, "EventKey"), aUserID, aEventDataObjectList);
									}
								}
								else
									RaiseEvent(cXMLDoc.AttributeToInt(aEventNode, "EventKey"), aUserID, aEventDataObjectList);
							}
						}
					}
				}
			}
		}