Exemplo n.º 1
0
/*-----------------------------------------------------*/
	///<summary>
	///Method to let a user login with just a loginid. Should be used only by gateway or other places where
	///there is a way to check for authorization and authentication of the user. See GatewayPage.cs and pgGateway.aspx	
	///for cookie encryption and decryption details.
	///</summary>
	public cEGUser LoginUserFromCookie(String aLoginID) {
	
		cEGUser aUser = null;
		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));		
		
		cDataObject aDataObject = DataObjectFactory.GetDataObject(aDataObjectNode);
        
        if (aDataObject!=null){
			aUser = EGUser_From_UserDataobject(aDataObject, out aModuleDoc);			
		}	

		aModuleDoc = null;
		return aUser;
//		if (aUser != null) {
//			return true;			
			//LogLoginHistory(aUser.UserID);
			//((cModulePage)CurrentPage).ModulePage_RedirectToModule(aModuleDoc);
//		}
//		else
//			return false;
	}
Exemplo n.º 2
0
/*-----------------------------------------------------*/

	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;
	}
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 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.º 5
0
/*-----------------------------------------------------*/

	public	void Task_RedirectToModule(String aModuleName, String aModuleConfig, String aPageKey, String aWfTaskID) {
		cEGUser	aUser;
		cXMLDoc aModuleDoc;
		XmlNode	aModuleNode;
		XmlNode aDataObjectNode;
		XmlNode aFiltersNode;
		cDataObject aReviewStageObject ;
		cXMLDoc aXmlDoc;

		aUser = EGUser_From_ModuleConfig(aModuleName, aModuleConfig, out aModuleDoc);
		if (aUser != null){
			aModuleNode = aModuleDoc.DocElement.SelectSingleNode("Module");
			
			if (aPageKey == ""){
				aPageKey = cXMLDoc.AttributeToString(aModuleNode, "DefaultPageKey");
			}
			aUser.WfTaskID = Convert.ToInt32(aWfTaskID);

			//get wftaskass object- filter on aWfTaskAssignmentID, set aUser.GranteeProjectID 
			aXmlDoc = DataObjectFactory.CreateDataObjectNode("WfTask",out aDataObjectNode,out aFiltersNode);
			aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "WfTaskID", aUser.WfTaskID.ToString()));
			aReviewStageObject = DataObjectFactory.GetDataObject(aDataObjectNode);
			//aUser.GranteeProjectID = aReviewStageObject.GetPropertyInt("GranteeProjectID");				
			
			String	aPageName = cXMLDoc.AttributeToString(aModuleNode, "PageName");
			RedirectUserToModule(aUser, aModuleName, aModuleConfig, aPageName, aPageKey);
		}
	}
Exemplo n.º 6
0
        /*----------------------------------------------------*/

        public int SaveReviewAssignment(int aWfTaskID, int aReviewerPersonID, int aRole, int aReviewStageID, String aApplTaskID)
        {
            cXMLDoc     aXMLDoc;
            cDataObject aWFTADataObject;     //workflow task assignment
            XmlNode     aNewDataObjectNode;
            cDataObject aGPRSDataObject;

            aXMLDoc                             = DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aNewDataObjectNode);
            aWFTADataObject                     = DataObjectFactory.GetNewDataObject(aNewDataObjectNode);
            aWFTADataObject["WfTaskID"]         = aWfTaskID;
            aWFTADataObject["PersonID"]         = aReviewerPersonID;
            aWFTADataObject["GranteeProjectID"] = GetPropertyInt("GranteeProjectID");
            aWFTADataObject["WfTaskRoleID"]     = aRole; //originally 7
            aWFTADataObject["ReviewStageID"]    = aReviewStageID;
            aWFTADataObject["WfTaskStatusID"]   = 1;
            if (aApplTaskID != "")
            {
                aWFTADataObject["ReportTaskID"] = aApplTaskID;
            }
            DataObjectFactory.SaveDataObject(aWFTADataObject);

            //Create GranteeProjectReviewStage object if it does not already exist.
            cDataObjectList aObjList = this.DataObjectFactory.GetDataObjectListWithFilter("WfProjectTask",
                                                                                          "WfProjectID", GetPropertyString("WfProjectID"), "WfTaskID", aWfTaskID.ToString());

            aGPRSDataObject = GetGranteeProjectReviewStageDO(aObjList[0].GetPropertyInt("WfProjectTaskID", 0));
            //aGPRSDataObject = GetGranteeProjectReviewStageDO(aWFTADataObject.GetPropertyInt("WfTaskID"));

            return(aWFTADataObject.GetPropertyInt("WfTaskAssignmentID"));
        }
