/*-----------------------------------------------------*/ public cEGUser ValidateLoginCredentials(String aLoginID, String aPassword, bool aEnforceUserNameCase, bool aEnforcePasswordCase, out cXMLDoc aModuleDoc) { XmlNode aDataObjectNode; XmlNode aFiltersNode; //Construct User data object node cXMLDoc aXmlDoc = DataObjectFactory.CreateDataObjectNode("User", out aDataObjectNode, out aFiltersNode); aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "UserName", aLoginID)); cDataObjectList aDOL = DataObjectFactory.GetDataObjectList(aDataObjectNode); cDataObject aDataObject = null; foreach (cDataObject aDO in aDOL) { if (aDO.GetPropertyString("Password").ToLower() == aPassword.ToLower()) { aDataObject = aDO; break; } } if (aDataObject!=null && (!aEnforceUserNameCase || aDataObject.GetPropertyString("UserName") == aLoginID) && (!aEnforcePasswordCase || aDataObject.GetPropertyString("Password") == aPassword)){ cEGUser aUser = EGUser_From_UserDataobject(aDataObject, out aModuleDoc); return aUser; } aModuleDoc = null; return null; }
/*====================================================*/ public void GenerateGrantNumber() { cDataObject aGP_EMF = null; cDataObject aWfProject; cDataObject aWfCompetition; cDataObject aWfProgram; cDataObject aWfCompetitionEMF; aGP_EMF = GetRelatedPropertyDataObject("GranteeProjectEMF"); if (aGP_EMF != null) { if (aGP_EMF.GetPropertyString("GrantNumber", "") == "") { aWfProject = GetRelatedPropertyDataObject("WfProject"); aWfCompetition = aWfProject.GetRelatedPropertyDataObject("WfCompetition"); aWfProgram = aWfCompetition.GetRelatedPropertyDataObject("WfProgram"); aWfCompetitionEMF = aWfCompetition.GetRelatedPropertyDataObject("CompetitionEMF"); aGP_EMF["GrantNumber"] = aWfProgram.GetRelatedPropertyString("ProgramEMF.GrantNumberPart") + "-" + aWfCompetition.GetRelatedPropertyString("CompetitionEMF.GrantNumberPart") + "-" + aWfCompetitionEMF.GetPropertyString("NextAutoNumber") + "-" + aWfProject.GetRelatedPropertyString("WfProjectEMF.GrantNumberPart"); //TO DO: make it work in transaction mode //increase auto number in CompetitionEMF aWfCompetitionEMF["NextAutoNumber"] = aWfCompetitionEMF.GetPropertyInt("NextAutoNumber") + 1; DataObjectFactory.SaveDataObject(aWfCompetitionEMF); //save GrantNumber in GranteeProjectEMF DataObjectFactory.SaveDataObject(aGP_EMF); } } }
/*-----------------------------------------------------*/ public void GetFileUrl(cDataObject aUploadTemplateDO, out cDataObject aSharePointDO, out String aRemoteOrginalFileURL) { aRemoteOrginalFileURL = ""; aSharePointDO = WebSession.DataObjectFactory.GetDataObjectListWithFilter("SharePointIntegration", "Active", "True")[0]; if (aSharePointDO == null) { return; } String aUploadTemplateID = aUploadTemplateDO.GetPropertyString("UploadTemplateID"); String aFileNamePrefix = aUploadTemplateDO.GetPropertyString("FileNamePrefix"); String aSourceFileName = aUploadTemplateDO.GetPropertyString("SourceFileName"); String aSourceExt = aSourceFileName.Substring(aSourceFileName.LastIndexOf(".") + 1); String aUploadFileName = aUploadTemplateID + "_" + aFileNamePrefix; String aSiteName = cWebLib.GetFormattedUrl(aSharePointDO.GetPropertyString("SiteName")); String aSPUrl = cWebLib.GetFormattedUrl(aSharePointDO.GetPropertyString("SharePointURL")); aRemoteOrginalFileURL = cWebLib.TruncateFolderName(aSPUrl + aSiteName + "Templates" + "/" + "Upload Manager" + "/" + aUploadFileName + "." + aSourceExt); }
/*====================================================*/ public void SaveData(int aUserID) { /*If PrimaryPersonID or PrimaryOrganizationID has been changed, write a copy of the data from * the database to GRANTEE_PROJECT_HISTORY before updating*/ if (!this.IsNewDataObject) { cDataObject aGranteeProject = this.DataObjectFactory.GetDataObjectFromPrimaryKey("GranteeProject", GetPropertyInt("GranteeProjectID")); //Check the properties to see if either one has changed. Using GetPropertyString allows us to check numbers //against nulls and vice-versa. if (aGranteeProject.GetPropertyString("PrimaryOrganizationID") != this.GetPropertyString("PrimaryOrganizationID") || aGranteeProject.GetPropertyString("PrimaryPersonID") != this.GetPropertyString("PrimaryPersonID")) { SaveHistory(aGranteeProject, aUserID); } } base.SaveData(); }
/*-----------------------------------------------------*/ public void GetFileUrl(cDataObject aSubmittedFileDataObj, out cDataObject aSharePointDO, out String aRemotePDFURL, out String aRemoteOrginalURL) { aRemotePDFURL = ""; aRemoteOrginalURL = ""; aSharePointDO = WebSession.DataObjectFactory.GetDataObjectListWithFilter("SharePointIntegration", "Active", "True")[0]; if (aSharePointDO == null) { return; } switch (aSubmittedFileDataObj.GetPropertyString("EntityDataObjectKey")) { case "WfTaskAssignment": case "GranteeProject": BuildURL(aSubmittedFileDataObj, aSharePointDO, aSubmittedFileDataObj.GetPropertyString("EntityDataObjectKey"), out aRemotePDFURL, out aRemoteOrginalURL); break; default: //This case needs to be handeled for Granteeproject , Person , Organization , WordMerge BuildURL(aSubmittedFileDataObj, aSharePointDO, aSubmittedFileDataObj.GetRelatedPropertyString("FileType.EntityDataObjectKey"), out aRemotePDFURL, out aRemoteOrginalURL); break; } }
/*====================================================*/ ///<summary> ///selects a third party by taking a PersonRelationShip and: ///* creating a WfTaskAssighment for this third party role ///* note that the user already exists ///</summary> public virtual cWfTaskAssignment SelectThirdParty(String aPersonRelationshipID) { cDataObjectList aChildProjectTasksObjectList; // This following code needs to be modified if there are mutiple third parties for one project task. aChildProjectTasksObjectList = WfTaskAssignmentObject.GetRelatedPropertyDataObjectList("WfProjectTask.ChildProjectTasks"); if (aChildProjectTasksObjectList.Count > 1) { cDataObject aPersonRelationshipDO = WebSession.DataObjectFactory.GetDataObjectFromPrimaryKey("PersonRelationship", aPersonRelationshipID); cXMLDoc aXmlDoc; XmlNode aDataObjectNode, aFiltersNode, aArgNode; aXmlDoc = WebSession.DataObjectFactory.CreateDataObjectNode("WfProjectTask", out aDataObjectNode, out aFiltersNode); aFiltersNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "ParentProjectTaskID", WfTaskAssignmentObject.GetRelatedPropertyString("WfProjectTask.WfProjectTaskID"))); aArgNode = aFiltersNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "ID", aPersonRelationshipDO.GetPropertyString("RelatedPersonRoleID"))); aArgNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentRelatedPropertyNode(aXmlDoc, "AssignToRoleWorkgroupStaffcontact")); cDataObject aChildProjectTaskDO = WebSession.DataObjectFactory.GetDataObject(aDataObjectNode); return(SelectThirdParty(aPersonRelationshipID, aChildProjectTaskDO.GetPropertyString("WfTaskID"))); } else if (aChildProjectTasksObjectList.Count == 1) { return(SelectThirdParty(aPersonRelationshipID, aChildProjectTasksObjectList[0].GetPropertyString("WfTaskID"))); } return(null); }
/*----------------------------------------------------*/ protected cDataObjectList Get_WfProjectTasks(cDataObject aWfProjectTaskCur, string aFilterCriteria) { cXMLDoc aXMLDoc; XmlNode aDataObjectNode; XmlNode aFiltersNode; XmlNode aArgNode; XmlNode aSortNode; aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfProjectTask", out aDataObjectNode, out aFiltersNode); aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "WfProjectID", aWfProjectTaskCur.GetPropertyString("WfProjectID"))); if (aFilterCriteria.Length > 0) { aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "SortOrder", aWfProjectTaskCur.GetPropertyString("SortOrder"), "and", aFilterCriteria)); } aSortNode = aXMLDoc.XMLDocument.CreateNode(XmlNodeType.Element, "Sort", ""); aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "SortOrder", ""); aSortNode.AppendChild(aArgNode); aDataObjectNode.AppendChild(aSortNode); return(DataObjectFactory.GetDataObjectList(aDataObjectNode)); }
public void SetMemberVariables(cDataObject aProcessEventDO) { Success = aProcessEventDO.GetPropertyBool("Success", false); StatusID = aProcessEventDO.GetPropertyInt("StatusID", 0); Message = aProcessEventDO.GetPropertyString("StatusMessage", ""); }
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); }
public void BuildURL(cDataObject aSubmittedFileDataObj, cDataObject aSharePointDO, string FileType, out string aRemotePDFURL, out string aRemoteOrginalURL) { String aSiteName = cWebLib.GetFormattedUrl(aSharePointDO.GetPropertyString("SiteName")); String aSPUrl = cWebLib.GetFormattedUrl(aSharePointDO.GetPropertyString("SharePointURL")); String aSubmittedFileID = aSubmittedFileDataObj.GetPropertyString("SubmittedFileID"); String aSourceFileName = aSubmittedFileDataObj.GetPropertyString("SourceFileName"); String aSourceExt = aSourceFileName.Substring(aSourceFileName.LastIndexOf(".") + 1); String aFileNamePrefix = aSourceFileName.Substring(0, aSourceFileName.LastIndexOf(".")); String aEntityID = aSubmittedFileDataObj.GetPropertyString("EntityID"); String aDestinationFolder = ""; String aDestinationContextFolder = ""; String aUploadFileName = ""; switch (FileType) { case "GranteeProject": case "WfTaskAssignment": String aGPID; if (aSubmittedFileDataObj.GetRelatedPropertyString("TaskUploadType.Upload.FileNamePrefix") != "") { aFileNamePrefix = aSubmittedFileDataObj.GetRelatedPropertyString("TaskUploadType.Upload.FileNamePrefix"); } if (aSubmittedFileDataObj.GetPropertyString("EntityDataObjectKey") == "WfTaskAssignment") { aGPID = aSubmittedFileDataObj.GetRelatedPropertyString("WfTaskAssignment.GranteeProjectID"); } else { aGPID = aSubmittedFileDataObj.GetPropertyString("EntityID"); } cDataObject aGranteeProjectDO = WebSession.DataObjectFactory.GetDataObjectListWithFilter("GranteeProject", "GranteeProjectID", aGPID)[0]; String aFCFolderName = aGranteeProjectDO.GetRelatedPropertyString("WfProjectID") + "_" + TruncateSpecialCharacters(aSharePointDO, aGranteeProjectDO.GetRelatedPropertyString("WfProject.ShortName")); String aFOFolderName = aGranteeProjectDO.GetRelatedPropertyString("WfProject.CompetitionID") + "_" + TruncateSpecialCharacters(aSharePointDO, aGranteeProjectDO.GetRelatedPropertyString("WfProject.WfCompetition.ShortName")); String aProgramFolderName = aGranteeProjectDO.GetRelatedPropertyString("WfProject.WfCompetition.ProgramID") + "_" + TruncateSpecialCharacters(aSharePointDO, aGranteeProjectDO.GetRelatedPropertyString("WfProject.WfCompetition.WfProgram.ShortName")); String aGPFolderName = aGPID + "_EGID"; aUploadFileName = aSubmittedFileID + "_" + aFileNamePrefix; aDestinationFolder = aProgramFolderName + "/" + aFOFolderName + "/" + aFCFolderName + "/" + aGPFolderName + "/"; aDestinationContextFolder = "Grants/"; break; case "Person": cDataObject aPersonDO = WebSession.DataObjectFactory.GetDataObjectListWithFilter("Person", "PersonID", aEntityID)[0]; String aPersonName = aPersonDO.GetPropertyString("FirstName") + aPersonDO.GetPropertyString("LastName") + aPersonDO.GetPropertyString("MiddleName", ""); aDestinationFolder = aEntityID + "_" + TruncateFolderName(TruncateSpecialCharacters(aSharePointDO, aPersonName), "Person") + "/"; aUploadFileName = aSubmittedFileID + "_" + aFileNamePrefix; aDestinationContextFolder = "Contacts/Persons/"; break; case "Organization": cDataObject aOrganizationDO = WebSession.DataObjectFactory.GetDataObjectListWithFilter("Organization", "OrganizationID", aEntityID)[0]; String aCommonOrganizationName = aOrganizationDO.GetPropertyString("CommonOrganizationName"); aDestinationFolder = aEntityID + "_" + TruncateFolderName(TruncateSpecialCharacters(aSharePointDO, aCommonOrganizationName), "Organization") + "/"; aUploadFileName = aSubmittedFileID + "_" + aFileNamePrefix; aDestinationContextFolder = "Contacts/Organizations/"; break; case "WordMerge": if (aSubmittedFileDataObj.GetRelatedPropertyString("FileNamePrefix") != "") { aFileNamePrefix = aSubmittedFileDataObj.GetRelatedPropertyString("FileNamePrefix"); } aUploadFileName = aSubmittedFileID + "_" + aFileNamePrefix; break; case "WfProject": aUploadFileName = aSubmittedFileID + "_" + aSourceFileName.Substring(0, aSourceFileName.IndexOf(".")); cDataObjectList aWfProjectDOL = WebSession.DataObjectFactory.GetDataObjectListFromPrimaryKey("WfProject", aSubmittedFileDataObj.GetPropertyString("EntityID")); aDestinationFolder = aWfProjectDOL[0].GetRelatedPropertyString("WfCompetition.CompetitionID") + "_" + TruncateSpecialCharacters(aSharePointDO, aWfProjectDOL[0].GetRelatedPropertyString("WfCompetition.ShortName")) + "/"; aDestinationContextFolder = "Projects/"; break; } aRemoteOrginalURL = cWebLib.TruncateFolderName(aSPUrl + aSiteName + aDestinationContextFolder + aDestinationFolder + aUploadFileName + "." + aSourceExt); aRemotePDFURL = cWebLib.TruncateFolderName(aSPUrl + aSiteName + aDestinationContextFolder + aDestinationFolder + aUploadFileName + "." + "PDF"); }
public string TruncateSpecialCharacters(cDataObject aSPIntegrationDO, String aFolderName) { //string pattern = "[^~\"#%&*:<>?\\//{|}.]*"; return(Regex.Replace(aFolderName, aSPIntegrationDO.GetPropertyString("InvalidCharacterRegex", ""), "")); }
/*----------------------------------------------------*/ public void CalculateAverageScores() { cXMLDoc aXMLDoc; XmlNode aDataObjectNode; XmlNode aFiltersNode; XmlNode aArgNode; cDataObjectList aReviewWFTAList; cDataObject aWfProjectTask = GetRelatedPropertyDataObject("WfProjectTask"); foreach (cGranteeProject aGPDO in GranteeProjectList) { //Get all review WfTaskAssignment objects for this grantee project and review stage. aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode); aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "WfTaskID", aWfProjectTask.GetPropertyString("WfTaskID")); aFiltersNode.AppendChild(aArgNode); aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "GranteeProjectID", aGPDO.GetPropertyString("GranteeProjectID")); aFiltersNode.AppendChild(aArgNode); aReviewWFTAList = DataObjectFactory.GetDataObjectList(aDataObjectNode); //Loop through list, getting sum and count of ReviewRating property. int aCount = 0; double aTotalRating = 0; foreach (cDataObject aReviewWFTADO in aReviewWFTAList) { if (aReviewWFTADO["ReviewRating"] != System.DBNull.Value) { aCount += 1; aTotalRating += aReviewWFTADO.GetPropertyDouble("ReviewRating"); } } //Calculate mean and save to GranteeProjectReviewStage data object. if (aCount > 0) { cDataObject aGPRSDO = aGPDO.GetGranteeProjectReviewStageDO(aWfProjectTask.GetPropertyInt("WfProjectTaskID")); aGPRSDO["AverageRating"] = aTotalRating / aCount; aGPRSDO.SaveData(); } } }
/*====================================================*/ public override void RaiseEvent(cDataObjectList aDataObjectList, int aUserID){ cCorrespondenceJob aCorrespondenceJob = new cCorrespondenceJob(aUserID); aCorrespondenceJob.EmailArgs = new cEmailArgsDataObject(aDataObjectList); aCorrespondenceJob.CorrespondenceDefinition = this.mEventData.GetRelatedPropertyDataObject("EventCorrespondence.CorrespondenceDefinition"); aCorrespondenceJob.SendEmail(this.DataObjectFactory.Appl); cDataObject aRevAddInfoDO = aDataObjectList[0]; aRevAddInfoDO["RequestDate"] = System.DateTime.Now.ToShortDateString(); aRevAddInfoDO["ResponseDate"] = System.DBNull.Value; aRevAddInfoDO["ResponseComment"] = System.DBNull.Value; this.DataObjectFactory.SaveDataObject(aRevAddInfoDO); cDataObject aWfDO = DataObjectFactory.GetDataObjectFromPrimaryKey("WfTaskAssignment", aRevAddInfoDO.GetPropertyString("AppWfTaskAssignmentID")); aWfDO["WfTaskStatusID"] = 1; //Incomplete this.DataObjectFactory.SaveDataObject(aWfDO); }
/*====================================================*/ 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); } } } } } }
/*----------------------------------------------------*/ protected cDataObjectList GetEvents(ProcessType aProcessType, WorkflowEventType aWorkflowEventType) { cXMLDoc aXmlDoc; XmlNode aDataObjectNode, aFiltersNode, aSortNode; string aWfProjectTaskID = ""; //if (aProcessType == ProcessType.PreAssignment) { // cDataObject aGranteeProjectDO = this.DataObjectFactory.GetDataObjectFromPrimaryKey("GranteeProject", this.GetPropertyString("GranteeProjectID")); // cDataObjectList aWfProjectTaskDOL = this.DataObjectFactory.GetDataObjectListWithFilter("WfProjectTask", "WfProjectID", aGranteeProjectDO.GetPropertyString("WfProjectID"), "WfTaskID", this.GetPropertyString("WfTaskID")); // if (aWfProjectTaskDOL != null && aWfProjectTaskDOL.Count > 0) // aWfProjectTaskID = aWfProjectTaskDOL[0].GetPropertyString("WfProjectTaskID"); //} //else { // aWfProjectTaskID = this.GetWfProjectTask().GetPropertyString("WfProjectTaskID"); //} cDataObject aGranteeProjectDO = this.DataObjectFactory.GetDataObjectFromPrimaryKey("GranteeProject", this.GetPropertyString("GranteeProjectID")); cDataObjectList aWfProjectTaskDOL = this.DataObjectFactory.GetDataObjectListWithFilter("WfProjectTask", "WfProjectID", aGranteeProjectDO.GetPropertyString("WfProjectID"), "WfTaskID", this.GetPropertyString("WfTaskID")); if (aWfProjectTaskDOL != null && aWfProjectTaskDOL.Count > 0) aWfProjectTaskID = aWfProjectTaskDOL[0].GetPropertyString("WfProjectTaskID"); aXmlDoc = this.DataObjectFactory.CreateDataObjectNode("WorkflowEvents", out aDataObjectNode, out aFiltersNode); aFiltersNode.AppendChild(this.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "ProcessTypeID", Convert.ToString((Int32)aProcessType))); aFiltersNode.AppendChild(this.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "WorkflowEventTypeID", Convert.ToString((Int32)aWorkflowEventType))); aFiltersNode.AppendChild(this.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "WorkflowID", aWfProjectTaskID)); aSortNode = aDataObjectNode.AppendChild(aXmlDoc.CreateSortNode()); aSortNode.AppendChild(this.DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "SortOrder", "")); return this.DataObjectFactory.GetDataObjectList(aDataObjectNode); }