示例#1
0
		/*----------------------------------------------------*/
		protected void WfTaskOutcome_SaveNewTaskAssignment(cDataObject aWfTaskAssgDataObject, XmlNode aTaskNode)
		{				
				if (cXMLDoc.AttributeToInt(aTaskNode, "RoleID", 0) > 0)
					aWfTaskAssgDataObject["WfTaskRoleID"] = cXMLDoc.AttributeToInt(aTaskNode, "RoleID", 0);
				else
					aWfTaskAssgDataObject["WfTaskRoleID"] = this["WfTaskRoleID"];
				aWfTaskAssgDataObject["GranteeProjectID"] = this["GranteeProjectID"];

				if (aWfTaskAssgDataObject.GetRelatedPropertyValue("WfProjectTask.OpenDate") == null)
					aWfTaskAssgDataObject["OpenDate"] = System.DateTime.Now;
				aWfTaskAssgDataObject["CreateUser"] = this.DataObjectFactory.User.UserID;
				aWfTaskAssgDataObject["CreateDate"] = System.DateTime.Now;
				aWfTaskAssgDataObject["WfTaskStatusID"] = cXMLDoc.AttributeToInt(aTaskNode, "Status", 0);
			
			if (IndexNewWfTAs)
				NewWfTACollection.Add(cXMLDoc.AttributeToString(aTaskNode, "Key"), aWfTaskAssgDataObject);

			//update status and outcome on either new or existing WfTaskAssignment Object. If the task specifies NoPersonID=True
			//(i.e., a workgroup task assignment), the status will not be updated unless the UpdateStatus=True attribute is also present.
			if (!cXMLDoc.AttributeToBool(aTaskNode, "NoPersonID", false) || cXMLDoc.AttributeToBool(aTaskNode, "UpdateStatus", false))
				aWfTaskAssgDataObject["WfTaskStatusID"] = cXMLDoc.AttributeToInt(aTaskNode, "Status", 0);
			if (cXMLDoc.AttributeToInt(aTaskNode, "Outcome", 0) > 0)
				aWfTaskAssgDataObject["WfTaskOutcomeID"] = cXMLDoc.AttributeToInt(aTaskNode, "Outcome");
			if (cXMLDoc.AttributeToString(aTaskNode, "WorkgroupID", "") != "")
				aWfTaskAssgDataObject["WorkgroupID"] = cXMLDoc.AttributeToInt(aTaskNode, "WorkgroupID");

			//save WfTaskAssignment object
			aWfTaskAssgDataObject.SaveData();
		}
示例#2
0
		/*-----------------------------------------------------*/

		//new Dimo 11/4/2004 for configurable tags
		public String ReplaceFieldCodes_With_Values(String aSourceTextStr, cDataObject aDataObject) {
			int aFirstPosition;
			int aLastPosition;
			int aLength;
			String aValue;

			//loop through document for ALL field codes
			String aOpenTag = GetOpenTag(aDataObject.DataObjectFactory.Appl);
			String aCloseTag = GetCloseTag(aDataObject.DataObjectFactory.Appl);
			while ((aFirstPosition = cLib.GetCharPostition(aSourceTextStr, aOpenTag)) >= 0) {
				aLastPosition = cLib.GetCharPostition(aSourceTextStr, aCloseTag);
				aLength = (aLastPosition - aFirstPosition) + aCloseTag.Length;

				//error handling for user-generated errors (if staff member incorrectly identifies a tag example: Person.LastNmae )
				try {
					aValue = aDataObject.GetRelatedPropertyString(aSourceTextStr.Substring(aFirstPosition + aOpenTag.Length, aLength - (aOpenTag.Length + aCloseTag.Length)));
				} catch {
					aValue = "--error--";
				}

				aSourceTextStr = aSourceTextStr.Replace(aSourceTextStr.Substring(aFirstPosition, aLength), aValue);
			}

			return aSourceTextStr;
		}