Exemplo n.º 7
0
/*----------------------------------------------------*/
        ///<summary>
        ///This method checks to see if any assignments exist for a given grantee project review stage object.
        ///If not, the grantee project review stage object is deleted.
        ///</summary>
        public void DeleteGPRSIfNecessary(int aWfProjectTaskID)
        {
            cXMLDoc         aXMLDoc;
            XmlNode         aDataObjectNode;
            XmlNode         aFiltersNode;
            cDataObjectList aRemainingAssignments;
            cDataObject     aWfProjectTaskDO;
            cDataObject     aGPRSDataObject;

            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")));
            aRemainingAssignments = DataObjectFactory.GetDataObjectList(aDataObjectNode);
            if (aRemainingAssignments.Count == 0)
            {
                //Delete GranteeProjectReviewStage object
                ///First, get ReviewStageID based on current stage WfTaskID
                int aReviewStageID = cReviewStage.GetReviewStageIDFromWfProjectTaskID(aWfProjectTaskID, DataObjectFactory);
                ///Next, build data object node to retrieve GranteeProjectReviewStage
                aXMLDoc = DataObjectFactory.CreateDataObjectNode("GranteeProjectReviewStage", out aDataObjectNode, out aFiltersNode);
                aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "ReviewStageID", aReviewStageID.ToString()));
                aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "GranteeProjectID", GetPropertyString("GranteeProjectID")));
                aGPRSDataObject = DataObjectFactory.GetDataObject(aDataObjectNode);
                if (aGPRSDataObject != null)
                {
                    DataObjectFactory.DeleteData(aGPRSDataObject);
                }
            }
        }
Exemplo n.º 8
0
/*====================================================*/
        ///<summary>
        //This method returns the workflow task assignment ID corresponding to the review assignment of the
        //grantee project to the specified review committee member in the request/conflict stage of the project
        ///</summary>
        public cDataObject GetRequestConflictDO(cReviewCommitteeMember aRevCommMember)
        {
            cXMLDoc         aXMLDoc;
            XmlNode         aDataObjectNode;
            XmlNode         aFiltersNode;
            cDataObject     aRCDO = null;
            cDataObjectList aWfTAList;

            //Get workflow task assignment ID matching grantee and reviewer in this stage
            aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode);
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "PersonID", aRevCommMember.GetPropertyString("PersonID")));
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "GranteeProjectID", GetPropertyString("GranteeProjectID")));
            aWfTAList = DataObjectFactory.GetDataObjectList(aDataObjectNode);

            if (aWfTAList != null)
            {
                foreach (cDataObject aWfTA in aWfTAList)
                {
                    //Get request/conflict data object based on workflow task assignment ID
                    aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfTaskAssignmentRequestConflict", out aDataObjectNode, out aFiltersNode);
                    aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "WfTaskAssignmentID", aWfTA.GetPropertyString("WfTaskAssignmentID")));
                    aRCDO = DataObjectFactory.GetDataObject(aDataObjectNode);
                    if (aRCDO != null)
                    {
                        break;
                    }
                }
            }

            return(aRCDO);
        }
