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

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

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

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

        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;
            }
        }
示例#9
0
        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");
        }