Exemplo n.º 1
0
        /*----------------------------------------------------*/

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

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

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

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

            return(aWFTADataObject.GetPropertyInt("WfTaskAssignmentID"));
        }
Exemplo n.º 2
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);
                }
            }
        }
Exemplo n.º 3
0
/*----------------------------------------------------*/

        public void FinalizeSelectedProjectOutcomes(int aGranteeProjectID, int aProposedOutcomeID)
        {
            cDataObject aGPDO;     //workflow task assignment

            aGPDO = DataObjectFactory.GetDataObjectFromPrimaryKey("GranteeProject", aGranteeProjectID);
            aGPDO["WfProjectOutcomeID"] = aProposedOutcomeID;
            DataObjectFactory.SaveDataObject(aGPDO);
        }
Exemplo n.º 4
0
/*----------------------------------------------------*/

	public int Save_GenerationStatus(int aNewStatus) {
		int		aOldStatus = Convert.ToInt32(this["GenStatus"]);
		
		if (aOldStatus != aNewStatus) {
			this["GenStatus"] = aNewStatus;
			DataObjectFactory.SaveDataObject(this);
		}
		
		return aOldStatus;
	}
Exemplo n.º 5
0
/*====================================================*/

        public void UpdateNomination(int iStatus)
        {
            //iStatus: 3-NotActive, 2-Completed
            cDataObject aNominationDO;

            aNominationDO = this.DataObjectFactory.GetDataObjectListWithFilter("Nomination", "GranteeProjectID", this.GetPropertyString("GranteeProjectID"))[0];
            if (aNominationDO != null)
            {
                aNominationDO["StatusID"] = iStatus;
                DataObjectFactory.SaveDataObject(aNominationDO);
            }
        }
Exemplo n.º 6
0
        /*====================================================*/

        public int Save_ConversionStatus(int aNewStatus)
        {
            int aOldStatus = Convert.ToInt32(this["ImportStatusID"]);

            if (aOldStatus != aNewStatus)
            {
                this["ImportStatusID"] = aNewStatus;
                DataObjectFactory.SaveDataObject(this);
            }

            return(aOldStatus);
        }
Exemplo n.º 7
0
/*=====================================================*/

	public void SaveData(String aFileName, bool aDeleteFlag) {
		cDataObject		aReportOutputData;
		
		aReportOutputData = GetRelatedPropertyDataObject("ReportOutputData");
		if (aReportOutputData == null) {			
			aReportOutputData = DataObjectFactory.CreateNewDataObjectFromKey("ReportOutputData");
			aReportOutputData["ReportOutputID"] = this["ReportOutputID"];
		}
		
		aReportOutputData.WriteFileToBlob("FileData", aFileName, aDeleteFlag);
		DataObjectFactory.SaveDataObject(aReportOutputData);
	}
Exemplo n.º 8
0
/*====================================================*/

	public int Save_ConversionStatus(int aNewStatus) 
	{
		//int		aOldStatus = Convert.ToInt32(this["ConversionStatus"]);
		int	aOldStatus = this.GetPropertyInt("ConversionStatus", System.Int32.MinValue);
	
		if (aOldStatus != aNewStatus) 
		{
			this["ConversionStatus"] = aNewStatus;
			DataObjectFactory.SaveDataObject(this);
		}
	
		return aOldStatus;
	}