Exemplo n.º 9
0
		/*====================================================*/

		public cDataObject GetProgressWfProjectTask() {
			cXMLDoc aXMLDoc;
			XmlNode aDataObjectNode;
			XmlNode aFiltersNode;
			//cDataObject aWfProject;

			aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfProjectTask", out aDataObjectNode, out aFiltersNode);
			aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "WfProjectTaskID", GetPropertyString("ProgressReportTaskID")));

			return DataObjectFactory.GetDataObject(aDataObjectNode);
		}
Exemplo n.º 10
0
		/*====================================================*/

		public cDataObject GetWfProjectTask() {
			cXMLDoc aXMLDoc;
			XmlNode aDataObjectNode;
			XmlNode aFiltersNode;

			aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfProjectTask", out aDataObjectNode, out aFiltersNode);
			aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "WfProjectID", GetRelatedPropertyString("GranteeProject.WfProjectID")));
			aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "WfTaskID", GetPropertyString("WfTaskID")));

			return DataObjectFactory.GetDataObject(aDataObjectNode);
		}
Exemplo n.º 11
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.º 12
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.º 13
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.º 14
0
/*----------------------------------------------------*/

        public cDataObjectList Get_WfProjectTasks_All()
        {
            cXMLDoc aXMLDoc;
            XmlNode aDataObjectNode;
            XmlNode aFiltersNode;
            XmlNode aArgNode;
            XmlNode aSortNode;

            aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfProjectTask", out aDataObjectNode, out aFiltersNode);
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "WfProjectID", this.GetPropertyString("WfProjectID")));
            aSortNode = aXMLDoc.XMLDocument.CreateNode(XmlNodeType.Element, "Sort", "");
            aArgNode  = DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "SortOrder", "");
            aSortNode.AppendChild(aArgNode);
            aDataObjectNode.AppendChild(aSortNode);
            return(DataObjectFactory.GetDataObjectList(aDataObjectNode));
        }
Exemplo n.º 15
0
/*----------------------------------------------------*/

        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();
                }
            }
        }
Exemplo n.º 16
0
/*----------------------------------------------------*/

        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));
        }
Exemplo n.º 17
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.º 18
0
/*-----------------------------------------------------*/

	///<summary>
	///Checks for a duplicate person
	///</summary>
	public int GetDuplicatePersonID(String aLoginID) {
		int ret = 0;
		cXMLDoc aXmlDoc;
		XmlNode aDataObjectNode;
		XmlNode aFiltersNode;
		cDataObject aDataObject;

		aXmlDoc = DataObjectFactory.CreateDataObjectNode("User", out aDataObjectNode, out aFiltersNode);
		aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "UserName", aLoginID));
		aDataObject = DataObjectFactory.GetDataObject(aDataObjectNode);
		if(aDataObject != null)
			ret = aDataObject.GetPropertyInt("PersonID", 0);
		else{
			aFiltersNode.RemoveAll();
			aDataObjectNode.RemoveAll();
			aXmlDoc = DataObjectFactory.CreateDataObjectNode("Email", out aDataObjectNode, out aFiltersNode);
			aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "ContactValue1", aLoginID));
			aDataObject = DataObjectFactory.GetDataObject(aDataObjectNode);
			if(aDataObject != null)
				ret = aDataObject.GetPropertyInt("EntityID", 0);
		}
		return ret;
	}