示例#3
0
		public void Notify_DataModified_HHMI(cDataObjectFactory aDataObjectFactory) {
			cWfTaskAssignment aApplWfTA = this;

			//find the applicant WfTaskAssignment
			int aRoleID = this.GetPropertyInt("WfTaskRoleID", 0);
			if (aRoleID != 1) {
				cDataObject aGP = this.GetRelatedPropertyDataObject("GranteeProject");
				cDataObjectList aDOL;
				aDOL = aGP.GetRelatedPropertyDataObjectList("ApplWfTaskAssignments");
				foreach (cDataObject aDO in aDOL) {
					if (aDO.GetRelatedPropertyInt("WfTask.WfTaskTypeID", 0) == 1) {
						aApplWfTA = (cWfTaskAssignment) aDO;
						break;
					}
				}
			}

			cDataObjectList aWfProjectPDFList = aApplWfTA.GetRelatedPropertyDataObjectList("GranteeProject.WfProjectPDF");
			foreach (cDataObject aWfProjectPDF in aWfProjectPDFList) {
				if (aWfProjectPDF.GetPropertyInt("PDFGenerationID", 0) == 1) {
					string aReportOutputDefinitionID = aWfProjectPDF.GetRelatedPropertyString("FinalPDFReportKeyLink.ReportOutputDefinitionID");
					cDataObject aReportOutputDO = aDataObjectFactory.GetDataObjectListWithFilter("ReportOutput", "DefinitionID", aReportOutputDefinitionID, "EntityID", aApplWfTA.GetPropertyString("WfTaskAssignmentID"))[0];
					if (aReportOutputDO != null) {
						if (aRoleID != 1 && aWfProjectPDF.GetPropertyInt("ReportOutputDefinitionTypeID", 1) == 1)
							continue; //skip applicant pdf when make changes to third party data
						//delete existing pdf
						aDataObjectFactory.DeleteData(aReportOutputDO);
					}
				}
			}
		}
示例#4
0
		/*----------------------------------------------------*/

		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);
		}
示例#5
0
		/*----------------------------------------------------*/

		protected void WfTaskOutcome_UpdateData(XmlNodeList aUpdateDataNodeList) {

			foreach (XmlNode aUpdateDataNode in aUpdateDataNodeList) {
				WfTaskOutcome_SetRelatedDataObjectArgValues(null, aUpdateDataNode);
				String aPropertyKey = cXMLDoc.AttributeToString(aUpdateDataNode, "PropertyKey");
				String aFinalKey;

				int aIndex = aPropertyKey.LastIndexOf(".");
				if (aIndex == -1) {
					cDataObject aDataObject = this;
					aFinalKey = aPropertyKey;
					if (cXMLDoc.AttributeToBool(aUpdateDataNode, "Null"))
						aDataObject[aFinalKey] = System.DBNull.Value;
					else
						aDataObject[aFinalKey] = cXMLDoc.AttributeToString(aUpdateDataNode, "Value");
					aDataObject.SaveData();
				} else {
					aFinalKey = aPropertyKey.Substring(aIndex + 1);
					cDataObjectList aDataObjectList = this.GetRelatedPropertyDataObjectList(aPropertyKey.Substring(0, aIndex));
					foreach (cDataObject aDataObject in aDataObjectList) {
						if (cXMLDoc.AttributeToBool(aUpdateDataNode, "Null"))
							aDataObject[aFinalKey] = System.DBNull.Value;
						else
							aDataObject[aFinalKey] = cXMLDoc.AttributeToString(aUpdateDataNode, "Value");
						aDataObject.SaveData();
					}
				}
			}
		}
示例#6
0
/*====================================================*/

        public void WriteDataObjectList(StringBuilder aTable, cDataObjectList aDataObjectList)
        {
            bool anAltRow = false;

            for (int i = 0; i < aDataObjectList.Count; i++)
            {
                cDataObject aDataObject = aDataObjectList[i];
                if (anAltRow)
                {
                    aTable.Append("<tr bgColor='" + RowBgColor + "' class='" + RowClass + "'>");
                    anAltRow = false;
                }
                else
                {
                    aTable.Append("<tr bgColor='" + AltRowBgColor + "' class='" + AltRowClass + "'>");
                    anAltRow = true;
                }
                foreach (XmlNode aDisplayPropertyNode in AdHocQueryDefXMLDoc.DocElement.SelectNodes("DisplayProperties/DisplayProperty"))
                {
                    String aPropertyKey;
                    aPropertyKey = cXMLDoc.AttributeToString(aDisplayPropertyNode, "PropertyKey");
                    aTable.Append("<td>" + aDataObject.GetAliased_RelatedPropertyDefaultFormattedString(aPropertyKey) + "</td>");                     //PL 12/17/03
                    aTable.Append("<td width='10'>&nbsp;</td>");
                }
                aTable.Append("</tr>");
            }
        }
