/*----------------------------------------------------*/ 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; } } } }
/*-----------------------------------------------------*/ //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 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 void SetEmailParams(cDataObject aDataObject) { //Parse the field codes from the bodytext mIsHtml = CorrespondenceDefinition.GetPropertyBool("IsHtml"); mTo = ReplaceFieldCodes_With_Values(CorrespondenceDefinition.GetPropertyString("CorrespondenceTo"), aDataObject); mFrom = ReplaceFieldCodes_With_Values(CorrespondenceDefinition.GetPropertyString("CorrespondenceFrom"), aDataObject); if (CorrespondenceDefinition.HasProperty("CorrespondenceFromName")) { mFromName = ReplaceFieldCodes_With_Values(CorrespondenceDefinition.GetPropertyString("CorrespondenceFromName"), aDataObject); } if (mTo == "") { XmlNode aAttributeNode; XmlNode aDataObjectEmailPropertiesNode; aDataObjectEmailPropertiesNode = Get_DataObjectEmailPropertiesNode(aDataObject); if (aDataObjectEmailPropertiesNode != null) { aAttributeNode = aDataObjectEmailPropertiesNode.SelectSingleNode("EMail"); mEmailPropertyKey = cXMLDoc.AttributeToString(aAttributeNode, "Property", ""); mTo = aDataObject.GetRelatedPropertyString(mEmailPropertyKey); } else { switch (aDataObject.DefinitionKey) { case "WfTaskAssignment": mTo = aDataObject.GetRelatedPropertyString("Person.PersonPrimaryEMail.ContactValue1"); break; case "Person": mTo = aDataObject.GetRelatedPropertyString("PersonPrimaryEMail.ContactValue1"); break; case "GranteeProject": mTo = aDataObject.GetRelatedPropertyString("PrimaryPerson.PersonPrimaryEMail.ContactValue1"); break; } } } if (EmailArgs != null && EmailArgs.RcptPersonIDPropertyKey != "") try { mRcptPersonID = aDataObject.GetRelatedPropertyInt(EmailArgs.RcptPersonIDPropertyKey, 0); } catch { } else mRcptPersonID = 0; mCc = ReplaceFieldCodes_With_Values(CorrespondenceDefinition.GetPropertyString("CorrespondenceCC"), aDataObject); mBcc = ReplaceFieldCodes_With_Values(CorrespondenceDefinition.GetPropertyString("CorrespondenceBCC"), aDataObject); mSubject = ReplaceFieldCodes_With_Values(CorrespondenceDefinition.GetPropertyString("Subject"), aDataObject); mBodyText = ReplaceFieldCodes_With_Values(CorrespondenceDefinition.GetPropertyString("Body"), aDataObject, GetOpenTag(aDataObject.DataObjectFactory.Appl), GetCloseTag(aDataObject.DataObjectFactory.Appl)); mIsLog = CorrespondenceDefinition.GetPropertyBool("IsLog"); }
/*-----------------------------------------------------*/ 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 virtual String EventController_GetArgumentValue(XmlNode aArgumentNode, cDataObject aDataObject) { String aType = cXMLDoc.AttributeToString(aArgumentNode, "Type"); String aTypeKey = cXMLDoc.AttributeToString(aArgumentNode, "TypeKey"); switch(aType) { case "": case "Data": return ""; //returns blank Value already set case "QueryString": return Request.QueryString[aTypeKey]; case "URL": //typically, want PathAndQuery property return (String)cReflection.Invoke_Property(Request.Url, aTypeKey); case "ModulePage": return cReflection.Invoke_Property(((cModulePage)Page), aTypeKey).ToString(); case "ModuleUser": String aTypeKeyIndex = cXMLDoc.AttributeToString(aArgumentNode, "TypeKeyIndex"); if (aTypeKeyIndex == "") return cReflection.Invoke_Property(((cModulePage)Page).ModuleUser, aTypeKey).ToString(); else return ((Hashtable)cReflection.Invoke_Property(((cModulePage)Page).ModuleUser, aTypeKey))[aTypeKeyIndex].ToString(); case "DataObject": return aDataObject[aTypeKey].ToString(); case "DataObjectRelated": return aDataObject.GetRelatedPropertyString(aTypeKey); case "DataObjectCollection": String aDataObjPropertyKey = cXMLDoc.AttributeToString(aArgumentNode, "DataObjectPropertyKey"); return ((cDataObjectList)DataObjectCollection[aTypeKey])[0].GetRelatedPropertyString(aDataObjPropertyKey); case "Control": String aControlProperty = cXMLDoc.AttributeToString(aArgumentNode, "ControlPropertyKey"); Control aCtl = FindControl(aTypeKey); return cReflection.Invoke_Property(aCtl, aControlProperty).ToString(); case "PageParams": return ((HtmlInputControl)PageParamsContainer.FindControl(aTypeKey)).Value; case "CurrentDateTime": if(aTypeKey == "DateTime" || aTypeKey == "") return System.DateTime.Now.ToString("yyyy/M/d H:m:s"); else return (cReflection.Invoke_Property(System.DateTime.Now, aTypeKey)).ToString(); } return "Hack"; }
/*----------------------------------------------------*/ public String DisplayValue(cDataObject aDataObject, String aFullPropertyKey) { XmlNode aObjDefNode; XmlNode aRelationshipNode; String aDataType; String[] aKeys; String aFinalPropertyKey; XmlNode aPropertyNode; int i; String aChildDataDefinitionKey; aObjDefNode = DataObjectFactory.DataDefinitionDoc.DocElement.SelectSingleNode("DataObjectDefinitions/Definition[@Key='" + BaseDODKey + "']"); if (aFullPropertyKey.IndexOf(".") != -1) { aKeys = aFullPropertyKey.Split(new Char[] { '.' }); aFinalPropertyKey = aKeys[aFullPropertyKey.Length - 1]; for (i = 0; i < aKeys.Length - 1; i++) { aRelationshipNode = aObjDefNode.SelectSingleNode("Properties/Property[@Key='" + aKeys[i] + "']/Relationship"); aChildDataDefinitionKey = cXMLDoc.AttributeToString(aRelationshipNode, "ChildDefinitionKey"); aObjDefNode = DataObjectFactory.DataDefinitionDoc.DocElement.SelectSingleNode("DataObjectDefinitions/Definition[@Key='" + aChildDataDefinitionKey + "']"); } } else { aFinalPropertyKey = aFullPropertyKey; } aPropertyNode = aObjDefNode.SelectSingleNode("Properties/Property[@Key='" + aFinalPropertyKey + "']"); aDataType = cXMLDoc.AttributeToString(aPropertyNode, "DataType"); if (aDataType == "Boolean") { return(aDataObject.GetRelatedPropertyBool(aFullPropertyKey).ToString()); } else { return(aDataObject.GetRelatedPropertyString(aFullPropertyKey)); } }
/*-----------------------------------------------------*/ public void GetFileUrl(cDataObject aSubmittedFileDataObj, out cDataObject aSharePointDO, out String aRemotePDFURL, out String aRemoteOrginalURL) { aRemotePDFURL = ""; aRemoteOrginalURL = ""; aSharePointDO = WebSession.DataObjectFactory.GetDataObjectListWithFilter("SharePointIntegration", "Active", "True")[0]; if (aSharePointDO == null) { return; } switch (aSubmittedFileDataObj.GetPropertyString("EntityDataObjectKey")) { case "WfTaskAssignment": case "GranteeProject": BuildURL(aSubmittedFileDataObj, aSharePointDO, aSubmittedFileDataObj.GetPropertyString("EntityDataObjectKey"), out aRemotePDFURL, out aRemoteOrginalURL); break; default: //This case needs to be handeled for Granteeproject , Person , Organization , WordMerge BuildURL(aSubmittedFileDataObj, aSharePointDO, aSubmittedFileDataObj.GetRelatedPropertyString("FileType.EntityDataObjectKey"), out aRemotePDFURL, out aRemoteOrginalURL); break; } }
public void BuildURL(cDataObject aSubmittedFileDataObj, cDataObject aSharePointDO, string FileType, out string aRemotePDFURL, out string aRemoteOrginalURL) { String aSiteName = cWebLib.GetFormattedUrl(aSharePointDO.GetPropertyString("SiteName")); String aSPUrl = cWebLib.GetFormattedUrl(aSharePointDO.GetPropertyString("SharePointURL")); String aSubmittedFileID = aSubmittedFileDataObj.GetPropertyString("SubmittedFileID"); String aSourceFileName = aSubmittedFileDataObj.GetPropertyString("SourceFileName"); String aSourceExt = aSourceFileName.Substring(aSourceFileName.LastIndexOf(".") + 1); String aFileNamePrefix = aSourceFileName.Substring(0, aSourceFileName.LastIndexOf(".")); String aEntityID = aSubmittedFileDataObj.GetPropertyString("EntityID"); String aDestinationFolder = ""; String aDestinationContextFolder = ""; String aUploadFileName = ""; switch (FileType) { case "GranteeProject": case "WfTaskAssignment": String aGPID; if (aSubmittedFileDataObj.GetRelatedPropertyString("TaskUploadType.Upload.FileNamePrefix") != "") { aFileNamePrefix = aSubmittedFileDataObj.GetRelatedPropertyString("TaskUploadType.Upload.FileNamePrefix"); } if (aSubmittedFileDataObj.GetPropertyString("EntityDataObjectKey") == "WfTaskAssignment") { aGPID = aSubmittedFileDataObj.GetRelatedPropertyString("WfTaskAssignment.GranteeProjectID"); } else { aGPID = aSubmittedFileDataObj.GetPropertyString("EntityID"); } cDataObject aGranteeProjectDO = WebSession.DataObjectFactory.GetDataObjectListWithFilter("GranteeProject", "GranteeProjectID", aGPID)[0]; String aFCFolderName = aGranteeProjectDO.GetRelatedPropertyString("WfProjectID") + "_" + TruncateSpecialCharacters(aSharePointDO, aGranteeProjectDO.GetRelatedPropertyString("WfProject.ShortName")); String aFOFolderName = aGranteeProjectDO.GetRelatedPropertyString("WfProject.CompetitionID") + "_" + TruncateSpecialCharacters(aSharePointDO, aGranteeProjectDO.GetRelatedPropertyString("WfProject.WfCompetition.ShortName")); String aProgramFolderName = aGranteeProjectDO.GetRelatedPropertyString("WfProject.WfCompetition.ProgramID") + "_" + TruncateSpecialCharacters(aSharePointDO, aGranteeProjectDO.GetRelatedPropertyString("WfProject.WfCompetition.WfProgram.ShortName")); String aGPFolderName = aGPID + "_EGID"; aUploadFileName = aSubmittedFileID + "_" + aFileNamePrefix; aDestinationFolder = aProgramFolderName + "/" + aFOFolderName + "/" + aFCFolderName + "/" + aGPFolderName + "/"; aDestinationContextFolder = "Grants/"; break; case "Person": cDataObject aPersonDO = WebSession.DataObjectFactory.GetDataObjectListWithFilter("Person", "PersonID", aEntityID)[0]; String aPersonName = aPersonDO.GetPropertyString("FirstName") + aPersonDO.GetPropertyString("LastName") + aPersonDO.GetPropertyString("MiddleName", ""); aDestinationFolder = aEntityID + "_" + TruncateFolderName(TruncateSpecialCharacters(aSharePointDO, aPersonName), "Person") + "/"; aUploadFileName = aSubmittedFileID + "_" + aFileNamePrefix; aDestinationContextFolder = "Contacts/Persons/"; break; case "Organization": cDataObject aOrganizationDO = WebSession.DataObjectFactory.GetDataObjectListWithFilter("Organization", "OrganizationID", aEntityID)[0]; String aCommonOrganizationName = aOrganizationDO.GetPropertyString("CommonOrganizationName"); aDestinationFolder = aEntityID + "_" + TruncateFolderName(TruncateSpecialCharacters(aSharePointDO, aCommonOrganizationName), "Organization") + "/"; aUploadFileName = aSubmittedFileID + "_" + aFileNamePrefix; aDestinationContextFolder = "Contacts/Organizations/"; break; case "WordMerge": if (aSubmittedFileDataObj.GetRelatedPropertyString("FileNamePrefix") != "") { aFileNamePrefix = aSubmittedFileDataObj.GetRelatedPropertyString("FileNamePrefix"); } aUploadFileName = aSubmittedFileID + "_" + aFileNamePrefix; break; case "WfProject": aUploadFileName = aSubmittedFileID + "_" + aSourceFileName.Substring(0, aSourceFileName.IndexOf(".")); cDataObjectList aWfProjectDOL = WebSession.DataObjectFactory.GetDataObjectListFromPrimaryKey("WfProject", aSubmittedFileDataObj.GetPropertyString("EntityID")); aDestinationFolder = aWfProjectDOL[0].GetRelatedPropertyString("WfCompetition.CompetitionID") + "_" + TruncateSpecialCharacters(aSharePointDO, aWfProjectDOL[0].GetRelatedPropertyString("WfCompetition.ShortName")) + "/"; aDestinationContextFolder = "Projects/"; break; } aRemoteOrginalURL = cWebLib.TruncateFolderName(aSPUrl + aSiteName + aDestinationContextFolder + aDestinationFolder + aUploadFileName + "." + aSourceExt); aRemotePDFURL = cWebLib.TruncateFolderName(aSPUrl + aSiteName + aDestinationContextFolder + aDestinationFolder + aUploadFileName + "." + "PDF"); }