Exemplo n.º 19
0
/*----------------------------------------------------*/

        protected void Update_Next_Outcomes(int aOutcomeID)
        {
            cDataObject     aWfTaskCur;
            cDataObject     aGranteeProject;
            int             aGranteeProjectIDCur;
            cDataObjectList aWfTaskList;
            cXMLDoc         aXMLDoc;
            XmlNode         aDataObjectNode;
            XmlNode         aFiltersNode;
            XmlNode         aSortNode;
            XmlNode         aArgNode;

            //this is the WfTask for our record in GranteeProjectOutcomes
            aWfTaskCur           = this.GetRelatedPropertyDataObject("WfTask");
            aGranteeProjectIDCur = this.GetPropertyInt("GranteeProjectID");
            aGranteeProject      = this.GetRelatedPropertyDataObject("GranteeProject");

            //select all tasks after the current one
            aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfProjectTask", out aDataObjectNode, out aFiltersNode);
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "WfProjectID", aGranteeProject.GetPropertyString("WfProjectID")));
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "WfTaskID", aWfTaskCur.GetPropertyString("WfTaskID")));
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "SortOrder", aWfTaskCur.GetPropertyString("SortOrder"), "and", "GreaterThan"));
            aSortNode = aXMLDoc.XMLDocument.CreateNode(XmlNodeType.Element, "Sort", "");
            aArgNode  = DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "SortOrder", "");
            aSortNode.AppendChild(aArgNode);
            aDataObjectNode.AppendChild(aSortNode);
            aWfTaskList = DataObjectFactory.GetDataObjectList(aDataObjectNode);
            foreach (cDataObject aWfTask in aWfTaskList)
            {
                Create_Outcome(this.DataObjectFactory, aGranteeProjectIDCur, aWfTask.GetPropertyInt("WfTaskID"), 0, false, false, false);
            }
            if (aOutcomeID > 0)
            {
                this["OutcomeID"] = aOutcomeID;
            }
            this.SaveData();
        }
Exemplo n.º 20
0
/*-----------------------------------------------------*/

	///<summary>
	///Logs a user's history of login to Easygrants.
	///</summary>
	private void LogLoginHistory(int aUserID) {
		cXMLDoc	aXmlDoc;
		XmlNode	aDataObjectNode;
		cDataObject aLoginDO;		
		
		aXmlDoc = DataObjectFactory.CreateDataObjectNode("LoginHistory", out aDataObjectNode);
		aLoginDO = DataObjectFactory.GetNewDataObject(aDataObjectNode); 
		aLoginDO["UserID"] = aUserID;
		aLoginDO["IPAddress"] = ((cModulePage)CurrentPage).Request.UserHostAddress;
		//do i need to get all the languauges?
		string aUserLanguage = "";
		if (((cModulePage)CurrentPage).Request.UserLanguages != null)
		{
			for (int i=0; i < ((cModulePage)CurrentPage).Request.UserLanguages.Length; i++)
			{
				aUserLanguage += ((cModulePage)CurrentPage).Request.UserLanguages.GetValue(i) + " ";
			}
		}
		aLoginDO["UserLanguage"] = aUserLanguage;
		aLoginDO["BrowserInfo"] = ((cModulePage)CurrentPage).Request.UserAgent;
		aLoginDO["LoginDate"] = System.DateTime.Now;
		
		DataObjectFactory.SaveDataObject(aLoginDO);
	}
Exemplo n.º 21
0
/* --------------------------------------------------------*/

	public bool Locked(int aUserID)
	{
		XmlNode aDataObjectNode;
		XmlNode aFiltersNode;
		
		//Construct User data object node
		cXMLDoc aXmlDoc = DataObjectFactory.CreateDataObjectNode("User", out aDataObjectNode, out aFiltersNode);	
		aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXmlDoc, "Data", "UserID", aUserID.ToString()));
		
		cDataObjectList aDOL = DataObjectFactory.GetDataObjectList(aDataObjectNode);
		
		foreach (cDataObject aDO in aDOL) 
		{
			if (aDO.GetPropertyValue("FailedAttempts") != System.DBNull.Value)
			{
				if (aDO.GetPropertyInt("FailedAttempts")>= WebAppl.MaxFailedLoginAttempts) 
				{
					return true;
				}
			}
		}
		return false;
			
	} 
Exemplo n.º 22
0
/*-----------------------------------------------------*/

	public cDataObjectList Person_Updated_WorkgroupTaskList() {
		XmlNode aDataObjectNode;
		cXMLDoc aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode);
		return Person_Updated_WorkgroupTaskList((XmlElement)aDataObjectNode);
	}
Exemplo n.º 23
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)
        }