示例#7
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);
        }
示例#8
0
		/*-----------------------------------------------------*/

		protected override XmlNode Get_DataObjectEmailPropertiesNode(cDataObject aDataObject) {
			XmlNode aDataObjectEmailPropertiesNode;
			aDataObjectEmailPropertiesNode = cXMLDoc.FindNode(((cWebAppl) aDataObject.DataObjectFactory.Appl).Get_ApplNode(),
				"EMailParams/DataObjectEmailProperties",
				"Key", aDataObject.DefinitionKey);
			return aDataObjectEmailPropertiesNode;
		}
示例#9
0
/*====================================================*/

        public void SaveReviewAssignments(int aWfProjectTaskID, int aWfTaskID)
        {
            cXMLDoc     aXmlDoc;
            XmlNode     aFiltersNode;
            XmlNode     aDataObjectNode;
            cDataObject aWfTaskAssgDataObject;
            int         assignment_count = 0;

            if (mAssignedReviewers.Count > 0)
            {
                cDataObject aGPReviewStage = GetGranteeProjectReviewStageDO(aWfProjectTaskID);
            }

            foreach (cReviewCommitteeMember aReviewer in mAssignedReviewers)
            {
                aXmlDoc = this.DataObjectList.DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode);
                aWfTaskAssgDataObject                      = this.DataObjectList.DataObjectFactory.GetNewDataObject(aDataObjectNode);
                aWfTaskAssgDataObject["WfTaskID"]          = aWfTaskID;
                aWfTaskAssgDataObject["PersonID"]          = aReviewer["PersonID"];
                aWfTaskAssgDataObject["WfTaskRoleID"]      = 7;
                aWfTaskAssgDataObject["GranteeProjectID"]  = this["GranteeProjectID"];
                aWfTaskAssgDataObject["WfTaskStatusID"]    = 1;                //incomplete
                aWfTaskAssgDataObject["AssignmentOrdinal"] = assignment_count; //used to identify primary, secondary reviewer

                assignment_count += 1;

                this.DataObjectList.DataObjectFactory.SaveDataObject(aWfTaskAssgDataObject);
            }
        }
示例#10
0
		/*----------------------------------------------------*/
		protected cDataObject WfTaskOutcome_CreateTARelatedDataObject(cDataObject aNewWfTaskAssgDataObject, XmlNode aRelatedDONode) {
			//Get related data object if it already exists.
			String aDODefKey = cXMLDoc.AttributeToString(aRelatedDONode, "DataObjectDefinitionKey");
			XmlNodeList aFilterArgsList = aRelatedDONode.SelectNodes("Filters/Argument");
			foreach (XmlNode aArgNode in aFilterArgsList) {
				WfTaskOutcome_SetRelatedDataObjectArgValues(aNewWfTaskAssgDataObject, aArgNode);
			}
			cDataObject aDataObject = DataObjectFactory.GetDataObject(aRelatedDONode);
			//If not, create a new one.
			if (aDataObject == null)
				aDataObject = DataObjectFactory.CreateNewDataObjectFromKey(aDODefKey);
			//Populate properties and save.
			XmlNodeList aPropertyArgsList = aRelatedDONode.SelectNodes("DataObjectProperties/Argument");
			foreach (XmlNode aArgNode in aPropertyArgsList) {
				WfTaskOutcome_SetRelatedDataObjectArgValues(aNewWfTaskAssgDataObject, aArgNode);
				String aPropertyKey = cXMLDoc.AttributeToString(aArgNode, "PropertyKey");
				aDataObject[aPropertyKey] = cXMLDoc.AttributeToString(aArgNode, "Value");
			}

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

			aDataObject.SaveData();
			if (cXMLDoc.AttributeToString(aRelatedDONode, "Key") != "") {
				RelatedDataObjectCollection.Add(cXMLDoc.AttributeToString(aRelatedDONode, "Key"), aDataObject);
			}
			return aDataObject;
		}
示例#11
0
/*====================================================*/

        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);
                }
            }
        }
示例#12
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);
        }