Exemplo n.º 9
0
/*====================================================*/

        public cDataObject GetGranteeProjectReviewStageDO(int aWfProjectTaskID)
        {
            //Returns the GranteeProjectReviewStage data object for the current GranteeProject in the review stage
            //indicated by the aWfProjectTaskID parameter.
            int         aReviewStageID;
            cXMLDoc     aXMLDoc;
            XmlNode     aDataObjectNode;
            XmlNode     aFiltersNode;
            XmlNode     aArgNode;
            cDataObject aGranteeProjectReviewStageDO;
            cDataObject aReviewStageDO;
            int         aAppWfTaskID;
            cDataObject aAppWFTADO;

            aReviewStageID = cReviewStage.GetReviewStageIDFromWfProjectTaskID(aWfProjectTaskID, DataObjectFactory);
            aXMLDoc        = DataObjectFactory.CreateDataObjectNode("GranteeProjectReviewStage", out aDataObjectNode, out aFiltersNode);
            aArgNode       = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "GranteeProjectID", GetPropertyString("GranteeProjectID"));
            aFiltersNode.AppendChild(aArgNode);
            aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "ReviewStageID", aReviewStageID.ToString());
            aFiltersNode.AppendChild(aArgNode);
            aGranteeProjectReviewStageDO = DataObjectFactory.GetDataObject(aDataObjectNode);
            if (aGranteeProjectReviewStageDO != null)
            {
                return(aGranteeProjectReviewStageDO);
            }
            else
            {
                //Create a new data object.
                //In order to populate this object, we will need the WfTaskAssignmentID of the application. In order
                //to get it, we will need the Application WfTaskID corresponding to this review stage.
                //The WfTaskID of the application WfProjectTask is the same as the parent task of the review stage task.
                aReviewStageDO = DataObjectFactory.GetDataObjectFromPrimaryKey("ReviewStage", aReviewStageID);
            }
            aAppWfTaskID = aReviewStageDO.GetRelatedPropertyInt("WfProjectTask.WfTask.WfParentTaskID");

            //Parent applicant WfTaskAssignmentID, filtering on GranteeProjectID and WfTaskID
            aXMLDoc  = DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aDataObjectNode, out aFiltersNode);
            aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "GranteeProjectID", GetPropertyString("GranteeProjectID"));
            aFiltersNode.AppendChild(aArgNode);
            aArgNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfTaskID", aAppWfTaskID.ToString());
            aFiltersNode.AppendChild(aArgNode);
            aAppWFTADO = DataObjectFactory.GetDataObject(aDataObjectNode);

            //Get GranteeProjectReviewStage data object, set values, save and return
            aGranteeProjectReviewStageDO = DataObjectFactory.CreateNewDataObjectFromKey("GranteeProjectReviewStage");
            aGranteeProjectReviewStageDO["ReviewStageID"]         = aReviewStageID;
            aGranteeProjectReviewStageDO["GranteeProjectID"]      = GetPropertyInt("GranteeProjectID");
            aGranteeProjectReviewStageDO["AppWfTaskAssignmentID"] = aAppWFTADO.GetPropertyInt("WfTaskAssignmentID");
            DataObjectFactory.SaveDataObject(aGranteeProjectReviewStageDO);
            return(aGranteeProjectReviewStageDO);
        }
Exemplo n.º 10
0
/*----------------------------------------------------*/

        public void FinalizeOutcomes()
        {
            cDataObjectList aGPRSDOList; //grantee project review stage
            cDataObject     aWFTADO;     //workflow task assignment

            aGPRSDOList = GetRelatedPropertyDataObjectList("GranteeProjectReviewStages");
            foreach (cDataObject aGPRSDO in aGPRSDOList)
            {
                if (aGPRSDO["ProposedOutcomeID"] != System.DBNull.Value)
                {
                    aWFTADO = DataObjectFactory.GetDataObjectFromPrimaryKey("WfTaskAssignment", aGPRSDO.GetPropertyInt("AppWfTaskAssignmentID"));
                    aWFTADO["WfTaskOutcomeID"] = aGPRSDO.GetPropertyInt("ProposedOutcomeID");
                    DataObjectFactory.SaveDataObject(aWFTADO);
                }
            }
        }