Exemplo n.º 24
0
/*----------------------------------------------------*/

        public void CalculateAverageScores_WFTAReview()
        {
/*	This method, formerly called CalculateAverageScores(), is based on the older model of collecting a "primary"
 *      rating for each review assignment, which was stored in a WfTaskAssignmentReview data object with a RatingTypeID
 *      of 4. The new CalculateAverageScores() method reflects the new model of collecting multiple scores per review assignment
 *      and calculating a weighted average, which is stored in the WfTaskAssignment.ReviewRating property.
 *      Peter Larsen 7/6/2004
 */

            //cDataObjectList aGPRSDOList;
            cDataObjectList aReviewRatingsList;
            int             aWfProjectTaskID;
            int             aGranteeProjectID;
            cXMLDoc         aXMLDoc;
            XmlNode         aDataObjectNode;
            XmlNode         aFiltersNode;
            XmlNode         aArgNode;
            XmlNode         aRPNode;
            cDataObject     aGranteeProjectReviewStage;

            aWfProjectTaskID = GetPropertyInt("WfProjectTaskID");
            //aGPRSDOList = GetRelatedPropertyDataObjectList("GranteeProjectReviewStages");
            //foreach(cDataObject aGPRSDO in aGPRSDOList) {
            foreach (cGranteeProject aGPRSDO in GranteeProjectList)
            {
                aGranteeProjectID = aGPRSDO.GetPropertyInt("GranteeProjectID");
                aXMLDoc           = DataObjectFactory.CreateDataObjectNode("WfTaskAssignmentReview", out aDataObjectNode, out aFiltersNode);

                aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "WfTaskID", aWfProjectTaskID.ToString());
                aRPNode  = DataObjectFactory.CreateArgumentRelatedPropertyNode(aXMLDoc, "WfTaskAssignment", aArgNode);
                aFiltersNode.AppendChild(aRPNode);

                aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "GranteeProjectID", aGranteeProjectID.ToString());
                aRPNode  = DataObjectFactory.CreateArgumentRelatedPropertyNode(aXMLDoc, "WfTaskAssignment", aArgNode);
                aFiltersNode.AppendChild(aRPNode);

                aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "RatingTypeID", "4");
                aFiltersNode.AppendChild(aArgNode);

                aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "", "Rating", "not null");
                aFiltersNode.AppendChild(aArgNode);

                aReviewRatingsList = DataObjectFactory.GetDataObjectList(aDataObjectNode);

                int    aCount       = 0;
                double aTotalRating = 0;
                foreach (cDataObject aReviewRatingDO in aReviewRatingsList)
                {
                    aCount       += 1;
                    aTotalRating += aReviewRatingDO.GetPropertyDouble("Rating");
                }
                if (aCount > 0)
                {
                    //aGPRSDO["AverageRating"] = aTotalRating/aCount;
                    //DataObjectFactory.SaveDataObject(aGPRSDO);
                    aGranteeProjectReviewStage = aGPRSDO.GetGranteeProjectReviewStageDO(aWfProjectTaskID);
                    aGranteeProjectReviewStage["AverageRating"] = aTotalRating / aCount;
                    DataObjectFactory.SaveDataObject(aGranteeProjectReviewStage);
                }
            }
            //DataObjectFactory.SaveDataObject(aGPRSDOList);
        }
Exemplo n.º 25
0
/*====================================================*/