示例#13
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);
            }
        }
示例#14
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;
	}
示例#15
0
/*====================================================*/

        protected int SaveHistory(cDataObject aGranteeProject, int aUserID)
        {
            /*Note: The GranteeProject data object passed into this method is not "this". It
             * is a data object containing the data currently saved in the database. This data
             * will be written to the history table before the updates in the current GranteeProject
             * object are saved to the database*/

            cDataObject aGPHistory;

            aGPHistory = this.DataObjectFactory.CreateNewDataObjectFromKey("GranteeProjectHistory");
            aGPHistory["GranteeProjectID"]      = aGranteeProject["GranteeProjectID"];
            aGPHistory["WfProjectID"]           = aGranteeProject["WfProjectID"];
            aGPHistory["WfProjectOutcomeID"]    = aGranteeProject["WfProjectOutcomeID"];
            aGPHistory["PrimaryPersonID"]       = aGranteeProject["PrimaryPersonID"];
            aGPHistory["PrimaryOrganizationID"] = aGranteeProject["PrimaryOrganizationID"];
            aGPHistory["OtherOrganization"]     = aGranteeProject["OtherOrganization"];
            aGPHistory["PrimaryAddressID"]      = aGranteeProject["PrimaryAddressID"];
            aGPHistory["GranteeID"]             = aGranteeProject["GranteeID"];
            aGPHistory["GrantTitle"]            = aGranteeProject["GrantTitle"];
            aGPHistory["ShortTitle"]            = aGranteeProject["ShortTitle"];
            aGPHistory["CreateDate"]            = System.DateTime.Now;
            aGPHistory["EntityTypeID"]          = aGranteeProject.GetRelatedPropertyDataObjectList("Grantee")[0]["EntityTypeID"];
            if (aUserID != -1)    //A value of -1 indicates that the User ID is unknown.
            {
                aGPHistory["CreateUser"] = aUserID;
            }

            aGPHistory.SaveData();
            return(aGPHistory.GetPropertyInt("GranteeProjectHistoryID"));
        }
示例#16
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;
	}
示例#17
0
/*====================================================*/

/* DataPresenter calls this function when updating or inserting data*/

        public void SaveDataObject(cDataObject aDataObject)
        {
            if (mUser != null)
            {
                aDataObject.DataObjectList.UserID = mUser.UserID;
            }
            aDataObject.SaveData();     //virtual method to give sub-classes pre- and post- processing
        }
示例#18
0
/*-----------------------------------------------------*/

	public int Get_EG_User() {
		int aUserID;
		cDataObject aUser = this.GetRelatedPropertyDataObject("User");
		if (aUser != null)
			return aUser.GetPropertyInt("UserID",0);
		else
			return 0;		
	}
示例#19
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;
	}
示例#20
0
/*-----------------------------------------------------*/

	public cEGUser EGUser_From_UserDataobject(cDataObject aUserDO, out cXMLDoc aModuleDoc) {
		cEGUser aUser = EGUser_From_EGUserType(aUserDO.GetRelatedPropertyString("UserType.UserType_Abbr"), out aModuleDoc);       
		
		aUser.UserID = aUserDO.GetPropertyInt("UserID");
		aUser.PersonID = aUserDO.GetPropertyInt("PersonID");
		aUser.AccessLevel = aUserDO.GetRelatedPropertyInt("UserType.AccessLevel");
		//aUser.SetPersonRoles(); //call after PersonID is set
		
		return aUser;
	}
示例#21
0
/*====================================================*/

	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["ResponseDate"] = System.DateTime.Now.ToShortDateString();
		this.DataObjectFactory.SaveDataObject(aRevAddInfoDO);
	}
示例#22
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);
        }
示例#23
0
/*====================================================*/
        ///<summary>
        ///Delete from database existing review assignments for this GranteeProject
        ///</summary>
        public void DeleteReviewAssignments(int aWfProjectTaskID)
        {
            cDataObject     GranteeProjectReviewStageDO;
            cDataObjectList aReviewAssignmentList;

            GranteeProjectReviewStageDO = GetGranteeProjectReviewStageDO(aWfProjectTaskID);
            DataObjectFactory.DeleteData(GranteeProjectReviewStageDO);

            cDataObject aWfProjectTaskDO = DataObjectFactory.GetDataObjectFromPrimaryKey("WfProjectTask", aWfProjectTaskID);

            aReviewAssignmentList = GetReviewAssignments(aWfProjectTaskDO.GetPropertyInt("WfTaskID"));
            DataObjectFactory.DeleteData(aReviewAssignmentList);
        }