Exemplo n.º 11
0
/*-----------------------------------------------------*/

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

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

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

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

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

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

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

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

                aReviewRatingsList = DataObjectFactory.GetDataObjectList(aDataObjectNode);

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

        public void GenerateAutomaticRequestsConflicts(XmlNodeList aRCTypeNodeList)
        {
            //In this method, the string "RC" within a variable name refers to "Request/Conflict" (e.g., aRCTypeNodeList)
            int aWfTaskID = GetRelatedPropertyDataObject("WfProjectTask").GetPropertyInt("WfTaskID");

            //Delete all existing requests and/or conflicts for this stage
            XmlNode aRCDONode;
            XmlNode aFiltersNode;
            XmlNode aArgumentNode;
            XmlNode aRelatedPropertyNode;

            cXMLDoc aXMLDoc = DataObjectFactory.CreateDataObjectNode("WfTaskAssignmentRequestConflict", out aRCDONode, out aFiltersNode);

            aArgumentNode        = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfTaskID", aWfTaskID.ToString());
            aRelatedPropertyNode = DataObjectFactory.CreateArgumentRelatedPropertyNode(aXMLDoc, "WfTaskAssignment", aArgumentNode);
            aFiltersNode.AppendChild(aArgumentNode);
            aArgumentNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "Automatic", "True");
            aFiltersNode.AppendChild(aArgumentNode);
            cDataObjectList aRCDOList = DataObjectFactory.GetDataObjectList(aRCDONode);

            DataObjectFactory.DeleteData(aRCDOList);

            //Get DOList of all review assignment WFTAs for request/conflict stage
            XmlNode aWFTADONode;

            aXMLDoc       = DataObjectFactory.CreateDataObjectNode("WfTaskAssignment", out aWFTADONode, out aFiltersNode);
            aArgumentNode = DataObjectFactory.CreateArgumentNode(aXMLDoc, "Data", "WfTaskID", aWfTaskID.ToString());
            aFiltersNode.AppendChild(aArgumentNode);
            cDataObjectList aWFTADOList = DataObjectFactory.GetDataObjectList(aWFTADONode);

            int             aIndex;
            String          aRevFullKey;
            String          aRevRelatedKey;
            String          aRevPropertyKey;
            cDataObjectList aRevDOList;
            String          aAppFullKey;
            String          aAppRelatedKey;
            String          aAppPropertyKey;
            cDataObjectList aAppDOList;
            XmlNode         aReviewerNode;
            XmlNodeList     aRevFiltersNodeList;
            XmlNode         aApplicantNode;
            XmlNodeList     aAppFiltersNodeList;
            int             aRCID = 0;
            int             i;

            //foreach(cDataObject aWFTADO in aWFTADOList) {
            for (i = 0; i < aWFTADOList.Count; i++)
            {
                cDataObject aWFTADO = aWFTADOList[i];
                Debug.WriteLine("Checking " + i.ToString() + " of " + aWFTADOList.Count.ToString());
                bool aRC = false;
                foreach (XmlNode aRCTypeNode in aRCTypeNodeList)
                {
                    //Get reviewer property data object list
                    aReviewerNode       = aRCTypeNode.SelectSingleNode("Reviewer");
                    aRevFiltersNodeList = aReviewerNode.SelectNodes("Filters/Argument");
                    aRevFullKey         = cXMLDoc.AttributeToString(aReviewerNode, "PropertyKey");
                    aIndex = aRevFullKey.LastIndexOf(".");
                    if (aIndex == -1)
                    {
                        aRevDOList      = this.DataObjectList;
                        aRevPropertyKey = aRevFullKey;
                    }
                    else
                    {
                        aRevRelatedKey  = aRevFullKey.Substring(0, aIndex);
                        aRevDOList      = aWFTADO.GetRelatedPropertyDataObjectList(aRevRelatedKey);
                        aRevPropertyKey = aRevFullKey.Substring(aIndex + 1);
                    }

                    //Get applicant property data object list
                    aApplicantNode      = aRCTypeNode.SelectSingleNode("Applicant");
                    aAppFiltersNodeList = aApplicantNode.SelectNodes("Filters/Argument");
                    aAppFullKey         = cXMLDoc.AttributeToString(aApplicantNode, "PropertyKey");
                    aIndex = aAppFullKey.LastIndexOf(".");
                    if (aIndex == -1)
                    {
                        aAppDOList      = this.DataObjectList;
                        aAppPropertyKey = aAppFullKey;
                    }
                    else
                    {
                        aAppRelatedKey  = aAppFullKey.Substring(0, aIndex);
                        aAppDOList      = aWFTADO.GetRelatedPropertyDataObjectList(aAppRelatedKey);
                        aAppPropertyKey = aAppFullKey.Substring(aIndex + 1);
                    }

                    //Loop through both lists; return true if any values are equal
                    foreach (cDataObject aRevDO in aRevDOList)
                    {
                        if (aRevDO.MeetsFilterCriteria(aRevFiltersNodeList))
                        {
                            foreach (cDataObject aAppDO in aAppDOList)
                            {
                                if (aAppDO.MeetsFilterCriteria(aAppFiltersNodeList))
                                {
                                    if (aRevDO.GetPropertyString(aRevPropertyKey) == aAppDO.GetPropertyString(aAppPropertyKey))
                                    {
                                        aRC   = true;
                                        aRCID = Convert.ToInt32(cXMLDoc.AttributeToString(aRCTypeNode, "ID"));
                                        break;
                                    }
                                }
                            }                    //foreach(cDataObject aAppDO in aAppDOList)
                        }
                        if (aRC)
                        {
                            break;
                        }
                    }            //foreach(cDataObject aRevDO in aRevDOList)
                    if (aRC)
                    {
                        break;
                    }
                }        //foreach(XmlNode aRCTypeNode in aRCTypeNodeList)
                if (aRC)
                {
                    //Get request/conflict definition to find out whether this is a request or a conflict
                    cDataObject aRCDefDO           = DataObjectFactory.GetDataObjectFromPrimaryKey("Conflict", aRCID.ToString());
                    int         aRequestConflictID = aRCDefDO.GetPropertyInt("RequestConflictID");
                    //Write request/conflict row
                    cDataObject aRCDO;
                    aRCDO = DataObjectFactory.CreateNewDataObjectFromKey("WfTaskAssignmentRequestConflict");
                    aRCDO["ConflictID"]         = aRCID;
                    aRCDO["WfTaskAssignmentID"] = aWFTADO.GetPropertyInt("WfTaskAssignmentID");
                    aRCDO["RequestConflictID"]  = aRequestConflictID;
                    aRCDO["Automatic"]          = true;
                    DataObjectFactory.SaveDataObject(aRCDO);
                }
            }    //foreach(cDataObject aWFTADO in aWFTADOList)
        }