/*----------------------------------------------------*/
        public cDataObjectList GetWfTaskAssignmentList()
        {
            //returns a list of WfTaskAssignment data objects that meet the criteria for receiving an e-mail reminder (WfProjectTask,
            //WfTaskStatus, and interval before or after a key project date)
            int     aWfProjectID;
            int     aWfTaskID;
            XmlNode aDataObjectNode;
            XmlNode aFiltersNode;
            XmlNode aArgNode;
            bool    aOverridableDateType = false;

            //Get filter values
            //Project and task IDs (We cannot currently filter directly on WfTaskAssignment.WfProjectTask for technical reasons)
            if (GetPropertyValue("ProjectTaskID") != System.DBNull.Value)
            {
                cDataObject aWfProjectTask = DataObjectFactory.GetDataObjectFromPrimaryKey("WfProjectTask", GetPropertyInt("ProjectTaskID"));
                aWfProjectID = aWfProjectTask.GetPropertyInt("WfProjectID");
                aWfTaskID    = aWfProjectTask.GetPropertyInt("WfTaskID");
            }
            else
            {
                aWfProjectID = GetPropertyInt("WfProjectID");
                aWfTaskID    = GetPropertyInt("WfTaskID");
            }

            //Get date value against which to compare dates in database (today's date offset by the interval defined in the reminder object)
            int aInterval = GetPropertyInt("DaysToRemind");

            if (GetPropertyInt("BeforeAfterID") == 2)
            {
                aInterval = -1 * aInterval;
            }
            DateTime aCompareDate        = DateTime.Today.Add(new TimeSpan(aInterval, 0, 0, 0));
            String   aCompareDateStr     = String.Format("{0:yyyy/M/d}", aCompareDate);
            DateTime aCompareDateNext    = aCompareDate.Add(new TimeSpan(1, 0, 0, 0));
            String   aCompareDateStrNext = String.Format("{0:yyyy/M/d}", aCompareDateNext);

            //Check to see if the date type is one that is overridable by the individual WfTaskAssignment
            String aReminderTargetType = GetRelatedPropertyString("ReminderTarget.Abbr");

            if (aReminderTargetType == "OpenDate" || aReminderTargetType == "DueDate" || aReminderTargetType == "CloseDate")
            {
                aOverridableDateType = true;
            }

            //Build filter nodes
            cXMLDoc aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode);

            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfTaskID", aWfTaskID.ToString()));
            aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfTaskStatusID", "1"));
            aArgNode = aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfProjectID", aWfProjectID.ToString()));
            DataObjectFactory.CreateArgumentRelatedPropertyNode(aXMLDoc, "GranteeProject", aArgNode);

            //If the date type is not overridable, we just have to filter on the appropriate date from the WfProjectTask. Otherwise,
            //we have to filter on (WfProjectTask date meets criteria AND WfTaskAssignment date is null) OR (WfTaskAssignment date meets criteria)
            if (aOverridableDateType)
            {
                aFiltersNode.AppendChild(DataObjectFactory.CreateGroupArgumentNode(aXMLDoc, "(", "And"));
                aFiltersNode.AppendChild(DataObjectFactory.CreateGroupArgumentNode(aXMLDoc, "(", ""));
            }

            //aArgNode = aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", aReminderTargetType, aCompareDateStr, ""));
            //DataObjectFactory.CreateArgumentRelatedPropertyNode(aXMLDoc, "WfProjectTask", aArgNode);
            aArgNode = aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", aReminderTargetType, aCompareDateStr, "", "GreaterThanEqual"));
            DataObjectFactory.CreateArgumentRelatedPropertyNode(aXMLDoc, "WfProjectTask", aArgNode);
            aArgNode = aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", aReminderTargetType, aCompareDateStrNext, "And", "LessThan"));
            DataObjectFactory.CreateArgumentRelatedPropertyNode(aXMLDoc, "WfProjectTask", aArgNode);

            if (aOverridableDateType)
            {
                aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", aReminderTargetType, "null"));
                aFiltersNode.AppendChild(DataObjectFactory.CreateGroupArgumentNode(aXMLDoc, ")", ""));

                //aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", aReminderTargetType, aCompareDateStr, "Or"));
                aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", aReminderTargetType, aCompareDateStr, "Or", "GreaterThanEqual"));
                aFiltersNode.AppendChild(DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", aReminderTargetType, aCompareDateStrNext, "And", "LessThan"));

                aFiltersNode.AppendChild(DataObjectFactory.CreateGroupArgumentNode(aXMLDoc, ")", ""));
            }

            //Get data object list
            return(DataObjectFactory.GetDataObjectList(aDataObjectNode));
        }