示例#24
0
        /*-----------------------------------------------------*/

        public cDataObject CloneDataObject(cDataObject aObj)
        {
            cDataObject aClone = this.CreateNewDataObjectFromKey(aObj.DefinitionKey);

            for (int i = 0; i < aClone.DataObjectRow.ItemArray.Length; i++)
            {
                if (aClone.DataObjectRow.Table.Columns[i].ToString() != aObj.PrimaryKey)
                {
                    aClone.DataObjectRow[i] = aObj.DataObjectRow.ItemArray.GetValue(i);
                }
            }
            return(aClone);
        }
示例#25
0
/*----------------------------------------------------*/

	public virtual void EventController_GetEventMethodArgs(ArrayList aArgsList, cCoreCtl aCtl, Object aEventSrc, XmlNode aActionNode) {
		XmlNode		aArgumentsNode = aActionNode.SelectSingleNode("Parameters");
		
		if (aArgumentsNode == null)
			return;

		XmlNodeList		aArgsNodeList = aArgumentsNode.SelectNodes("Argument");
		
		foreach(XmlNode aArgumentNode in aArgsNodeList) {

			String aAttributeName = cXMLDoc.AttributeToString(aArgumentNode, "AttributeName");
			String aType = cXMLDoc.AttributeToString(aArgumentNode, "Type");

			if(aAttributeName!= "") {
				switch(aType) {
					case "":
						aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "Value"));
						break;
					case "AttributeRelatedProperty":
						String aDODKey = cXMLDoc.AttributeToString(aArgumentNode, "DataObjectDefinitionKey");
						String aPrimaryKey = aCtl.Attributes[aAttributeName];
						cDataObject aDO = this.WebSession.DataObjectFactory.GetDataObjectFromPrimaryKey(aDODKey, aPrimaryKey);
						String aPropertyKey = cXMLDoc.AttributeToString(aArgumentNode, "PropertyKey");
						if(aDO.GetRelatedPropertyString(aPropertyKey) != "")
							aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "BaseValue") + aDO.GetRelatedPropertyString(aPropertyKey));
						else
							aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "BaseValue") + cXMLDoc.AttributeToString(aArgumentNode, "DefaultValue", "0"));
						break;
					default:
						aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "BaseValue") + 
							aCtl.Attributes[aAttributeName]);
						break;
				}
			}
			else {
				switch (aType) {
					case "Object" :
						aArgsList.Add(EventController_GetEventArgumentObject(aArgumentNode, aCtl, aEventSrc));
						break;
					default :
						if(aType == "")
							aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "Value"));
						else
							aArgsList.Add(cXMLDoc.AttributeToString(aArgumentNode, "BaseValue") +
								EventController_GetArgumentValue(aArgumentNode, null));
						break;
				}
			}
		}
	}
示例#26
0
/*-----------------------------------------------------*/

        public void DeleteData(cDataObject aDataObject)
        {
            if (aDataObject != null)
            {
                if (mUser != null)
                {
                    aDataObject.DataObjectList.UserID = mUser.UserID;
                }
                String  aDefinitionKey  = cXMLDoc.AttributeToString(aDataObject.ObjDefNode, "Key");
                XmlNode aDefinitionNode = DataDefinitionDoc.DocElement.SelectSingleNode("DataObjectDefinitions/Definition[@Key='" + aDefinitionKey + "']");
                String  aDataSourceKey  = cXMLDoc.AttributeToString(aDefinitionNode, "DataSourceKey");
                GetDataProvider(aDataSourceKey).DeleteData(aDataObject);
            }
        }
