/*----------------------------------------------------*/ 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(); }
/*-----------------------------------------------------*/ //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; }
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); } } } }
/*----------------------------------------------------*/ 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); }
/*----------------------------------------------------*/ 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(); } } } }
/*====================================================*/ 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'> </td>"); } aTable.Append("</tr>"); } }
/*====================================================*/ 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); }
/*-----------------------------------------------------*/ 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; }
/*====================================================*/ 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); } }
/*----------------------------------------------------*/ 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; }
/*====================================================*/ 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); } } }
/*====================================================*/ ///<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); }
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); } }
/*-----------------------------------------------------*/ ///<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; }
/*====================================================*/ 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")); }
/*-----------------------------------------------------*/ 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; }
/*====================================================*/ /* 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 }
/*-----------------------------------------------------*/ public int Get_EG_User() { int aUserID; cDataObject aUser = this.GetRelatedPropertyDataObject("User"); if (aUser != null) return aUser.GetPropertyInt("UserID",0); else return 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; }
/*-----------------------------------------------------*/ 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; }
/*====================================================*/ 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); }
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); }
/*====================================================*/ ///<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); }
/*-----------------------------------------------------*/ 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); }
/*----------------------------------------------------*/ 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; } } } }
/*-----------------------------------------------------*/ 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); } }
/*-----------------------------------------------------*/ 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); } } }
/*====================================================*/ 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 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); }
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(""); } }