示例#27
0
/*-----------------------------------------------------*/

        public void HideInactiveLookupValues(XmlNode aControlNode, XmlNode aFilterNode, string aDefinitionKey, bool aHideInactiveItems)
        {
            XmlNode aOldFilters   = null;
            XmlNode aNewFilters   = null;
            String  aBaseDataType = cXMLDoc.AttributeToString(aControlNode, "DataObjectDefinitionKey", aDefinitionKey);

            if (aHideInactiveItems && aBaseDataType != "")
            {
                XmlNode     aBaseObjDefNode = WebSession.DataObjectFactory.DataDefinitionDoc.DocElement.SelectSingleNode("DataObjectDefinitions/Definition[@Key='" + aBaseDataType + "']");
                XmlNode     aPropKeyNode    = cXMLDoc.FindNode(aBaseObjDefNode, "Properties/Property", "Key", "EndDate");
                cDataObject aCodeTableDO    = WebSession.DataObjectFactory.GetDataObjectListWithFilter("IDGen", "TableName", cXMLDoc.AttributeToString(aBaseObjDefNode, "RowSource", "IDGen"))[0];
                bool        aCodeTable      = false;
                if (aCodeTableDO != null)
                {
                    if (aCodeTableDO.GetPropertyValue("IsCodeTable") != System.DBNull.Value)
                    {
                        aCodeTable = aCodeTableDO.GetPropertyBool("IsCodeTable");
                    }
                }

                if (aPropKeyNode != null && aCodeTable)
                {
                    cXMLDoc aXmlDoc = new cXMLDoc();
                    aXmlDoc.LoadFromXML(aControlNode.OuterXml);
                    if (aFilterNode == null)
                    {
                        aFilterNode = aXmlDoc.XMLDocument.CreateNode(XmlNodeType.Element, "Filters", "");
                        aXmlDoc.DocElement.AppendChild(aFilterNode);
                        aFilterNode.AppendChild(WebSession.DataObjectFactory.CreateGroupArgumentNode(aXmlDoc, "(", ""));
                    }
                    else
                    {
                        aOldFilters = aControlNode.SelectSingleNode("Filters");
                        aFilterNode = aXmlDoc.DocElement.SelectSingleNode("Filters");
                        aFilterNode.AppendChild(WebSession.DataObjectFactory.CreateGroupArgumentNode(aXmlDoc, "("));
                    }
                    aFilterNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentNode(aXmlDoc, "CurrentDateTime", "EndDate", "", "", "GreaterThan"));
                    aFilterNode.AppendChild(WebSession.DataObjectFactory.CreateArgumentNode(aXmlDoc, "", "EndDate", "", "Or"));
                    aFilterNode.AppendChild(WebSession.DataObjectFactory.CreateGroupArgumentNode(aXmlDoc, ")", ""));
                    if (aOldFilters != null)
                    {
                        aControlNode.RemoveChild(aOldFilters);
                    }
                    aNewFilters          = aControlNode.OwnerDocument.CreateNode(XmlNodeType.Element, "Filters", "");
                    aNewFilters.InnerXml = aFilterNode.InnerXml;
                    aControlNode.AppendChild(aNewFilters);
                }
            }
        }
示例#28
0
/*====================================================*/

	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);
	}
示例#29
0
        public bool CopyDataObject(cDataObject aObjFrom, cDataObject aObjTo)
        {
            if (aObjFrom.DefinitionKey != aObjTo.DefinitionKey)
            {
                return(false);
            }

            for (int i = 0; i < aObjFrom.DataObjectRow.ItemArray.Length; i++)
            {
                if (aObjFrom.DataObjectRow.Table.Columns[i].ToString() != aObjFrom.PrimaryKey)
                {
                    aObjTo.DataObjectRow[i] = aObjFrom.DataObjectRow.ItemArray.GetValue(i);
                }
            }
            return(true);
        }
示例#30
0
        public string GetUploadViewerControlUrl(string aControlType)
        {
            XmlNode     aViewerNode   = WebAppl.ConfigDoc.DocElement.SelectSingleNode("UploadViewerControls/Control[@Type='" + aControlType + "']");
            cDataObject aSharePointDO = WebSession.DataObjectFactory.GetDataObjectListWithFilter("SharePointIntegration", "Active", "True")[0];

            if (aViewerNode != null && aSharePointDO != null && cXMLDoc.AttributeToString(aViewerNode, "SPURL", "") != "")
            {
                return(cXMLDoc.AttributeToString(aViewerNode, "SPURL"));
            }
            else if (aViewerNode != null)
            {
                return(cXMLDoc.AttributeToString(aViewerNode, "URL", ""));
            }
            else
            {
                return("");
            }
        }